您可以在密鑰策略中添加或刪除RAM用戶、RAM角色,以設置密鑰的管理員和使用者。本文介紹如何設置密鑰策略。
注意事項
僅KMS實例中的密鑰支持密鑰策略。您可以在創建密鑰時設置密鑰策略,也可以在創建后進行設置。創建時設置,請參見創建密鑰。本文介紹創建后如何設置。
密鑰策略的內容長度不超過32768個字節,且為JSON格式。
通過控制臺設置密鑰策略時,可以選擇使用默認策略、設置RAM用戶或角色為管理員和使用者、以及設置其他賬號使用者。如果您需要對密鑰進行更精細化的策略設置,例如只允許使用者執行加解密操作,可以通過OpenAPI設置密鑰策略。
密鑰策略中可以設置的操作列表如下,如果您設置了列表外的操作,設置后也不會生效。
"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" "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateAndExportDataKey", "kms:AsymmetricEncrypt", "kms:AsymmetricDecrypt", "kms:DescribeKey", "kms:DescribeKeyVersion", "kms:ListKeyVersions", "kms:ListAliasesByKeyId", "kms:TagResource" ]
如果您想允許其他阿里云賬號下的RAM用戶、RAM角色使用密鑰,不僅需要在KMS側設置密鑰策略允許其使用密鑰,同時還要在RAM側,使用該RAM用戶、RAM角色的阿里云賬號設置權限策略允許其使用密鑰。具體操作,請參見密鑰管理服務自定義權限策略參考、為RAM用戶授權、為RAM角色授權。
前提條件
已在KMS實例中創建了軟件密鑰或硬件密鑰。具體操作,請參見創建密鑰。
通過控制臺設置
登錄密鑰管理服務控制臺,在頂部菜單欄選擇地域后,在左側導航欄單擊 。
在用戶主密鑰頁簽,定位到您的目標密鑰,單擊密鑰ID或操作列的詳情。
在詳情頁面下方的密鑰策略區域,單擊設置密鑰策略,完成設置后單擊確定。
您可以為密鑰設置管理員、使用者、其他賬號使用者。
管理員:對密鑰進行管控類操作,不支持密碼運算操作。支持選擇當前主賬號下的RAM用戶和RAM角色。
示例表示允許RAM用戶(key_ramuser1)、RAM角色(key_ramrole1)作為管理員管理密鑰。
{ "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", "acs:ram::119285303511****:role/key_ramrole1" ] }, "Resource": [ "*" ] }
使用者:僅支持使用密鑰進行密碼運算操作。支持選擇當前主賬號下的RAM用戶和RAM角色。
示例表示允許RAM用戶(key_ramuser2)、RAM角色(key_ramrole2)使用密鑰進行密碼運算操作。
{ "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::119285303511****:role/key_ramrole2" ] }, "Resource": [ "*" ] }
其他賬號使用者:使用密鑰進行密碼運算操作,可以是其他阿里云賬號的RAM用戶或RAM角色。
重要如果您授權給其他阿里云賬號下的RAM用戶、RAM角色,會消耗KMS實例的訪問管理數量配額,按阿里云賬號個數計算消耗的配額。如果您后續取消了授權,請等待約5分鐘再查看配額,配額會返還。
RAM用戶:格式為
acs:ram::<userId>:user/<ramuser>
,例如acs:ram::119285303511****:user/testpolicyuser
。RAM角色:格式為
acs:ram::<userId>:role/<ramrole>
,例如acs:ram::119285303511****:role/testpolicyrole
。
示例表示允許其他阿里云賬號(190325303126****)的RAM用戶(key_ramuser3)使用密鑰進行密碼運算操作。
{ "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::190325303126****:user/key_ramuser3" ] }, "Resource": [ "*" ] }