Comment puis-je empêcher les politiques IAM d'autoriser un utilisateur ou un rôle à accéder à une clé KMS dans AWS KMS ?
Je souhaite empêcher les identités AWS Identity and Access Management (IAM) d'accéder à ma clé AWS Key Management Service (AWS KMS). Toutefois, la politique de clé KMS par défaut permet aux identités IAM du compte d'accéder à la clé KMS avec les autorisations IAM.
Brève description
La politique de clé KMS par défaut contient l'instruction suivante :
{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }
Dans l'exemple précédent, les éléments Effect et Principal ne font pas référence au compte utilisateur root AWS. L'Amazon Resource Name (ARN) autorise l'accès à la clé KMS avec cette politique IAM. Si vous attachez les autorisations requises à l'entité IAM, tout principal du compte AWS 111122223333 dispose d'un accès racine à la clé KMS.
Résolution
Vous pouvez empêcher les entités IAM d'accéder à la clé KMS et permettre au compte utilisateur racine de la gérer. Cela empêche également le compte utilisateur root de perdre l'accès à la clé KMS.
Remplacez le Sid « Enable IAM User Permissions » dans la politique de clé KMS par défaut par le Sid « EnableRootAccessAndPreventPermissionDelegation ». Ajoutez également un élément Condition semblable à celui de la politique suivante :
Important : remplacez le compte 111122223333 par votre numéro de compte et assurez-vous que la clé de condition aws:PrincipalType est définie sur Account.
{ "Sid": "EnableRootAccessAndPreventPermissionDelegation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalType": "Account" } } }
Vous pouvez ajouter des utilisateurs ou des rôles IAM d'administrateur de clés pour autoriser la gestion de la clé dans l'instruction avec Sid « Allow access for Key Administrators ». Vous pouvez également autoriser les utilisateurs ou les rôles IAM à utiliser la clé pour des opérations cryptographiques et avec d'autres services AWS. Ajoutez les ARN des utilisateurs ou des rôles IAM aux instructions avec le Sid « Allow use of the key » et « Allow attachment of persistent resources ».
Remarque : vous devez créer la clé avec la politique modifiée et le compte utilisateur root. Vous pouvez également utiliser un principal autorisé dans l'instruction « Allow access for Key Administrators ». Cela permet d'éviter l'erreur de politique « MalformedPolicyDocumentException ».
La politique de clé KMS par défaut modifiée est semblable à la suivante :
{ "Id": "key-consolepolicy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableRootAccessAndPreventPermissionDelegation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalType": "Account" } } }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/KMSAdminUser", "arn:aws:iam::111122223333:role/KMSAdminRole" ] }, "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": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/ExampleUser", "arn:aws:iam::111122223333:role/ExampleRole" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/ExampleUser", "arn:aws:iam::111122223333:role/ExampleRole" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }
La politique de clé fournit les autorisations suivantes :
- Le compte utilisateur root AWS a un accès complet à la clé.
- Les principaux KMSAdminUser et KMSAdminRole permettent d'effectuer des opérations de gestion sur la clé.
- Les principaux ExampleUser et ExampleRole peuvent utiliser la clé.
Informations connexes
Contenus pertinents
- demandé il y a un moislg...
- demandé il y a 7 moislg...
- demandé il y a un anlg...
- demandé il y a 10 moislg...
- demandé il y a un anlg...
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 3 ans
- Comment puis-je utiliser les clés asymétriques AWS KMS pour chiffrer un fichier à l'aide d'OpenSSL ?AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans