本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
RBAC 適用於 AWS KMS
角色型存取控制 (RBAC) 是一種授權策略,它只會為使用者提供執行其工作職責所需的許可,而不需要更多。 透過在金鑰政策 中指定金鑰用量的精細許可, AWS KMS RBAC 支援 來控制對金鑰的存取。 中的金鑰政策 AWS KMS金鑰政策會指定資源、動作、效果、主體和選用條件,以授予對金鑰的存取權。
若要RBAC在 中實作 AWS KMS,我們建議將 許可分開給金鑰使用者和金鑰管理員。
- Key users
-
下列金鑰政策範例允許ExampleUserRole
IAM角色使用 KMS金鑰。
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws: iam::111122223333:role/ExampleUserRole"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
在此範例中,您的金鑰使用者可能需要的許可可能比使用者更少。僅指派使用者所需的許可。使用下列問題來協助您進一步精簡許可。
-
哪些IAM主體 (角色或使用者) 需要存取 金鑰?
-
每個主體需要使用 金鑰執行哪些動作? 例如,主體是否只需要加密和簽署許可?
-
使用者是人工還是 AWS 服務? 如果是 AWS 服務,您可以使用 條件金鑰將金鑰用量限制為特定 AWS 服務。
- Key administrators
-
下列金鑰政策範例允許ExampleAdminRole
IAM角色管理KMS金鑰。
{
"Sid": "Allow access for Key Administrators",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws: iam::111122223333:role/ExampleAdminRole"
},
"Action": [
"kms:Create*",
"kms:Describe*",
"kms:Enable*",
"kms:List*",
"kms:Put*",
"kms:Update*",
"kms:Revoke*",
"kms:Disable*",
"kms:Get*",
"kms:Delete*",
"kms:TagResource",
"kms:UntagResource",
"kms:ScheduleKeyDeletion",
"kms:CancelKeyDeletion"
],
"Resource": "*"
}
在此範例中,您的金鑰管理員可能需要的許可可能少於管理員。僅指派金鑰管理員所需的許可。
僅提供使用者履行其角色所需的許可。使用者的許可可能會因金鑰是否用於測試或生產環境而有所不同。如果您在某些非生產環境中使用限制性較低的許可,請實作 程序來測試政策,然後再發佈至生產環境。