3.2. ポリシーについて
barbican はポリシーを使用して、キーの追加または削除など、シークレットに対してアクションを実行できるユーザーを決定します。これらのコントロールを実装するには、keystone プロジェクトロール (以前に作成した creator など) は barbican 内部パーミッションにマッピングされます。その結果、これらのプロジェクトロールに割り当てられるユーザーは、対応する barbican パーミッションを受信します。
3.2.1. デフォルトポリシーの表示 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのポリシーはコードで定義されるため、通常は修正は必要ありません。barbican ソースコードから生成することで、デフォルトポリシーを表示できます。
追加のコンポーネントをダウンロードしてインストールする可能性があるため、非実稼働システムで次の手順を実行します。この例では、
queensブランチに切り替えるため、別のバージョンを使用する場合はこれを調整する必要があります。git clone https://github.com/openstack/barbican cd /home/stack/barbican git checkout origin/stable/queens tox -e genpolicy
git clone https://github.com/openstack/barbican cd /home/stack/barbican git checkout origin/stable/queens tox -e genpolicyCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、サブディレクトリー内にデフォルト設定を含むポリシーファイル
etc/barbican/policy.yaml.sampleが生成されます。このパスは、システムの/etcディレクトリーではなく、リポジトリー内のサブディレクトリーを参照することに注意してください。このファイルのコンテンツは、以下の手順で説明します。生成した
policy.yaml.sampleファイルには、barbican で使用されるポリシーが記述されています。ポリシーは、ユーザーがシークレットおよびシークレットメタデータと対話する方法を定義する 4 つの異なるロールによって実装されます。ユーザーは、特定のロールに割り当てられているパーミッションを受け取ります。-
Admin: シークレットの削除、作成/編集、および読み取りを行うことができます。 -
creator: シークレットの作成/編集および読み取りが可能です。シークレットを削除できません。 -
observer: データの読み取りのみが可能です。 audit: メタデータのみを読み取ることができます。シークレットを読み取りできません。たとえば、以下のエントリーは、各プロジェクトの
admin、observer、およびcreatorの keystone ロールを一覧表示します。右側には、role:admin、role:observer、およびrole:creatorパーミッションが割り当てられていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらのロールは barbican でグループ化することもできます。たとえば、
admin_or_creatorを指定するルールは、rule:adminまたはrule:creatorのメンバーに適用できます。
-
ファイル内では、
secret:putおよびsecret:deleteのアクションがあります。右側には、これらのアクションを実行するパーミッションがあるロールについて確認してください。以下の例では、secret:deleteは、adminおよびcreatorロールメンバーのみがシークレットエントリーを削除できることを意味します。さらに、ルールは、そのプロジェクトのadminまたはcreatorロールのユーザーがそのプロジェクトのシークレットを削除できることを示しています。プロジェクトのマッチは、ポリシーにも定義されるsecret_project_matchルールで定義されます。secret:delete": "rule:admin_or_creator and rule:secret_project_match"
secret:delete": "rule:admin_or_creator and rule:secret_project_match"Copy to Clipboard Copied! Toggle word wrap Toggle overflow