

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

# Chave KMS \| Criar
<a name="deployment-advanced-kms-key-create"></a>

Crie uma chave mestra de cliente (CMK) do AWS KMS usando o documento de automação SSM com validação de políticas.

**Classificação completa:** Implantação \| Componentes avançados da pilha \| Chave KMS \| Criar

## Detalhes do tipo de alteração
<a name="ct-1d84keiri1jhg-DAKc-table"></a>


****  

|  |  | 
| --- |--- |
| ID do tipo de alteração | ct-1d84keiri1jhg | 
| Versão atual | 2,0 | 
| Duração esperada da execução | 30 minutos | 
| Aprovação da AWS | Obrigatório | 
| Aprovação do cliente | Não obrigatório | 
| Modo de execução | Automatizado | 

## Informações adicionais
<a name="deployment-advanced-kms-key-create-info"></a>

### Criar uma chave do KMS
<a name="ex-kms-key-create-col"></a>

#### Criação de uma chave do AWS KMS com o console
<a name="kms-key-create-con"></a>

Captura de tela desse tipo de alteração no console AMS:

![](http://docs.aws.amazon.com/pt_br/managedservices/latest/ctref/images/guiKmsKeyCreateCT.png)


Como funciona:

1. Navegue até a página **Criar RFC**: No painel de navegação esquerdo do console AMS, clique **RFCs**para abrir a página da RFCs lista e, em seguida, clique em **Criar** RFC.

1. Escolha um tipo de alteração popular (CT) na visualização padrão **Procurar tipos de alteração** ou selecione uma CT na visualização **Escolher por categoria**.
   + **Navegar por tipo de alteração**: você pode clicar em um CT popular na área de **criação rápida** para abrir imediatamente a página **Executar RFC**. Observe que você não pode escolher uma versão mais antiga do CT com a criação rápida.

     Para classificar CTs, use a área **Todos os tipos de alteração** na exibição **Cartão** ou **Tabela**. Em qualquer exibição, selecione uma CT e clique em **Criar RFC** para abrir a página **Executar RFC**. Se aplicável, a opção **Criar com uma versão mais antiga** aparece ao lado do botão **Criar RFC**.
   + **Escolha por categoria**: selecione uma categoria, subcategoria, item e operação e a caixa de detalhes do CT será aberta com a opção **Criar com uma versão mais antiga**, se aplicável. Clique em **Criar RFC** para abrir a página **Executar RFC**.

1. Na página **Executar RFC**, abra a área do nome do CT para ver a caixa de detalhes do CT. É necessário um **Assunto** (preenchido se você escolher seu CT na visualização **Procurar tipos de alteração**). Abra a área **Configuração adicional** para adicionar informações sobre o RFC.

   Na área **Configuração de execução**, use as listas suspensas disponíveis ou insira valores para os parâmetros necessários. Para configurar parâmetros de execução opcionais, abra a área **Configuração adicional**.

1. Ao terminar, clique em **Executar**. Se não houver erros, a página **RFC criada com sucesso** será exibida com os detalhes da RFC enviada e a saída inicial de **execução**. 

1. Abra a área **Parâmetros de execução** para ver as configurações que você enviou. Atualize a página para atualizar o status de execução do RFC. Opcionalmente, cancele a RFC ou crie uma cópia dela com as opções na parte superior da página.

#### Criação de uma chave do AWS KMS com a CLI
<a name="kms-key-create-cli"></a>

Como funciona:

1. Use o Inline Create (você emite um `create-rfc` comando com todos os parâmetros de RFC e execução incluídos) ou o Template Create (você cria dois arquivos JSON, um para os parâmetros RFC e outro para os parâmetros de execução) e emita o `create-rfc` comando com os dois arquivos como entrada. Ambos os métodos são descritos aqui.

1. Envie o `aws amscm submit-rfc --rfc-id {{ID}}` comando RFC: com o ID RFC retornado.

   Monitore o `aws amscm get-rfc --rfc-id {{ID}}` comando RFC:.

Para verificar a versão do tipo de alteração, use este comando:

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value={{CT_ID}}
```
**nota**  
Você pode usar qualquer `CreateRfc` parâmetro com qualquer RFC, independentemente de eles fazerem parte do esquema para o tipo de alteração. Por exemplo, para receber notificações quando o status da RFC mudar, adicione essa linha `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` à parte dos parâmetros da RFC da solicitação (não aos parâmetros de execução). Para obter uma lista de todos os CreateRfc parâmetros, consulte a [Referência da API de gerenciamento de alterações do AMS](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html).

*CRIAÇÃO EM LINHA*:

Execute o comando create RFC com os parâmetros de execução fornecidos em linha (aspas de escape ao fornecer parâmetros de execução em linha) e, em seguida, envie a ID de RFC retornada. Por exemplo, você pode substituir o conteúdo por algo assim:

Somente parâmetros obrigatórios:

```
aws amscm create-rfc --title {{my-app-key}} --change-type-id ct-1d84keiri1jhg --change-type-version {{1.0}} --execution-parameters '{"Description":"{{KMS key for my-app}}","VpcId":"{{VPC_ID}}","Name":"{{my-app-key}}","StackTemplateId":"stm-enf1j068fhg34vugt","TimeoutInMinutes":60,"Parameters":{"Description":"{{KMS key for my-app}}"}}'
```

*CRIAÇÃO DE MODELO*:

1. Envie os parâmetros de execução do esquema JSON para esse tipo de alteração em um arquivo; este exemplo o chama de .json. CreateKmsKeyAutoParams

   ```
   aws amscm get-change-type-version --change-type-id "ct-1d84keiri1jhg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateKmsKeyAutoParams.json
   ```

1. Modifique e salve o CreateKmsKeyAutoParams arquivo. Seguem exemplos.

   **Conceda permissão a um usuário ou função para descriptografar a** CMK criada. Exemplo de parâmetros de execução:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}”,
     "Name": "{{my-app-key-decrypt}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringDecryptPermissions": [
         "{{ARN:role/roleA}}",
         "{{ARN:user/userB}}",
         "{{ARN:role/instanceProfileA}}"
       ],
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Para ver a política resultante, consulte[Concede permissões para descriptografar com a CML para um usuário ou uma função do IAM](#kms-key-grant-cmk-decrypt-for-user-or-role).

   **Conceda a um usuário ou função permissão para criptografar usando a CMK criada**. Exemplo de parâmetros de execução:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-encrypt}}",
     "Tags": [
       {
         "Key": "Name",
         "Value": "{{my-app-key}}"
       }
     ],
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringEncryptPermissions": [
         "{{ARN:role/roleA}}",
         "{{ARN:user/userB}}",
         "{{ARN:role/instanceProfileA}}"
       ],
       "Description": "KMS key for my-app"
     }
   }
   ```

   Para ver a política resultante, consulte[Concede permissões para criptografar com a CML para um usuário ou uma função do IAM](#kms-key-grant-cmk-encrypt-for-user-or-role).

   **Conceda permissão a um usuário, papel ou conta para criar concessões usando a CMK criada**. Exemplo de parâmetros de execução:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-create-grants}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringGrantsPermissions": [
         "{{arn:aws:iam::999999999999:role/roleA}}",
         "{{888888888888}}"
       ],
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Para ver a política resultante, consulte[Concede permissões para criar concessões com a CMK para um usuário, função ou conta do IAM](#kms-key-create-cmk-grants-for-user-role-or-account).

   **Permita que somente serviços da AWS integrados ao AWS KMS realizem a operação GRANT**. Exemplo de parâmetros de execução:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-limit-to-services}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringGrantsPermissions": [
         "{{arn:aws:iam::999999999999:role/roleA}}"
       ],
       "LimitGrantsToAWSResources": "true",
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Para ver a política resultante, consulte[Permita que somente serviços da AWS integrados ao AWS KMS executem a operação GRANT](#kms-key-limit-grants-to-aws-services).

   **Imponha o uso de chaves de contexto de criptografia em operações criptográficas**. Exemplo de parâmetros de execução:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-encryption-keys}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "EnforceEncryptionContextKeys": "true",
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Para ver a política resultante, consulte[Imponha o uso de chaves de contexto de criptografia em operações criptográficas](#kms-key-enforce-encryption-context-keys).

   **Aplique uma lista específica de chaves de contexto de criptografia em operações criptográficas**. Exemplo de parâmetros de execução:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-encryption-list}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "AllowedEncryptionContextKeys": [
         "{{Name}}",
         "{{Application}}"
       ],
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Para ver a política resultante, consulte[Aplique uma lista específica de chaves de contexto de criptografia em operações criptográficas](#kms-key-enforce-encryption-context-keys-list).

   **Permita que os serviços da AWS acessem a CMK criada**. Exemplo de parâmetros de execução:

   ```
   {
     "Description" : "KMS key for my-app",
     "VpcId" : "VPC_ID",
     "Name" : "my-app-key-allow-aws-service-access",
     "StackTemplateId" : "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes" : 60,
     "Parameters" : {
         "AllowServiceRolesAccessKMSKeys": [
             "ec2.us-east-1.amazonaws.com",
             "ecr.us-east-1.amazonaws.com"
       ],
       "Description": "KMS key for my-app"
     }
   }
   ```

   Para ver a política resultante, consulte[Permita que os serviços da AWS acessem a CMK criada](#kms-key-allow-services).

1. Envie o arquivo JSON do modelo RFC para um arquivo; este exemplo o chama de .json: CreateKmsKeyAutoRfc

   ```
   aws amscm create-rfc --generate-cli-skeleton > CreateKmsKeyAutoRfc.json
   ```

1. Modifique e salve o CreateKmsKeyAutoRfc arquivo.json. Por exemplo, você pode substituir o conteúdo por algo assim:

   ```
   {
       "ChangeTypeId": "ct-1d84keiri1jhg",
       "ChangeTypeVersion": "1.0",
       "Title": "{{Create KMS Key}}"
   }
   ```

1. Crie o RFC, especificando o arquivo CreateKmsKeyAuto Rfc e o arquivo: CreateKmsKeyAutoParams 

   ```
   aws amscm create-rfc --cli-input-json file://CreateKmsKeyAutoRfc.json  --execution-parameters file://CreateKmsKeyAutoParams.json
   ```

   Você recebe a ID da nova RFC na resposta e pode usá-la para enviar e monitorar a RFC. Até que você o envie, o RFC permanece no estado de edição e não inicia.

#### Dicas
<a name="ex-kms-key-create-tip"></a>
+ Esse CT cria uma CloudFormation pilha que cria uma chave KMS com. `DeletionPolicy: Retain` Por padrão, a chave KMS criada persistirá mesmo depois que você excluir a pilha. Se tiver certeza de que deseja excluir a chave KMS, crie uma RFC com o tipo de alteração [ct-2zxya20wmf5bf, Gerenciamento \| Componentes avançados da pilha \| Chave](schemas.md#ct-2zxya20wmf5bf-schema-section) KMS \| Excluir (automação gerenciada).
+ Esse tipo de alteração é ExecutionMode =Automatizado, portanto, esse tipo de alteração não requer revisão manual pelas operações do AMS e deve ser executado mais rapidamente do que KMS Key: Create (automação gerenciada); no entanto, se você tiver uma situação incomum, a versão manual poderá funcionar melhor para você. Consulte [Chave KMS \| Criar (automação gerenciada).](https://docs.aws.amazon.com/managedservices/latest/ctref/deployment-advanced-kms-key-create-review-required.html)
+ Essa CT tem um novo parâmetro, AllowServiceRolesAccess kmsKeys, que fornece aos serviços da AWS especificados acesso à chave KMS. A alteração foi feita porque a função de serviço de grupo de escalonamento automático não conseguiu iniciar as instâncias do EC2 com volumes criptografados do EBS devido à falta de permissões para a chave KMS.
+ Para saber mais sobre as chaves do AWS KMS, consulte [AWS Key Management Service (](https://aws.amazon.com/kms/)KMS), AWS Key Management [Service e AWS Key Management FAQs [Service](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) Concepts](https://aws.amazon.com/kms/faqs/).

#### Chave KMS Crie políticas resultantes
<a name="ex-kms-key-create-policies"></a>

Dependendo de como você criou sua chave KMS, você criou políticas. Esses exemplos de políticas correspondem a vários cenários de criação de chaves KMS fornecidos em[Criar uma chave do KMS](#ex-kms-key-create-col).

##### Concede permissões para descriptografar com a CML para um usuário ou uma função do IAM
<a name="kms-key-grant-cmk-decrypt-for-user-or-role"></a>

O exemplo de política resultante concede aos usuários, funções ou perfis de instância do IAM permissão para descriptografar usando a CMK:

```
{
          "Sid": "Allow decrypt using the key",
          "Effect": "Allow",
          "Principal": {
              "AWS": [
                "arn:aws:iam::999999999999:role/roleA",
                "arn:aws:iam::999999999999:user/userB",
                "arn:aws:iam::999999999999:role/instanceProfileA"
              ]
          },
          "Action": [
              "kms:DescribeKey",
              "kms:Decrypt"
          ],
          "Resource": "*"
}
```

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte [Criar uma chave do KMS](#ex-kms-key-create-col)

##### Concede permissões para criptografar com a CML para um usuário ou uma função do IAM
<a name="kms-key-grant-cmk-encrypt-for-user-or-role"></a>

O exemplo de política resultante concede aos usuários, funções ou perfis de instância do IAM permissão para criptografar usando a CMK:

```
{
          "Sid": "Allow encrypt using the key",
          "Effect": "Allow",
          "Principal": {
              "AWS": [
                "arn:aws:iam::999999999999:role/roleA",
                "arn:aws:iam::999999999999:user/userB",
                "arn:aws:iam::999999999999:role/instanceProfileA"
              ]
          },
          "Action": [
              "kms:DescribeKey",
              "kms:Encrypt",
              "kms:ReEncrypt*",
              "kms:GenerateDataKey",
              "kms:GenerateDataKeyWithoutPlaintext"
          ],
          "Resource": "*"
}
```

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte [Criar uma chave do KMS](#ex-kms-key-create-col)

##### Concede permissões para criar concessões com a CMK para um usuário, função ou conta do IAM
<a name="kms-key-create-cmk-grants-for-user-role-or-account"></a>

Exemplo de política resultante:

```
{
          "Sid": "Allow grants",
          "Effect": "Allow",
          "Principal": {
              "AWS": [
                  "arn:aws:iam::999999999999:role/roleA",
                  "arn:aws:iam::888888888888:root"
              ]
          },
          "Action": [
              "kms:CreateGrant",
              "kms:ListGrants",
              "kms:RevokeGrant"
          ],
          "Resource": "*"
}
```

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte [Criar uma chave do KMS](#ex-kms-key-create-col)

##### Permita que somente serviços da AWS integrados ao AWS KMS executem a operação GRANT
<a name="kms-key-limit-grants-to-aws-services"></a>

Exemplo de política resultante:

```
{
          "Sid": "Allow grants",
          "Effect": "Allow",
          "Principal": {
              "AWS": "arn:aws:iam::999999999999:role/roleA"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:ListGrants",
              "kms:RevokeGrant"
          ],
          "Resource": "*"
      },
      {
          "Sid": "Deny if grant is not for AWS resource",
          "Effect": "Deny",
          "Principal": {
              "AWS": "*"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:ListGrants",
              "kms:RevokeGrant"
          ],
          "Resource": "*",
          "Condition": {
              "Bool": {
                  "kms:GrantIsForAWSResource": "false"
              }
          }
      } }
}
```

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte [Criar uma chave do KMS](#ex-kms-key-create-col)

##### Imponha o uso de chaves de contexto de criptografia em operações criptográficas
<a name="kms-key-enforce-encryption-context-keys"></a>

Exemplo de política resultante:

```
{
          "Effect": "Deny",
          "Principal": {
              "AWS": "*"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:Decrypt",
              "kms:Encrypt",
              "kms:GenerateDataKey*",
              "kms:ReEncrypt"
          ],
          "Resource": "*",
          "Condition": {
              "Null": {
                  "kms:EncryptionContextKeys": "true"
              }
          }
}
```

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte [Criar uma chave do KMS](#ex-kms-key-create-col)

##### Aplique uma lista específica de chaves de contexto de criptografia em operações criptográficas
<a name="kms-key-enforce-encryption-context-keys-list"></a>

Exemplo de política resultante:

```
{
          "Effect": "Deny",
          "Principal": {
              "AWS": "*"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:Decrypt",
              "kms:Encrypt",
              "kms:GenerateDataKey*",
              "kms:ReEncrypt"
          ],
          "Resource": "*",
          "Condition": {
              "StringEquals": {
                  "kms:EncryptionContextKeys": [
                    "Name",
                    "Application"
                  ]
              }
          }
      }
```

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte [Criar uma chave do KMS](#ex-kms-key-create-col)

##### Permita que os serviços da AWS acessem a CMK criada
<a name="kms-key-allow-services"></a>

Exemplo de política resultante:

```
{
    "Effect": "Allow",
    "Principal": {
        "AWS": "*"
    },
    "Action": [
        "kms:ListGrants",
        "kms:CreateGrant",
        "kms:DescribeKey",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:ViaService":  [
              "ec2.us-west-2.amazonaws.com",
              "ecr.us-east-1.amazonaws.com"
            ],
            "kms:CallerAccount": "111122223333"
        }
    }
}
```

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte [Criar uma chave do KMS](#ex-kms-key-create-col)

## Parâmetros de entrada de execução
<a name="deployment-advanced-kms-key-create-input"></a>

Para obter informações detalhadas sobre os parâmetros de entrada de execução, consulte[Esquema para o tipo de alteração ct-1d84keiri1jhg](schemas.md#ct-1d84keiri1jhg-schema-section).

## Exemplo: parâmetros obrigatórios
<a name="deployment-advanced-kms-key-create-ex-min"></a>

```
{
  "DocumentName": "AWSManagedServices-CreateKMSKey",
  "Region": "us-east-1",
  "Parameters": {
    "Description": "Test key"
  }
}
```

## Exemplo: Todos os parâmetros
<a name="deployment-advanced-kms-key-create-ex-max"></a>

```
{
  "DocumentName": "AWSManagedServices-CreateKMSKey",
  "Region": "us-west-2",
  "Parameters": {
    "Alias": "testkey",
    "EnableKeyRotation": true,
    "Description": "Test key for validation",
    "PendingWindow": 30,
    "IAMPrincipalsRequiringDecryptPermissions": [
      "arn:aws:iam::123456789012:user/myuser",
      "arn:aws:iam::123456789012:role/myrole"
    ],
    "IAMPrincipalsRequiringEncryptPermissions": [
      "arn:aws:iam::123456789012:user/myuser",
      "arn:aws:iam::123456789012:role/myrole"
    ],
    "IAMPrincipalsRequiringGrantsPermissions": [
      "arn:aws:iam::123456789012:user/myuser",
      "arn:aws:iam::123456789012:role/myrole",
      "987654321098"
    ],
    "LimitGrantsToAWSResources": true,
    "EnforceEncryptionContextKeys": true,
    "AllowedEncryptionContextKeys": [
      "App",
      "Environment"
    ],
    "AllowServiceRolesAccessKMSKeys": [
      "ec2.us-west-2.amazonaws.com",
      "s3.us-west-2.amazonaws.com"
    ],
    "Tags": [
      {
        "Key": "foo",
        "Value": "bar"
      }
    ]
  }
}
```