

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á.

# Determinando o acesso ao AWS KMS keys
<a name="determining-access"></a>

Para determinar a extensão total de quem ou o que atualmente tem acesso a uma AWS KMS key, você deve examinar a política principal da chave KMS, todas as [concessões](grants.md) que se aplicam à chave KMS e, potencialmente, todas as políticas AWS Identity and Access Management (IAM). Você pode fazer isso para determinar o escopo do uso potencial de uma chave do KMS ou para ajudar a cumprir os requisitos de conformidade ou de auditoria. Os tópicos a seguir podem ajudar você a gerar uma lista completa das entidades principais da AWS (identidades) que no momento têm acesso a uma chave do KMS.

**Topics**
+ [Examinar a política de chaves](determining-access-key-policy.md)
+ [Examinar políticas do IAM](determining-access-iam-policies.md)
+ [Examinar concessões](determining-access-grants.md)

# Examinar a política de chaves
<a name="determining-access-key-policy"></a>

[Políticas de chaves](key-policies.md) são a principal maneira de controlar o acesso a chaves do KMS. Cada chave do KMS tem exatamente uma política de chaves.

Quando uma política de chaves consiste em ou inclui a [política de chaves padrão](key-policy-default.md#key-policy-default-allow-root-enable-iam), ela permite que os administradores do IAM na conta usem políticas do IAM para controlar o acesso à chave do KMS. Além disso, se a política de chaves conceder a [outra Conta da AWS](key-policy-modifying-external-accounts.md) permissão para usar a chave do KMS, os administradores do IAM na conta externa poderão usar políticas do IAM para delegar essas permissões. Para determinar a lista completa de entidades principais que podem acessar a chave do KMS, [examine as políticas do IAM](determining-access-iam-policies.md). 

Para ver a política de chaves de uma [chave gerenciada pelo AWS KMS cliente](concepts.md#customer-mgn-key) ou [Chave gerenciada pela AWS](concepts.md#aws-managed-key)em sua conta, use a operação Console de gerenciamento da AWS ou a [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)operação na AWS KMS API. Para visualizar a política de chaves, é necessário ter permissões `kms:GetKeyPolicy` para a chave do KMS. Para obter instruções sobre como visualizar a política de chaves de uma chave do KMS, consulte [Visualizar uma política de chave](key-policy-viewing.md).

Examine o documento de política de chaves e anote todas as principais especificadas em cada elemento `Principal` da declaração de política. Em uma declaração de política com `Allow` efeito, os usuários do IAM, as funções do IAM e Contas da AWS o `Principal` elemento têm acesso a essa chave do KMS.

**nota**  
Não defina a entidade principal como um asterisco (\$1) em qualquer instrução de política de chave que permita permissões, a menos que você utilize [condições](policy-conditions.md) para limitar a política de chave. Um asterisco dá a cada identidade em cada Conta da AWS permissão para usar a chave KMS, a menos que outra declaração de política a negue explicitamente. Usuários de outros usuários Contas da AWS podem usar sua chave KMS sempre que tiverem permissões correspondentes em suas próprias contas.

Os exemplos a seguir usam as declarações de política encontradas na [política de chaves padrão](key-policy-default.md) para demonstrar como fazer isso.

**Example Declaração de política 1**  

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
  "Action": "kms:*",
  "Resource": "*"
}
```
Na declaração de política 1, `arn:aws:iam::111122223333:root` é um [principal de AWS conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) que se refere ao Conta da AWS 111122223333. (Não corresponde ao usuário raiz da conta.) Por padrão, uma declaração de política como essa é incluída no documento de política de chaves quando você cria uma nova chave KMS com o Console de gerenciamento da AWS, ou cria uma nova chave KMS programaticamente, mas não fornece uma política de chaves.  
Um documento de política de chaves com uma declaração que permite o acesso às [políticas de Conta da AWS habilitação do IAM na conta para permitir o acesso à chave KMS](key-policy-default.md#key-policy-default-allow-root-enable-iam). Isso significa que os usuários e perfis na conta podem ter acesso à chave do KMS, mesmo se não estiverem explicitamente listados como entidades principais no documento de política de chaves. [Examine todas as políticas do IAM](determining-access-iam-policies.md) em todas as Contas da AWS listadas como principais para determinar se elas permitem acesso a essa chave do KMS.

**Example Declaração de política 2**  

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/KMSKeyAdmins"},
  "Action": [
    "kms:Describe*",
    "kms:Put*",
    "kms:Create*",
    "kms:Update*",
    "kms:Enable*",
    "kms:Revoke*",
    "kms:List*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```
Na declaração de política 2, `arn:aws:iam::111122223333:role/KMSKeyAdmins` refere-se à função do IAM chamada KMSKey Admins em Conta da AWS 111122223333. Os usuários autorizados a assumir esse perfil podem executar as ações listadas na instrução de política, que são as ações administrativas para gerenciar uma chave do KMS.

**Example Declaração de política 3**  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateDataKey*",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```
Na declaração de política 3, `arn:aws:iam::111122223333:role/EncryptionApp` refere-se à função do IAM nomeada EncryptionApp em Conta da AWS 111122223333. As entidades principais autorizadas a assumir esse perfil podem executar as ações listadas na instrução de política, que incluem as [operações criptográficas](kms-cryptography.md#cryptographic-operations) para uma chave do KMS de criptografia simétrica.

**Example Declaração de política 4**  

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:ListGrants",
    "kms:CreateGrant",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```
Na declaração de política 4, `arn:aws:iam::111122223333:role/EncryptionApp` refere-se à função do IAM nomeada EncryptionApp em Conta da AWS 111122223333. As entidades principais autorizadas assumem esse perfil e podem executar as ações listadas na instrução de política. Essas ações, quando combinadas com as ações permitidas na **Instrução de política de exemplo 3**, são aquelas necessárias para delegar o uso da chave do KMS à maioria dos [serviços da AWS integrados ao AWS KMS](service-integration.md), especificamente os serviços que usam [concessões](grants.md). O GrantIsFor AWSResource valor [kms:](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) no `Condition` elemento garante que a delegação seja permitida somente quando o delegado é um AWS serviço que se integra AWS KMS e usa concessões para autorização.

Para conhecer todas as diferentes maneiras de especificar uma entidade principal em um documento de política de chaves, consulte [Especificar uma entidade principal ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal_specifying), no *Manual do usuário do IAM*.

Para saber mais sobre as AWS KMS principais políticas, consulte[Políticas-chave em AWS KMS](key-policies.md).

# Examinar políticas do IAM
<a name="determining-access-iam-policies"></a>

Além da política de chaves e concessões, também é possível usar as [políticas do IAM](iam-policies.md) para permitir o acesso a uma chave do KMS. Para obter mais informações sobre como as políticas do IAM e as políticas de chaves funcionam juntas, consulte [Solução de problemas de AWS KMS permissões](policy-evaluation.md).

Para determinar quais entidades principais têm acesso no momento a uma chave do KMS por meio de políticas do IAM, você pode usar a ferramenta baseada em navegador [Simulador de políticas do IAM](https://policysim.aws.amazon.com/), ou pode fazer solicitações para a API do IAM.

**Contents**
+ [Examinar políticas do IAM com o Simulador de políticas do IAM](#determining-access-iam-policy-simulator)
+ [Examinar políticas do IAM com a API do IAM](#determining-access-iam-api)

## Examinar políticas do IAM com o Simulador de políticas do IAM
<a name="determining-access-iam-policy-simulator"></a>

O Simulador de políticas do IAM pode ajudar a saber quais entidades principais têm acesso a uma chave do KMS por meio de uma política do IAM.

**Para usar o simulador de políticas do IAM para determinar o acesso a uma chave do KMS**

1. Faça login no Console de gerenciamento da AWS e abra o IAM Policy Simulator em[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/).

1. No painel **Users, Groups, and Roles (Usuários, grupos e funções)**, escolha o usuário, o grupo ou a função cujas políticas você deseja simular.

1. (Opcional) Desmarque a caixa de seleção ao lado de qualquer política que você deseja omitir da simulação. Para simular todas as políticas, deixe todas as políticas selecionadas.

1. No painel **Policy Simulator (Simulador de políticas)**, faça o seguinte:

   1. Para **Select service (Selecionar serviço)**, selecione **Key Management Service**.

   1. Para simular AWS KMS ações específicas, em **Selecionar ações**, escolha as ações a serem simuladas. Para simular todas as AWS KMS ações, escolha **Selecionar tudo**.

1. (Opcional) O Simulador de políticas simula o acesso a todas as chaves do KMS por padrão. Para simular o acesso a uma determinada chave do KMS, escolha **Simulation Settings** (Configurações de simulação) e digite o nome do recurso da Amazon (ARN) da chave do KMS a ser simulada.

1. Selecione **Run Simulation (Executar simulação)**.

Você pode visualizar os resultados da simulação na seção **Results (Resultados)**. Repita as etapas 2 a 6 para cada usuário, grupo e perfil na Conta da AWS.

## Examinar políticas do IAM com a API do IAM
<a name="determining-access-iam-api"></a>

Você pode usar a API do IAM para examinar políticas do IAM programaticamente. As etapas a seguir fornecem uma visão geral de como fazer isso:

1. Para cada um Conta da AWS listado como principal na política de chaves (ou seja, cada [principal de AWS conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) especificado neste formato:`"Principal": {"AWS": "arn:aws:iam::111122223333:root"}`), use as [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)operações [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)e na API do IAM para obter todos os usuários e funções na conta.

1. Para cada usuário e função na lista, use a [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)operação na API IAM, transmitindo os seguintes parâmetros:
   + Para `PolicySourceArn`, especifique o Amazon Resource Name (ARN) de um usuário ou função da sua lista. É possível especificar somente um `PolicySourceArn` para cada solicitação `SimulatePrincipalPolicy`, portanto, você deve chamar essa operação diversas vezes, uma vez para cada perfil e usuário em sua lista.
   + Para a `ActionNames` lista, especifique cada ação AWS KMS da API a ser simulada. Para simular todas as ações AWS KMS da API, use`kms:*`. Para testar ações de AWS KMS API individuais, preceda cada ação de API com "`kms:`“, por exemplo,"`kms:ListKeys`”. Para obter uma lista completa das ações de API do AWS KMS , consulte [Actions](https://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html) (Ações) na *Referência de API do AWS Key Management Service *.
   + (Opcional) Para determinar se os usuários ou funções têm acesso a chaves KMS específicas, use o `ResourceArns` parâmetro para especificar uma lista dos nomes de recursos da Amazon (ARNs) das chaves do KMS. Para determinar se os usuários ou perfis têm acesso a qualquer chave do KMS, omita o parâmetro `ResourceArns`.

O IAM responde a cada solicitação `SimulatePrincipalPolicy` com uma decisão de avaliação: `allowed`, `explicitDeny` ou `implicitDeny`. Para cada resposta que contém uma decisão de avaliação de`allowed`, a resposta inclui o nome da operação de AWS KMS API específica que é permitida. Ela também inclui o ARN da chave do KMS que foi usada na avaliação, se houver.

# Examinar concessões
<a name="determining-access-grants"></a>

As concessões são mecanismos avançados para especificar permissões que você ou um AWS serviço integrado AWS KMS podem usar para especificar como e quando uma chave KMS pode ser usada. Concessões são associadas a uma chave do KMS, e cada concessão contém a entidade principal que recebe permissão para usar a chave do KMS e uma lista de operações que são permitidas. As concessões são uma alternativa para a política de chaves e são úteis para casos de uso específicos. Para obter mais informações, consulte [Subsídios em AWS KMS](grants.md).

Para obter uma lista de concessões para uma chave KMS, use a AWS KMS [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operação. É possível examinar as concessões de uma chave do KMS para determinar quem ou o quê tem acesso no momento para usar a chave do KMS por meio dessas concessões. Por exemplo, a seguir há uma representação JSON de uma concessão que foi obtida do comando [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) na AWS CLI.

```
{"Grants": [{
  "Operations": ["Decrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "0d8aa621-43ef-4657-b29c-3752c41dc132",
  "RetiringPrincipal": "arn:aws:iam::123456789012:root",
  "GranteePrincipal": "arn:aws:sts::111122223333:assumed-role/aws:ec2-infrastructure/i-5d476fab",
  "GrantId": "dc716f53c93acacf291b1540de3e5a232b76256c83b2ecb22cdefa26576a2d3e",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151834E9,
  "Constraints": {"EncryptionContextSubset": {"aws:ebs:id": "vol-5cccfb4e"}}
}]}
```

Para saber quem ou o quê tem acesso para usar a chave do KMS, procure o elemento `"GranteePrincipal"`. No exemplo anterior, o principal favorecido é um usuário de função assumida associado à instância do EC2 i-5d476fab. A infraestrutura do EC2 usa essa função para anexar o volume do EBS criptografado vol-5cccfb4e à instância. Nesse caso, a função da infraestrutura do EC2 tem permissão para usar a chave do KMS porque você já criou um volume do EBS criptografado protegido por essa chave do KMS. Anexe o volume a uma instância do EC2.

A seguir há outro exemplo de representação JSON de uma concessão que foi obtida do comando [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) na AWS CLI. No exemplo a seguir, o principal beneficiário é outro. Conta da AWS

```
{"Grants": [{
  "Operations": ["Encrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "",
  "GranteePrincipal": "arn:aws:iam::444455556666:root",
  "GrantId": "f271e8328717f8bde5d03f4981f06a6b3fc18bcae2da12ac38bd9186e7925d11",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151269E9
}]}
```