本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
基準 KMS 金鑰和 IAM 政策陳述式
注意
客戶受管的 KMS AWS IAM Identity Center 金鑰目前可在特定 AWS 區域中使用。
此處提供的基準 KMS 金鑰和身分型政策是常見需求的基礎。我們也建議您檢閱 進階 KMS 金鑰政策陳述式以提供更精細的存取控制,例如確保 KMS 金鑰只能由特定 IAM Identity Center 執行個體或 AWS 受管應用程式存取。在使用進階 KMS 金鑰政策陳述式之前,請檢閱 選擇基準與進階 KMS 金鑰政策陳述式的考量。
以下各節提供每個使用案例的基準政策陳述式。複製符合您使用案例的 KMS 金鑰政策陳述式,然後返回 步驟 2:準備 KMS 金鑰政策陳述式。
使用 IAM Identity Center 的基準 KMS 金鑰政策陳述式 (必要)
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 IAM Identity Center、其相關聯的 Identity Store 和 IAM Identity Center 管理員使用 KMS 金鑰。
-
在主體元素中指定 IAM Identity Center 管理員的 IAM 主體。如需 IAM 主體的詳細資訊,請參閱《IAM 使用者指南》中的指定主體。
Identity Store 有自己的服務主體
identitystore.amazonaws.com
,必須允許其使用 KMS 金鑰。這些政策陳述式允許任何 IAM Identity Center 執行個體使用 KMS 金鑰。若要限制對特定 IAM Identity Center 執行個體的存取,請參閱 進階 KMS 金鑰政策陳述式。
KMS 金鑰政策陳述式
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*", "kms:ViaService": "identitystore.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowIAMIdentityCenterToUseTheKMSKey", "Effect": "Allow", "Principal": { "Service": "sso.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*" } } }, { "Sid": "AllowIAMIdentityStoreToUseTheKMSKey", "Effect": "Allow", "Principal": { "Service": "identitystore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } }, { "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*" } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許 IAM Identity Center 管理員使用 KMS 金鑰。
將資源元素中的範例金鑰 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
IAM Identity Center 委派管理員所需的 IAM 政策陳述式
{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToUseKMSkey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToListKeyAliases", "Effect": "Allow", "Action": "kms:ListAliases", "Resource": "*" } ] }
使用 AWS 受管應用程式的基準 KMS 金鑰和 IAM 政策陳述式
注意
某些 AWS 受管應用程式無法與以客戶受管 KMS 金鑰設定的 IAM Identity Center 搭配使用。如需詳細資訊,請參閱AWS 使用 IAM Identity Center 的受管應用程式。
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 AWS 受管應用程式及其管理員使用 KMS 金鑰。
在 PrincipalOrgID 條件中插入您的 AWS Organizations ID。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
這些政策陳述式允許相同 中的任何 AWS 受管應用程式 AWS Organizations 使用 KMS 金鑰。若要將這些政策陳述式限制為特定 AWS 受管應用程式、帳戶或 IAM Identity Center 執行個體,請參閱 進階 KMS 金鑰政策陳述式。
KMS 金鑰政策陳述式
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "${organization_ID}" }, "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "*" } } }, { "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "${organization_ID}" }, "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } }, { "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "*" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }, { "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許 AWS 受管應用程式的管理員使用成員帳戶中的 KMS 金鑰。
將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
有些 AWS 受管應用程式會要求您設定 IAM Identity Center 和 Identity Store APIs許可。在 IAM Identity Center 中設定客戶受管金鑰之前,請確定這些許可也允許使用 KMS 金鑰。如需特定 KMS 金鑰許可要求,請參閱您已部署之每個 AWS 受管應用程式的文件。
AWS 受管應用程式管理員所需的 IAM 政策陳述式:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }
使用 的基準 KMS 金鑰陳述式 AWS Control Tower
在 中使用下列 KMS 金鑰陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 AWS Control Tower 管理員使用 KMS 金鑰。
在主體欄位中指定用於存取 IAM Identity Center APIs IAM 主體。如需 IAM 主體的詳細資訊,請參閱《IAM 使用者指南》中的指定主體。
這些政策陳述式允許 AWS Control Tower 管理員透過任何 IAM Identity Center 執行個體使用 KMS 金鑰。不過, AWS Control Tower 會限制存取相同組織中 IAM Identity Center AWS 的組織執行個體。由於此限制,無法進一步將 KMS 金鑰限制為特定 IAM Identity Center 執行個體,如 中所述進階 KMS 金鑰政策陳述式。
KMS 金鑰政策聲明:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "${Control_Tower_Admins}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "${Control_Tower_Admins}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
AWS Control Tower 不支援委派的管理,因此您不需要為其管理員設定 IAM 政策。
將 IAM Identity Center 用於 Amazon Elastic Compute Cloud Windows 執行個體的基準 KMS 金鑰和 IAM 政策陳述式
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 Amazon EC2 Windows 執行個體的單一登入 (SSO) 使用者跨帳戶使用 KMS 金鑰。
KMS 金鑰政策陳述式
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowIAMIdentityCenterPermisionSetRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "${Permission_Set_IAM_Role}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterPermisionSetRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "${Permission_Set_IAM_Role}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許 SSO 至 EC2 Windows 執行個體使用 KMS 金鑰。
將 IAM 政策陳述式連接至您用來允許 SSO 存取 Amazon EC2 Windows 執行個體的 IAM Identity Center 中現有的許可集。如需 IAM 政策範例,請參閱 AWS Systems Manager 使用者指南中的遠端桌面通訊協定連線。
將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
許可集 IAM 政策:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMPolicyToAllowKMSKeyUseViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }
搭配 IAM Identity Center 使用自訂工作流程的基準 KMS 金鑰和 IAM 政策陳述式
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 AWS Organizations 管理帳戶或委派管理帳戶中的自訂工作流程使用 KMS 金鑰。
KMS 金鑰政策聲明:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "${Workflow_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "${Workflow_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許與自訂工作流程相關聯的 IAM 主體跨帳戶使用 KMS 金鑰。將 IAM 政策陳述式新增至 IAM 主體。
將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
IAM 政策陳述式 (僅適用於跨帳戶使用):
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }