3.3. ポリシー

各 OpenStack サービスには、アクセスポリシーで管理されるリソースが含まれています。たとえば、リソースには以下の関数が含まれる場合があります。

  • インスタンスを作成して起動するパーミッション
  • インスタンスにボリュームを接続する機能

Red Hat OpenStack Platform (RHOSP) 管理者は、カスタムポリシーを作成して、さまざまなアクセスレベルで新しいロールを導入することや、既存のロールのデフォルト動作を変更することが必要になる場合があります。また、変更後に API アクセスポリシーを検証し、これらのポリシーが変更されない場合にデバッグする機能もあります。プロダクションデプロイメント以外の検証およびデバッグポリシー。構文エラーが発生すると、ダウンタイムが発生し、誤って認証が適用されないとセキュリティーやユーザビリティーに悪影響を及ぼす可能性があります。

3.3.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

デフォルトでは、生成されたポリシーは osly.policy CLI ツールにより stdout にプッシュされます。