Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Déclarations de base relatives aux clés KMS et à la politique IAM
Les politiques de base basées sur les clés et les identités KMS fournies ici servent de base aux exigences communes. Nous vous recommandons également de passer en revue celles Déclarations de politique clés avancées de KMS qui fournissent des contrôles d'accès plus précis, par exemple en garantissant que la clé KMS n'est accessible qu'à une instance ou à une application AWS gérée IAM Identity Center spécifique. Avant d'utiliser les déclarations de politique clés avancées de KMS, consultez leConsidérations relatives au choix des déclarations de politique clés KMS de référence ou avancées.
Les sections suivantes fournissent des déclarations de politique de base pour chaque cas d'utilisation. Développez les sections correspondant à vos cas d'utilisation et copiez les principales déclarations de politique de KMS. Ensuite, revenez àÉtape 2 : Préparation des déclarations de politique clés de KMS.
Utilisez le modèle de déclaration de politique de clé KMS suivant Étape 2 : Préparation des déclarations de politique clés de KMS pour permettre aux administrateurs d'IAM Identity Center, de son magasin d'identités associé et d'IAM Identity Center d'utiliser la clé KMS.
-
Dans l'élément principal pour les déclarations de politique de l'administrateur, spécifiez les AWS principaux comptes des comptes d'administration de l'IAM Identity Center, à savoir le compte de gestion de l' AWS organisation et le compte d'administration déléguée, en utilisant le format « arn:aws:iam : :111122223333:root ».
-
Dans l' PrincipalArn élément, remplacez l'exemple par les rôles IAM ARNs des administrateurs de l'IAM Identity Center.
Vous pouvez spécifier soit :
-
ARN du rôle IAM spécifique :
"arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_12345678" -
Modèle Wildcard (recommandé) :
"arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_*"
L'utilisation du caractère générique (
*) empêche la perte d'accès si l'ensemble d'autorisations est supprimé et recréé, car Identity Center génère de nouveaux identifiants uniques pour les ensembles d'autorisations recréés. Pour un exemple de mise en œuvre, voirExemple de politique de confiance personnalisée. -
-
Dans l' SourceAccount élément, spécifiez l'ID de compte IAM Identity Center.
-
Identity Store possède son propre principal de service
identitystore.amazonaws.com, qui doit être autorisé à utiliser la clé KMS. -
Ces déclarations de politique permettent à vos instances IAM Identity Center d'un AWS compte spécifique d'utiliser la clé KMS. Pour restreindre l'accès à une instance IAM Identity Center spécifique, consultezDéclarations de politique clés avancées de KMS. Vous ne pouvez avoir qu'une seule instance IAM Identity Center par AWS compte.
Déclarations de politique clés de KMS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*" ] }, "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*" ] }, "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*", "kms:ViaService": "identitystore.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*" ] } } }, { "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": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIdentityStoreToUseTheKMSKey", "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": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*" } ] }
Utilisez le modèle de déclaration de politique IAM suivant Étape 4 : Configuration des politiques IAM pour l'utilisation de la clé KMS entre comptes pour permettre aux administrateurs du IAM Identity Center d'utiliser la clé KMS.
-
Remplacez l'exemple d'ARN de clé dans l'
Resourceélément par l'ARN de votre clé KMS réel. Pour obtenir de l'aide pour trouver les valeurs des identifiants référencés, consultezOù trouver les identifiants requis. -
Ces déclarations de politique IAM accordent un accès par clé KMS au principal IAM mais ne limitent pas le AWS service autorisé à effectuer la demande. La politique des clés KMS prévoit généralement ces restrictions de service. Toutefois, vous pouvez ajouter un contexte de chiffrement à cette politique IAM pour limiter l'utilisation à une instance d'Identity Center spécifique. Pour plus de détails, reportez-vous àDéclarations de politique clés avancées de KMS.
Déclarations de politique IAM requises pour les administrateurs délégués d'IAM Identity Center
{ "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": "*" } ] }
Note
Certaines applications AWS gérées ne peuvent pas être utilisées avec IAM Identity Center configuré avec une clé KMS gérée par le client. Pour plus d'informations, consultez la section Applications AWS gérées qui fonctionnent avec IAM Identity Center.
Utilisez le modèle de déclaration de politique de clé KMS suivant Étape 2 : Préparation des déclarations de politique clés de KMS pour autoriser les applications AWS gérées et leurs administrateurs à utiliser la clé KMS.
-
Insérez votre AWS Organizations identifiant dans l' PrincipalOrgidentifiant et SourceOrgId les conditions. Pour obtenir de l'aide pour trouver les valeurs des identifiants référencés, consultezOù trouver les identifiants requis.
-
Ces déclarations de politique permettent à toutes vos applications AWS gérées et à tous les principaux IAM (administrateurs d'applications) de l' AWS organisation d'utiliser kms: Decrypt à l'aide d'IAM Identity Center et d'Identity Store. Pour limiter ces déclarations de politique à des applications AWS gérées, à des comptes ou à des instances d'IAM Identity Center spécifiques, consultezDéclarations de politique clés avancées de KMS.
Vous pouvez restreindre l'accès à des administrateurs d'applications spécifiques en les
*remplaçant par des principes IAM spécifiques. Pour vous protéger contre les changements de nom de rôle IAM lorsque des ensembles d'autorisations sont recréés, utilisez l'approche décrite dans le. Exemple de politique de confiance personnalisée Pour de plus amples informations, veuillez consulter Considérations relatives au choix des déclarations de politique clés KMS de référence ou avancées.
Déclarations de politique clés de KMS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5" }, "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": "o-a1b2c3d4e5" }, "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" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } }, { "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" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } } ] }
Utilisez le modèle de déclaration de politique IAM suivant Étape 4 : Configuration des politiques IAM pour l'utilisation de la clé KMS entre comptes pour permettre aux administrateurs d'applications AWS gérées d'utiliser la clé KMS d'un compte membre.
-
Remplacez l'exemple d'ARN dans l'élément Resource par l'ARN de votre clé KMS réelle. Pour obtenir de l'aide pour trouver les valeurs des identifiants référencés, consultezOù trouver les identifiants requis.
-
Certaines applications AWS gérées nécessitent que vous configuriez des autorisations pour le service APIs IAM Identity Center. Avant de configurer une clé gérée par le client dans IAM Identity Center, vérifiez que ces autorisations autorisent également l'utilisation de la clé KMS. Pour connaître les exigences d'autorisation spécifiques relatives aux clés KMS, consultez la documentation de chaque application AWS gérée que vous avez déployée.
Déclarations de politique IAM requises pour les administrateurs d'applications AWS gérées :
{ "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" ] } } }] }
Utilisez les modèles de déclaration de clé KMS suivants Étape 2 : Préparation des déclarations de politique clés de KMS pour permettre aux administrateurs de AWS Control Tower d'utiliser la clé KMS.
-
Dans l'élément Principal, spécifiez les principaux IAM utilisés pour accéder au service IAM Identity Center. APIs Pour plus d'informations sur les principaux IAM, consultez la section Spécification d'un principal dans le Guide de l'utilisateur IAM.
-
Ces déclarations de politique permettent aux administrateurs AWS de Control Tower d'utiliser la clé KMS par le biais de n'importe laquelle de vos instances IAM Identity Center. Cependant, AWS Control Tower restreint l'accès à l'instance organisationnelle d'IAM Identity Center au sein de la même AWS organisation. En raison de cette restriction, il n'y a aucun avantage pratique à restreindre davantage la clé KMS à une instance IAM Identity Center spécifique, comme décrit dansDéclarations de politique clés avancées de KMS.
-
Pour vous protéger contre les changements de nom de rôle IAM lorsque des ensembles d'autorisations sont recréés, utilisez l'approche décrite dans le. Exemple de politique de confiance personnalisée
Déclaration de politique de clé KMS :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerExecution" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerExecution" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
AWS Control Tower ne prend pas en charge l'administration déléguée et, par conséquent, il n'est pas nécessaire de configurer une politique IAM pour ses administrateurs.
Utilisez le modèle de déclaration de politique de clé KMS suivant Étape 2 : Préparation des déclarations de politique clés de KMS pour permettre aux utilisateurs de l'authentification unique (SSO) des EC2 instances Amazon d'utiliser la clé KMS sur plusieurs comptes.
-
Spécifiez les principaux IAM utilisés pour accéder à IAM Identity Center dans le champ Principal. Pour plus d'informations sur les principaux IAM, consultez la section Spécification d'un principal dans le Guide de l'utilisateur IAM.
-
Cette déclaration de politique autorise n'importe laquelle de vos instances IAM Identity Center à utiliser la clé KMS. Pour restreindre l'accès à une instance IAM Identity Center spécifique, consultezDéclarations de politique clés avancées de KMS.
-
Pour vous protéger contre les changements de nom de rôle IAM lorsque des ensembles d'autorisations sont recréés, utilisez l'approche décrite dans Exemple de politique de confiance personnalisée.
Déclaration de stratégie de clé KMS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
Utilisez le modèle de déclaration de politique IAM suivant Étape 4 : Configuration des politiques IAM pour l'utilisation de la clé KMS entre comptes pour autoriser les EC2 instances SSO à utiliser la clé KMS.
Joignez la déclaration de politique IAM à l'ensemble d'autorisations existant dans IAM Identity Center que vous utilisez pour autoriser l'accès SSO aux instances Amazon. EC2 Pour des exemples de politique IAM, consultez la section Connexions au protocole Remote Desktop dans le Guide de l'utilisateur de AWS Systems Manager.
-
Remplacez l'exemple d'ARN dans l'élément Resource par l'ARN de votre clé KMS réelle. Pour obtenir de l'aide pour trouver les valeurs des identifiants référencés, consultezOù trouver les identifiants requis.
Politique IAM définie par les autorisations :
{ "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" ] } } }] }
Utilisez les modèles de déclaration de politique clé KMS suivants Étape 2 : Préparation des déclarations de politique clés de KMS pour autoriser les flux de travail personnalisés, tels que les applications gérées par le client, dans le compte de AWS Organizations gestion ou le compte d'administration déléguée à utiliser la clé KMS. Notez que la fédération SAML dans les applications gérées par le client ne nécessite pas d'autorisations clés KMS.
-
Dans l'élément Principal, spécifiez les principaux IAM utilisés pour accéder au service IAM Identity Center. APIs Pour plus d'informations sur les principaux IAM, consultez la section Spécification d'un principal dans le Guide de l'utilisateur IAM.
-
Ces déclarations de politique permettent à votre flux de travail d'utiliser la clé KMS via n'importe laquelle de vos instances IAM Identity Center. Pour restreindre l'accès à une instance IAM Identity Center spécifique, consultezDéclarations de politique clés avancées de KMS.
-
Pour vous protéger contre les changements de nom de rôle IAM lorsque des ensembles d'autorisations sont recréés, utilisez l'approche décrite dans le. Exemple de politique de confiance personnalisée
Déclaration de politique de clé KMS :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
Utilisez le modèle de déclaration de politique IAM suivant Étape 4 : Configuration des politiques IAM pour l'utilisation de la clé KMS entre comptes pour permettre au principal IAM associé au flux de travail personnalisé d'utiliser la clé KMS sur tous les comptes. Ajoutez la déclaration de politique IAM au principal IAM.
-
Remplacez l'exemple d'ARN dans l'élément Resource par l'ARN de votre clé KMS réelle. Pour obtenir de l'aide pour trouver les valeurs des identifiants référencés, consultezOù trouver les identifiants requis.
Déclaration de politique IAM (requise uniquement pour une utilisation entre comptes) :
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenterAndIdentityStore", "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" ] } } }] }
Exemples de déclarations de politique clés de KMS pour les cas d'utilisation courants
IAM Identity Center avec administrateurs délégués et applications AWS gérées
Cette section contient des exemples de déclarations de politique clés KMS que vous pouvez utiliser pour une instance IAM Identity Center dotée d'administrateurs délégués et d'applications AWS gérées.
Important
Les déclarations de politique clés KMS supposent que votre instance IAM Identity Center n'est utilisée dans aucun autre cas d'utilisation nécessitant des autorisations relatives aux clés KMS. Pour confirmer, vous pouvez consulter tous les cas d'utilisation. En outre, pour vérifier si vos applications AWS gérées nécessitent une configuration supplémentaire, voir Configuration supplémentaire dans certaines applications AWS gérées
Copiez les déclarations de politique clé KMS sous le tableau et ajoutez-les à votre politique de clé KMS. Cet exemple utilise les valeurs d'exemple suivantes :
-
111122223333- ID de compte de l'instance IAM Identity Center -
444455556666- ID de compte d'administration déléguée -
o-a1b2c3d4e5- identifiant AWS de l'organisation -
arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*- Un modèle générique représentant le rôle IAM d'un administrateur du centre d'identité IAM fourni à partir de l'ensemble d'autorisations.AdminUn tel rôle contient le code de région de la région principale (us-east-1 dans cet exemple). -
arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*- Un modèle générique représentant le rôle IAM d'un administrateur délégué d'IAM Identity Center fourni à partir du jeu d'autorisations.DelegatedAdminUn tel rôle contient le code de région de la région principale (us-east-1 dans cet exemple).
Si le rôle IAM n'a pas été généré à partir d'un ensemble d'autorisations, le rôle IAM ressemblera à un rôle normal tel que. arn:aws:iam::111122223333:role/idcadmin
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*" ] }, "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*" ] }, "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*", "kms:ViaService": "identitystore.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*" ] } } }, { "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": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIdentityStoreToUseTheKMSKey", "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": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5" }, "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": "o-a1b2c3d4e5" }, "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" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } }, { "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" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } } ] }