キーポリシーは、key Management Service (KMS) キーのリソースベースのポリシーです。 キーポリシーは、KMSキーへのアクセスを制御し、KMSキーを管理または使用する権限を持つAlibaba Cloudアカウント、Resource access Management (RAM) ユーザー、およびRAMロールを決定するために使用されます。 すべてのKMSキーには、キーポリシーが1つずつ必要です。 このトピックでは、キーポリシーの詳細について説明します。
キーポリシーとRAMポリシーの関係
キーポリシーを使用すると、キーが属する現在のAlibaba Cloudアカウント内のRAMユーザーとRAMロールを、キーの管理者またはユーザーとして指定できます。 他のAlibaba Cloudアカウント内のRAMユーザーおよびRAMロールは、ユーザーとしてのみ指定できます。
RAMでIDベースのポリシーを構成することもできます。ポリシーは、特定のキーを管理または使用できるAlibaba Cloudアカウント、RAMユーザー、およびRAMロールを決定します。 詳細については、「RAMユーザーへの権限の付与」、「RAMロールへの権限の付与」、および「カスタムポリシー」をご参照ください。
Alibaba Cloudアカウント、RAMユーザー、またはRAMロールが、Alibaba Cloud CLI、Alibaba Cloud管理コンソール、またはAPI操作を呼び出して、KMSリソースへのアクセスリクエストを送信すると、システムはポリシーベースの評価プロセスに基づいてリクエストを許可するかどうかを決定します。 次の図にプロセスを示します。
システムは、次の原則に基づいて最終結果を決定します。
Allowが返され、Explicit Denyが結果Aまたは結果Bで返されない場合、現在のAlibaba CloudアカウントのRAMユーザーまたはRAMロールがキーを管理または使用できます。
説明キーの現在のAlibaba Cloudアカウントは、キーの作成に使用されるAlibaba Cloudアカウントです。 次のいずれかの方法を使用して、キーの作成者を表示できます。
KMS コンソールにログインします。 キー管理 ページで、キーの詳細ページに移動し、Created By の値を表示します。
DescribeKey操作を呼び出し、レスポンスで
Creatorの値を表示します。
明示的な拒否と暗黙的な拒否の詳細については、「ポリシー評価プロセス」をご参照ください。
結果Aと結果Bの両方で許可が返された場合、他のAlibaba CloudアカウントのRAMユーザーまたはRAMロールがキーを使用できます。
次の情報に注意してください。
現在のAlibaba CloudアカウントのRAMユーザーまたはRAMロールがキーを管理または使用できるようにするには、KMSでキーポリシーを設定するか、RAMユーザーまたはRAMロールがキーを管理または使用できるようにする必要があります。
他のAlibaba CloudアカウントのRAMユーザーとRAMロールがキーを使用できるようにする場合は、KMSのキーポリシーとRAMのポリシーの両方を設定して、RAMユーザーまたはRAMロールがキーを使用できるようにする必要があります。
使用上の注意
KMSインスタンスのキーのみがキーポリシーをサポートしています。 キーの作成時にキーポリシーを設定したり、キーの作成後にキーポリシーを変更したりできます。 詳細については、「キーの管理」および「Configure a key policy」をご参照ください。
他のAlibaba CloudアカウントのRAMユーザーまたはRAMロールにKMSインスタンスへのアクセス権限を付与すると、KMSインスタンスのアクセス管理クォータが消費されます。 使用済みクォータは、Alibaba Cloudアカウントの数に基づいて計算されます。 権限を取り消し、KMSインスタンスのリソースが他のAlibaba Cloudアカウントに共有されていない場合は、約5分待ってからクォータを照会してください。 消費されたクォータが復元されます。
キーポリシーは、KMSのエンドポイントを使用してキーにアクセスする場合にのみ適用されます。 KMSインスタンスのエンドポイントを使用してキーにアクセスする場合、KMSインスタンスに関連付けられているアプリケーションアクセスポイント (AAP) で構成されている権限ポリシーが適用されます。
キーポリシーの内容は32,768バイトを超えることはできません。また、JSON形式である必要があります。
キーポリシーの説明
キーポリシーには、次の内容が含まれます。
Version: キーポリシーのバージョン。 値を1に設定します。
ステートメント: 主要なポリシーのステートメント。 各キーポリシーは、1つ以上のステートメントを含む。 各ステートメントには、次のパラメーターが含まれます。
シド
必要に応じて、 カスタムステートメントのステートメント識別子。 値の長さは最大128文字で、英数字、および次の特殊文字を使用できます。_ / +=。 @ -
Effect
必須。 ポリシーステートメントの権限を許可するか拒否するかを指定します。 有効な値:
AllowおよびDeny。依頼人
必須。 ポリシーの権限付与プリンシパル。 次のプリンシパルがサポートされています。
現在のAlibaba Cloudアカウント。
現在のAlibaba CloudアカウントのRAMユーザーとRAMロール。
他のAlibaba CloudアカウントのRAMユーザーとRAMロール。
重要RAMユーザーまたは他のAlibaba CloudアカウントのRAMロールにキーを使用する権限を付与する場合、RAMユーザーまたはRAMロールのAlibaba Cloudアカウントを使用して、RAMユーザーまたはRAMロールにRAMでキーを使用する権限を付与する必要があります。
詳細については、「カスタムポリシー」、「RAMユーザーへの権限の付与」、および「RAMロールへの権限の付与」をご参照ください。
Action
必須。 許可または拒否するAPI操作。 値はkms: で始まる必要があります。 次のコンテンツは、権限スコープについて説明します。 スコープ外の権限を指定した場合、権限は有効になりません。
リソース
必須。 現在のキーを指定するアスタリスク (
*) に値を設定します。Condition
必要に応じて、 ポリシーを有効にするために必要な条件を指定します。 Condition要素は、1つまたは複数の条件を含む条件ブロックと見なされます。 各条件は、条件演算子、条件キー、および条件値で構成されます。 詳細については、「ポリシー要素」をご参照ください。
形式:
"Condition": {"condition operator": {"condition key": "condition value"}}
サンプルキーポリシー
119285303511 **** Alibaba Cloudアカウント内のキーのキーポリシーを設定します。 例:
現在のAlibaba Cloudアカウントに、キーを管理および使用するための完全な権限を付与します。
現在のAlibaba Cloudアカウント内でkey_ramuser1という名前のRAMユーザーにキーを管理する権限を付与します。
現在のAlibaba Cloudアカウント内でkey_ramuser2という名前のRAMユーザーに、190325303126 **** Alibaba Cloudアカウント内でkey_ramuser3という名前のRAMユーザーに、キーを使用する権限を付与します。
{
"Statement": [
{
"Action": [
"kms:*"
],
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:*"
]
},
"Resource": [
"*"
],
"Sid": "kms default key policy"
},
{
"Action": [
"kms:List*",
"kms:Describe*",
"kms:Create*",
"kms:Enable*",
"kms:Disable*",
"kms:Get*",
"kms:Set*",
"kms:Update*",
"kms:Delete*",
"kms:Cancel*",
"kms:TagResource",
"kms:UntagResource",
"kms:ImportKeyMaterial",
"kms:ScheduleKeyDeletion"
],
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:user/key_ramuser1"
]
},
"Resource": [
"*"
]
},
{
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateAndExportDataKey",
"kms:AsymmetricEncrypt",
"kms:AsymmetricDecrypt",
"kms:DescribeKey",
"kms:DescribeKeyVersion",
"kms:ListKeyVersions",
"kms:ListAliasesByKeyId",
"kms:TagResource"
],
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:user/key_ramuser2",
"acs:ram::190325303126****:user/key_ramuser3"
]
},
"Resource": [
"*"
]
}
],
"Version": "1"
}