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このコマンドにより、デフォルト設定が含まれるサブディレクトリーにポリシーファイル(
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パーミッションが割り当てられていることを確認します。# #"admin": "role:admin" # #"observer": "role:observer" # #"creator": "role:creator"これらのロールは 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"