Instrucciones básicas de KMS y políticas de IAM - AWS IAM Identity Center

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Instrucciones básicas de KMS y políticas de IAM

Las políticas básicas basadas en la identidad y las claves de KMS que se proporcionan aquí sirven de base para los requisitos comunes. También le recomendamos que revise Instrucciones de política de claves de KMS avanzadas que proporciona controles de acceso más detallados, como garantizar que solo una instancia específica de IAM Identity Center o una aplicación administrada por AWS pueda acceder a la clave KMS. Antes de utilizar las instrucciones de políticas de claves de KMS avanzadas, revise las Consideraciones a la hora de elegir las principales instrucciones de política de claves de KMS básicas o avanzadas.

En las secciones siguientes, se incluyen instrucciones de política de referencia para cada caso de uso. Amplíe las secciones que se adapten a sus casos de uso y copie las principales declaraciones de políticas de KMS. A continuación, vuelva aPaso 2: prepare las instrucciones de política de claves de KMS.

Utilice la siguiente plantilla de instrucción de políticas de claves de KMS en Paso 2: prepare las instrucciones de política de claves de KMS para permitir que IAM Identity Center, su almacén de identidades asociado y los administradores de IAM Identity Center utilicen la clave de KMS.

  • En el elemento principal de las declaraciones de política del administrador, especifique los principales de las AWS cuentas de administración del Centro de Identidad de IAM, que son la cuenta de administración de la AWS organización y la cuenta de administración delegada, utilizando el formato «arn:aws:iam: :111122223333:root».

  • En el PrincipalArn elemento, sustituya el ejemplo por las funciones de IAM de los administradores del IAM Identity Center. ARNs

    Puede especificar:

    • ARN de rol de IAM específico:

      "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_12345678"

    • Patrón comodín (recomendado):

      "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_*"

    El uso del comodín (*) evita la pérdida de acceso si el conjunto de permisos se elimina y se vuelve a crear, ya que Identity Center genera nuevos identificadores únicos para los conjuntos de permisos recreados. Para ver un ejemplo de implementación, consulte. Ejemplo de políticas de confianza personalizadas

  • En el SourceAccount elemento, especifique el ID de cuenta del IAM Identity Center.

  • Identity Store tiene su propia entidad principal de servicio, identitystore.amazonaws.com, a la que se le debe permitir usar la clave de KMS.

  • Estas declaraciones de política permiten que las instancias del Centro de Identidad de IAM de una AWS cuenta específica utilicen la clave KMS. Para restringir el acceso a una instancia específica de IAM Identity Center, consulte Instrucciones de política de claves de KMS avanzadas. Solo puede tener una instancia del IAM Identity Center para cada AWS cuenta.

Instrucciones de política de claves 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": "*" } ] }

Utilice la siguiente plantilla de instrucción de políticas de IAM en Paso 4: configure las políticas de IAM para el uso entre cuentas de la clave de KMS para permitir que los administradores de IAM Identity Center utilicen la clave de KMS.

  • Sustituya el ARN de clave de ejemplo del elemento Resource por el ARN de clave de KMS real. Si necesita ayuda para encontrar los valores de los identificadores a los que se hace referencia, consulte ¿Dónde encontrar los identificadores necesarios.

  • Estas declaraciones de política de IAM conceden acceso a la clave de KMS al director de IAM, pero no restringen el AWS servicio que puede realizar la solicitud. La política de claves de KMS suele proporcionar estas restricciones de servicio. Sin embargo, puede añadir un contexto de cifrado a esta política de IAM para limitar el uso a una instancia específica de Identity Center. Consulte Instrucciones de política de claves de KMS avanzadas para obtener más información.

Las instrucciones de política de IAM son obligatorias para los administradores delegados de 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": "*" } ] }
nota

Algunas aplicaciones AWS administradas no se pueden usar con el centro de identidad de IAM configurado con una clave de KMS administrada por el cliente. Para obtener más información, consulte AWS managed applications that work with IAM Identity Center.

Utilice la siguiente plantilla de declaración de política clave de KMS Paso 2: prepare las instrucciones de política de claves de KMS para permitir que tanto las aplicaciones AWS gestionadas como sus administradores utilicen la clave de KMS.

Instrucciones de política de claves 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" } } } ] }

Utilice la siguiente plantilla de instrucción de política de IAM en Paso 4: configure las políticas de IAM para el uso entre cuentas de la clave de KMS para permitir que los administradores de las aplicaciones administradas por AWS utilicen la clave KMS de una cuenta de miembro.

  • Sustituya el ARN de ejemplo del elemento Recurso por el ARN de clave de KMS real. Si necesita ayuda para encontrar los valores de los identificadores a los que se hace referencia, consulte ¿Dónde encontrar los identificadores necesarios.

  • Algunas aplicaciones AWS gestionadas requieren que configure los permisos para el servicio IAM Identity Center. APIs Antes de configurar una clave administrada por el cliente en IAM Identity Center, compruebe que estos permisos también permiten el uso de la clave de KMS. Para conocer los requisitos específicos de permisos clave de KMS, consulte la documentación de cada aplicación administrada por AWS que haya implementado.

Declaraciones de política de IAM obligatorias para los administradores de aplicaciones AWS gestionadas:

{ "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" ] } } }] }

Utilice las siguientes plantillas de declaraciones clave de KMS Paso 2: prepare las instrucciones de política de claves de KMS para permitir que los administradores AWS de la Torre de Control usen la clave de KMS.

  • En el elemento principal, especifique los principios de IAM utilizados para acceder al servicio del Centro de identidad de IAM. APIs Para obtener más información sobre las entidades principales de IAM, consulte Cómo especificar una entidad principal en la Guía del usuario de IAM.

  • Estas declaraciones de política permiten a los administradores de la Torre de AWS Control utilizar la clave KMS en cualquiera de sus instancias del IAM Identity Center. Sin embargo, AWS Control Tower restringe el acceso a la instancia organizativa de IAM Identity Center en la misma AWS organización. Debido a esta restricción, restringir aún más la clave KMS a una instancia específica del IAM Identity Center no tiene ningún beneficio práctico, como se describe en. Instrucciones de política de claves de KMS avanzadas

  • Para evitar que se produzcan cambios en el nombre de las funciones de IAM cuando se vuelvan a crear conjuntos de permisos, utilice el enfoque descrito en la. Ejemplo de políticas de confianza personalizadas

Instrucción de la política de claves de 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 no admite la administración delegada y, por lo tanto, no es necesario configurar una política de IAM para sus administradores.

Utilice la siguiente plantilla de declaración de política clave de KMS Paso 2: prepare las instrucciones de política de claves de KMS para permitir a los usuarios de inicio de sesión único (SSO) en las instancias de Amazon EC2 utilizar la clave de KMS en todas las cuentas.

  • Especifique las entidades principales de IAM que se utilizan para acceder a IAM Identity Center en el campo Entidad principal. Para obtener más información sobre las entidades principales de IAM, consulte Cómo especificar una entidad principal en la Guía del usuario de IAM.

  • Esta instrucción de política permite que cualquiera de sus instancias de IAM Identity Center utilice la clave de KMS. Para restringir el acceso a una instancia específica de IAM Identity Center, consulte Instrucciones de política de claves de KMS avanzadas.

  • Para protegerse de los cambios en el nombre del rol de IAM al volver a crear conjuntos de permisos, utilice el enfoque descrito en el ejemplo de política de confianza personalizada.

Instrucción de política de claves de 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": "*" } } } ] }

Utilice la siguiente plantilla de declaración de política de IAM Paso 4: configure las políticas de IAM para el uso entre cuentas de la clave de KMS para permitir que el SSO de las instancias EC2 utilice la clave de KMS.

Adjunte la declaración de política de IAM al conjunto de permisos existente en el Centro de identidades de IAM que está utilizando para permitir el acceso SSO a las instancias de Amazon EC2. Para ver ejemplos de políticas de IAM, consulte Conexiones del protocolo de escritorio remoto en la Guía del usuario de AWS Systems Manager.

Política de IAM del conjunto de permisos:

{ "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" ] } } }] }

Utilice las siguientes plantillas de declaraciones de políticas clave de KMS Paso 2: prepare las instrucciones de política de claves de KMS para permitir que los flujos de trabajo personalizados, como las aplicaciones administradas por el cliente, en la cuenta de administración o la AWS Organizations cuenta de administración delegada utilicen la clave de KMS. Tenga en cuenta que la federación de SAML en las aplicaciones administradas por el cliente no requiere permisos clave de KMS.

  • En el elemento principal, especifique los principios de IAM que se utilizan para acceder al servicio del Centro de identidad de IAM. APIs Para obtener más información sobre las entidades principales de IAM, consulte Cómo especificar una entidad principal en la Guía del usuario de IAM.

  • Estas instrucciones de política permiten que su flujo de trabajo utilice la clave de KMS en cualquiera de sus instancias de IAM Identity Center. Para restringir el acceso a una instancia específica de IAM Identity Center, consulte Instrucciones de política de claves de KMS avanzadas.

  • Para protegerse de los cambios en el nombre de las funciones de IAM cuando se recrean los conjuntos de permisos, utilice el enfoque descrito en el. Ejemplo de políticas de confianza personalizadas

Instrucción de la política de claves de 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": "*" } } } ] }

Utilice la siguiente plantilla de instrucción de políticas de IAM en Paso 4: configure las políticas de IAM para el uso entre cuentas de la clave de KMS para permitir que la entidad principal de IAM asociada al flujo de trabajo personalizado utilice la clave de KMS en todas las cuentas. Añada la instrucción de política de IAM a la entidad principal de IAM.

Instrucción de política de IAM (necesaria solo para el uso entre cuentas):

{ "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" ] } } }] }

Ejemplos de declaraciones de políticas clave de KMS para casos de uso comunes

Centro de identidad de IAM con administradores delegados y AWS aplicaciones gestionadas

Esta sección contiene ejemplos de las principales declaraciones de política del KMS que puede utilizar para una instancia del IAM Identity Center que tenga administradores delegados y aplicaciones gestionadas. AWS

importante

En las declaraciones de política clave de KMS se parte del supuesto de que su instancia del Centro de Identidad de IAM no se utilizará en ningún otro caso de uso que requiera permisos de clave de KMS. Para confirmarlo, puedes revisar todos los casos de uso. Además, para confirmar si las aplicaciones AWS gestionadas requieren una configuración adicional, consulte Configuración adicional en algunas aplicaciones gestionadas AWS

Copie las declaraciones de política clave de KMS que aparecen debajo de la tabla y agréguelas a su política de clave de KMS. En este ejemplo se utilizan los siguientes valores de ejemplo:

  • 111122223333- ID de cuenta de la instancia del IAM Identity Center

  • 444455556666- ID de cuenta de administración delegada

  • o-a1b2c3d4e5- ID de AWS organización

  • arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*- Un patrón comodín de la función de IAM de un administrador del Centro de Identidad de IAM proporcionada a partir del conjunto de permisos. Admin Este rol contiene el código de región de la región principal (us-east-1 en este ejemplo).

  • arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*- Un patrón comodín de una función de IAM de un administrador delegado del Centro de Identidad de IAM proporcionada a partir del conjunto de permisos. DelegatedAdmin Este rol contiene el código de región de la región principal (us-east-1 en este ejemplo).

Si la función de IAM no se generó a partir de un conjunto de permisos, la función de IAM tendrá el aspecto de una función normal, por ejemplo. 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" } } } ] }