Declarações de chave KMS e de política do IAM de linha de base - AWS IAM Identity Center

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Declarações de chave KMS e de política do IAM de linha de base

A chave KMS de linha de base e as políticas baseadas em identidade fornecidas aqui servem como base para requisitos comuns. Também recomendamos que você revise se Declarações de política de chave KMS avançadas fornece controles de acesso mais granulares, como garantir que a chave KMS seja acessível somente para uma instância específica do IAM Identity Center ou aplicação gerenciada pela AWS . Antes de usar declarações avançadas de política de chave KMS, revise Considerações sobre a escolha das declarações de política de chave KMS de linha de base em comparação com as avançadas.

As seções a seguir fornecem declarações de política de linha de base para cada caso de uso. Expanda as seções que correspondem aos seus casos de uso e copie as principais declarações de política do KMS. Em seguida, volte paraEtapa 2: preparar as declarações de política de chave KMS.

Use o seguinte modelo de declaração de política de chave KMS em Etapa 2: preparar as declarações de política de chave KMS para permitir que os administradores do IAM Identity Center, do Identity Store associado e do IAM Identity Center usem a chave KMS.

  • No elemento Principal das declarações de política do administrador, especifique os diretores das contas de administração do IAM Identity Center, que são a AWS conta de gerenciamento da AWS organização e a conta de administração delegada, usando o formato “arn:aws:iam: :111122223333:root”.

  • No PrincipalArn elemento, substitua o exemplo pelas ARNs funções do IAM dos administradores do IAM Identity Center.

    Você pode especificar:

    • ARN específico de perfil do IAM:

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

    • Padrão curinga (recomendado):

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

    O uso do curinga (*) evita a perda de acesso se o conjunto de permissões for excluído e recriado, pois o Identity Center gera novos identificadores exclusivos para conjuntos de permissões recriados. Para ver um exemplo de implementação, consulteExemplos de políticas personalizadas.

  • No SourceAccount elemento, especifique o ID da conta do IAM Identity Center.

  • O Identity Store tem a própria entidade principal de serviço, identitystore.amazonaws.com, que deve ter permissão para usar a chave KMS.

  • Essas declarações de política permitem que suas instâncias do IAM Identity Center em uma AWS conta específica usem a chave KMS. Para restringir o acesso a uma instância específica do IAM Identity Center, consulte Declarações de política de chave KMS avançadas. Você pode ter somente uma instância do IAM Identity Center para cada AWS conta.

Declarações de política de chave 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": "*" } ] }

Use o seguinte modelo de declaração de política do IAM em Etapa 4: configurar políticas do IAM para o uso entre contas da chave KMS para permitir que os administradores do IAM Identity Center usem a chave KMS.

  • Substitua o exemplo da chave ARN no elemento Resource pelo ARN real da chave KMS. Para obter ajuda para encontrar os valores dos identificadores referenciados, consulte Onde encontrar os identificadores necessários.

  • Essas declarações de política do IAM concedem acesso à chave KMS ao principal do IAM, mas não restringem qual AWS serviço pode fazer a solicitação. A política de chave KMS normalmente fornece essas restrições de serviço. No entanto, você pode adicionar contexto de criptografia a essa política do IAM para limitar o uso a uma instância específica do Identity Center. Para obter detalhes, consulte Declarações de política de chave KMS avançadas.

Declarações de política do IAM exigidas para administradores delegados do 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

Alguns aplicativos AWS gerenciados não podem ser usados com o IAM Identity Center configurado com uma chave KMS gerenciada pelo cliente. Para obter mais informações, consulte as Aplicações gerenciadas pela AWS que funcionam com o IAM Identity Center.

Use o seguinte modelo de declaração de política de chaves do KMS Etapa 2: preparar as declarações de política de chave KMS para permitir que os aplicativos AWS gerenciados e seus administradores usem a chave KMS.

Declarações de política de chave 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" } } } ] }

Use o seguinte modelo de declaração de política do IAM Etapa 4: configurar políticas do IAM para o uso entre contas da chave KMS para permitir que administradores de aplicações gerenciadas pela AWS usem a chave KMS de uma conta de membro.

  • Substitua o ARN de exemplo no elemento Resource pelo ARN real da chave KMS. Para obter ajuda para encontrar os valores dos identificadores referenciados, consulte Onde encontrar os identificadores necessários.

  • Alguns aplicativos AWS gerenciados exigem que você configure permissões para o serviço IAM Identity Center APIs. Antes de configurar uma chave gerenciada pelo cliente no IAM Identity Center, verifique se essas permissões também permitem o uso da chave KMS. Para requisitos específicos de permissão da chave KMS, consulte a documentação de cada aplicação gerenciada pela AWS que você implantou.

Declarações de política do IAM necessárias para administradores de aplicativos AWS gerenciados:

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

Use os seguintes modelos de declaração de chave KMS Etapa 2: preparar as declarações de política de chave KMS para permitir que os administradores do AWS Control Tower usem a chave KMS.

  • No elemento Principal, especifique os principais do IAM usados para acessar o serviço APIs do IAM Identity Center. Para obter mais informações sobre as entidades principais do IAM, consulte Como especificar uma entidade principal no Guia do usuário do IAM.

  • Essas declarações de política permitem que os administradores do AWS Control Tower usem a chave KMS por meio de qualquer uma das suas instâncias do IAM Identity Center. No entanto, AWS o Control Tower restringe o acesso à instância organizacional do IAM Identity Center na mesma AWS organização. Por causa dessa restrição, não há nenhum benefício prático em restringir ainda mais a chave KMS a uma instância específica do IAM Identity Center, conforme descrito em. Declarações de política de chave KMS avançadas

  • Para ajudar a se proteger contra alterações no nome da função do IAM quando os conjuntos de permissões são recriados, use a abordagem descrita noExemplos de políticas personalizadas.

Declaração de política de chaves do 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 não oferece suporte à administração delegada e, portanto, você não precisa configurar uma política do IAM para seus administradores.

Use o seguinte modelo de declaração de política de chaves do KMS Etapa 2: preparar as declarações de política de chave KMS para permitir que os usuários de login único (SSO) nas instâncias do Amazon EC2 usem a chave KMS em todas as contas.

  • Especifique as entidades principais do IAM usadas para acessar o IAM Identity Center no campo Entidade principal. Para obter mais informações sobre as entidades principais do IAM, consulte Como especificar uma entidade principal no Guia do usuário do IAM.

  • Essa declaração de política permite que qualquer uma das instâncias do IAM Identity Center use a chave KMS. Para restringir o acesso a uma instância específica do IAM Identity Center, consulte Declarações de política de chave KMS avançadas.

  • Para ajudar a se proteger contra alterações no nome do perfil do IAM quando os conjuntos de permissões são recriados, use a abordagem descrita no Exemplo de política de confiança personalizada.

Declaração de política de chaves do 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": "*" } } } ] }

Use o seguinte modelo de declaração de política do IAM Etapa 4: configurar políticas do IAM para o uso entre contas da chave KMS para permitir que o SSO para instâncias do EC2 usem a chave KMS.

Anexe a declaração de política do IAM ao conjunto de permissões existente no IAM Identity Center que você está usando para permitir o acesso por SSO às instâncias do Amazon EC2. Para exemplos de políticas do IAM, consulte Conexões do protocolo de desktop remoto no Guia do usuário do AWS Systems Manager.

Política do IAM do conjunto de permissões:

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

Use os seguintes modelos de declaração de política de chaves do KMS Etapa 2: preparar as declarações de política de chave KMS para permitir que fluxos de trabalho personalizados, como aplicativos gerenciados pelo cliente, na conta de AWS Organizations gerenciamento ou na conta de administração delegada usem a chave KMS. Observe que a federação do SAML em aplicativos gerenciados pelo cliente não exige permissões de chave KMS.

  • No elemento Principal, especifique os principais do IAM usados para acessar o serviço APIs do IAM Identity Center. Para obter mais informações sobre as entidades principais do IAM, consulte Como especificar uma entidade principal no Guia do usuário do IAM.

  • Essas declarações de política permitem que o fluxo de trabalho use a chave KMS em qualquer uma das instâncias do IAM Identity Center. Para restringir o acesso a uma instância específica do IAM Identity Center, consulte Declarações de política de chave KMS avançadas.

  • Para ajudar a se proteger contra alterações no nome da função do IAM quando os conjuntos de permissões são recriados, use a abordagem descrita noExemplos de políticas personalizadas.

Declaração de política de chaves do 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": "*" } } } ] }

Use o seguinte modelo de declaração de política do IAM em Etapa 4: configurar políticas do IAM para o uso entre contas da chave KMS para permitir que a entidade principal do IAM associada ao fluxo de trabalho personalizado use a chave KMS em todas as contas. Adicione a declaração de política do IAM à entidade principal do IAM.

Declaração de política do IAM (exigida somente para uso entre contas):

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

Exemplos de declarações de política chave do KMS para casos de uso comuns

IAM Identity Center com administradores delegados e AWS aplicativos gerenciados

Esta seção contém exemplos de declarações de política de chaves do KMS que você pode usar para uma instância do IAM Identity Center que tenha administradores delegados e AWS aplicativos gerenciados.

Importante

As declarações de política de chaves do KMS presumem que sua instância do IAM Identity Center não é usada em nenhum outro caso de uso que exija permissões de chave do KMS. Para confirmar, você pode analisar todos os casos de uso. Além disso, para confirmar se seus aplicativos AWS gerenciados exigem configuração adicional, consulte Configuração adicional em alguns aplicativos AWS gerenciados

Copie as declarações da política de chaves do KMS abaixo da tabela e adicione-as à sua política de chaves do KMS. Este exemplo usa os seguintes valores de exemplo:

  • 111122223333- ID da conta da instância do IAM Identity Center

  • 444455556666- ID da conta de administração delegada

  • o-a1b2c3d4e5- ID AWS da organização

  • arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*- Um padrão curinga da função IAM de um administrador do IAM Identity Center provisionado a partir do conjunto de permissões. Admin Essa função contém o código de região da região primária (us-east-1 neste exemplo).

  • arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*- Um padrão curinga da função IAM de administrador delegado do IAM Identity Center provisionado a partir do conjunto de permissões. DelegatedAdmin Essa função contém o código de região da região primária (us-east-1 neste exemplo).

Se a função do IAM não foi gerada a partir de um conjunto de permissões, a função do IAM parecerá uma função normal, comoarn: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" } } } ] }