シークレットポリシーは、Resource Access Management (RAM) ユーザーおよび RAM ロールに対する権限付与を通じて、シークレットの管理者およびユーザーを定義します。本トピックでは、シークレットポリシーの構成方法について説明します。
Key Management Service (KMS) コンソールでのシークレットポリシーの構成
-
Key Management Service コンソールにログインします。上部のメニューバーからリージョンを選択します。左側のナビゲーションウィンドウで、 をクリックします。
資格情報管理 タブで対象のシークレットを特定し、詳細 をクリックするか、操作 列のシークレット ID をクリックします。
詳細ページの下部にある Secret Policy エリアで、Configure Secret Policy をクリックし、設定を完了してから、OK をクリックします。
グラフィック編集:このモードでは、Principal (RAM ユーザーまたは RAM ロール) はデフォルトのポリシー権限 (操作) を使用します。
Administrator:シークレットに対する管理操作を実行します。Get Secret Value 操作はサポートされていません。現在の Alibaba Cloud アカウント配下の RAM ユーザーと RAM ロールを選択できます。
User:Get Secret Value 操作のみがサポートされています。現在のプライマリアカウントに属する RAM ユーザーと RAM ロールを選択できます。
Cross-account User:
重要別の Alibaba Cloud アカウントに属する RAM ユーザーまたは RAM ロールに権限を付与すると、ご利用の KMS インスタンスのアクセス管理クォータが消費されます。消費されるクォータは、Alibaba Cloud アカウントの数に基づいて計算されます。権限を取り消すと、KMS は約 5 分でクォータを解放します。
また、ユーザーまたはロールがシークレットを使用できるようにするには、RAM コンソールで対応する権限を付与する必要もあります。詳細については、「KMS のカスタム権限ポリシー」、「RAM ユーザーへの権限付与」、および「RAM ロールへの権限付与」をご参照ください。
別の Alibaba Cloud アカウントに属する RAM ユーザーまたは RAM ロールを指定できます。これらのユーザー/ロールは、
GetSecretValue操作の呼び出し、およびシークレットの一覧表示と詳細表示ができます。Add ARN of Cross-account User をクリックし、プリンシパルの ARN を入力します。RAM コンソールにログインして、ユーザーまたはロールの詳細ページから ARN を取得できます。
RAM ユーザー: フォーマットは
acs:ram::<anotherAccountUserId>:user/<ramuser>です。例:acs:ram::119285303511****:user/testpolicyuser。RAM ロール: フォーマットは
acs:ram::<他の Alibaba Cloud アカウントの ID>:role/<ramrole>です。たとえば、acs:ram::119285303511****:role/testpolicyroleのようになります。
文法編集:構文エディターで権限ポリシーを直接変更または追加できます。以下に設定例を示します。
シナリオ:この例では、Alibaba Cloud アカウント 119285303511**** に属するシークレットのシークレットポリシーを設定する方法を示します。
現在の Alibaba Cloud アカウント (119285303511****) に、シークレットへのフルアクセス (管理と使用の権限を含む) を付与します。このステートメントは変更しないことを推奨します。
説明デフォルトでは、シークレットの所有者はすべての権限を持ちます。このルールは変更できません。
現在の Alibaba Cloud アカウント (119285303511****) に属する RAM ユーザー
secret_ramuser1に、シークレットの管理を許可します。現在の Alibaba Cloud アカウント (119285303511****) の RAM ユーザー
secret_ramuser2と、別の Alibaba Cloud アカウント (190325303126****) の RAM ユーザーsecret_ramuser3に、シークレットの使用を許可します。
ポリシーの例:
{ "Statement": [ { "Action": [ "kms:*" ], "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::119285303511****:*" ] }, "Resource": [ "*" ], "Sid": "kms default secret policy" }, { "Action": [ "kms:List*", "kms:Describe*", "kms:PutSecretValue", "kms:Update*", "kms:DeleteSecret", "kms:RestoreSecret", "kms:RotateSecret", "kms:TagResource", "kms:UntagResource" ], "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::119285303511****:user/secret_ramuser1" ] }, "Resource": [ "*" ] }, { "Action": [ "kms:List*", "kms:Describe*", "kms:GetSecretValue" ], "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::119285303511****:user/secret_ramuser2", "acs:ram::190325303126****:user/secret_ramuser3" ] }, "Resource": [ "*" ] } ], "Version": "1" }
制限事項
シークレットポリシーは、Key Management Service (KMS) インスタンス内のシークレットに対してのみ構成できます。
シークレットポリシーの内容は、JSON 形式で記述する必要があり、その長さは 32,768 バイトを超えてはなりません。
シークレットポリシーで指定可能な操作は以下のとおりです:
警告リストにない操作を指定しても、効果はありません。
"Action": [ "kms:List*", "kms:Describe*", "kms:PutSecretValue", "kms:Update*", "kms:DeleteSecret", "kms:RestoreSecret", "kms:RotateSecret", "kms:TagResource", "kms:UntagResource", "kms:GetSecretValue" ]クロスアカウント権限付与:他の Alibaba Cloud アカウントに所属する RAM ユーザーまたは RAM ロールに、ご自身のアカウント内の KMS シークレットを利用する権限を付与するには、両方のアカウントで権限設定を行う必要があります:
KMS コンソールで、対象アカウントに権限を付与するシークレットポリシーを設定します。Cross-account User をプリンシパルとするシークレットポリシーを追加してください。
対象アカウントの所有者は、RAM コンソールで当該 RAM ユーザーまたは RAM ロールに対応する権限を付与する必要があります。
デフォルトポリシーの権限(操作)
管理者
プリンシパルにシークレットの管理権限を付与しますが、その値の取得は許可しません。
"Action": [
"kms:List*",
"kms:Describe*",
"kms:PutSecretValue",
"kms:Update*",
"kms:DeleteSecret",
"kms:RestoreSecret",
"kms:RotateSecret",
"kms:TagResource",
"kms:UntagResource"
]ユーザーまたはクロスアカウントユーザー
プリンシパルに GetSecretValue 操作の呼び出し、およびシークレットの一覧表示・説明の権限を付与します。
"Action": [
"kms:List*",
"kms:Describe*",
"kms:GetSecretValue"
]