第5章 ポリシー
各 OpenStack サービスには、アクセスポリシーで管理されるリソースが含まれています。たとえば、リソースには以下の関数が含まれる場合があります。
- インスタンスを作成して起動するパーミッション
- インスタンスにボリュームを接続する機能
Red Hat OpenStack Platform (RHOSP) 管理者は、カスタムポリシーを作成して、さまざまなアクセスレベルで新しいロールを導入することや、既存のロールのデフォルト動作を変更することができます。
Red Hat は、カスタマイズされたロールとポリシーをサポートしていません。構文エラーが発生すると、ダウンタイムが発生し、誤って認証が適用されないとセキュリティーやユーザービリティーに悪影響を及ぼす可能性があります。実稼働環境でカスタムポリシーが必要な場合には、サポート例外について Red Hat サポートにお問い合わせください。
5.1. 既存のポリシーの確認
サービスのポリシーファイルはこれまで /etc/$service
ディレクトリーに存在していました。たとえば、Compute (nova) の policy.json
ファイルの完全パスは /etc/nova/policy.json
でした。
既存のポリシーを見つける方法に影響を与える重要なアーキテクチャーの変更には、以下の 2 つがあります。
Red Hat OpenStack Platform はコンテナー化されています。
サービスコンテナーからポリシーファイルを確認する場合は、ポリシーファイル (ある場合) は従来のパスにあります。
/etc/$service/policy.json
サービスコンテナーの外部からそれらを表示する場合は、以下のパスに配置されます。
/var/lib/config-data/puppet-generated/$service/etc/$service/policy.json
各サービスには、コードで提供されるデフォルトのポリシーがあります。これは、手動で作成した場合にのみ利用できるファイル、または
oslopolicy
ツールで生成された場合に限ります。ポリシーファイルを生成するには、以下の例のように、コンテナーからoslopolicy-policy-generator
を使用します。podman exec -it keystone oslopolicy-policy-generator --namespace keystone
デフォルトでは、生成されたポリシーは oslo.policy CLI ツールにより stdout にプッシュされます。