

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

# AWS KMS principais políticas e permissões para criptografar resultados de CloudFormation Hooks em repouso
<a name="hooks-kms-key-policy"></a>

Este tópico descreve como configurar a política de AWS KMS chaves e as permissões necessárias ao especificar uma chave gerenciada pelo cliente para criptografar dados de anotações do Hooks que estão disponíveis na API. [GetHookResult](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_GetHookResult.html) 

**nota**  
CloudFormation O Hooks não precisa de autorização adicional para usar o padrão Chave pertencente à AWS para criptografar dados de anotações em sua conta.

**Topics**
+ [Visão geral do](#hooks-kms-overview)
+ [Usar o contexto de criptografia para controlar o acesso à chave gerenciada pelo cliente](#hooks-encryption-context-security)
+ [Política de chave do KMS gerenciada pelo cliente](#hooks-policy-example-cmk-access)
+ [Permissões KMS para API `SetTypeConfiguration`](#hooks-policy-example-settypeconfiguration-permissions)
+ [Permissões KMS para API `GetHookResult`](#hooks-policy-example-gethookresult-permissions)

## Visão geral do
<a name="hooks-kms-overview"></a>

O seguinte AWS KMS keys pode ser usado para criptografar dados de anotações do Hook:
+ [Chave pertencente à AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)— Por padrão, CloudFormation usa an Chave pertencente à AWS para criptografar dados. Você não pode visualizar, gerenciar Chaves pertencentes à AWS, usar ou auditar seu uso. No entanto, você não precisa realizar uma configuração explícita para proteger a chave usada para criptografar seus dados. Chaves pertencentes à AWS são fornecidos gratuitamente (sem taxas mensais ou taxas de uso). A menos que você precise auditar ou controlar a chave de criptografia que protege seus dados de anotações, uma Chave pertencente à AWS é uma boa escolha.
+ [Chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) — CloudFormation suporta o uso de uma chave simétrica gerenciada pelo cliente que você cria, possui e gerencia para adicionar uma segunda camada de criptografia sobre a existente Chave pertencente à AWS. AWS KMS taxas se aplicam. Para obter mais informações, consulte [Criação de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) *Guia do desenvolvedor do AWS Key Management Service *. Para gerenciar sua chave, use o AWS Key Management Service (AWS KMS) no [AWS KMS console](https://console.aws.amazon.com/kms) AWS CLI, no ou na AWS KMS API. Para obter mais informações, consulte o [Guia do desenvolvedor do AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/).

Você pode configurar chaves gerenciadas pelo cliente ao criar e atualizar Hooks. Quando você fornece sua chave gerenciada pelo cliente, CloudFormation usa essa chave para criptografar os dados das anotações antes de armazená-los. Quando os dados das anotações são acessados posteriormente durante a operação da `GetHookResult` API, eles CloudFormation são automaticamente descriptografados. Para obter informações sobre como configurar sua chave de criptografia para Hooks, consulte. [Referência de sintaxe de esquema de configuração de hook](hook-configuration-schema.md)

**Importante**  
Observe que a `KmsKeyId` opção de especificar uma chave gerenciada pelo cliente atualmente só está disponível quando você usa o AWS CLI para configurar seu Hook.

## Usar o contexto de criptografia para controlar o acesso à chave gerenciada pelo cliente
<a name="hooks-encryption-context-security"></a>

CloudFormation O Hooks inclui automaticamente o contexto de criptografia em cada operação de armazenamento e recuperação de anotações. Isso permite que você defina condições de contexto de criptografia em sua política de chaves para garantir que a chave só possa ser usada para ganchos específicos:
+ `kms:EncryptionContext:aws:cloudformation:hooks:service`— Garante que a chave seja usada apenas pelo serviço CloudFormation Hooks.
+ `kms:EncryptionContext:aws:cloudformation:account-id`— Impede o uso de chaves entre contas combinando seu Conta da AWS ID.
+ `kms:EncryptionContext:aws:cloudformation:arn`— Restrinja o uso a ganchos específicos usando padrões ARN.

Essas condições fornecem proteção adicional contra ataques confusos por meio da vinculação criptográfica dos dados criptografados ao contexto específico do Hook.

## Política de chave do KMS gerenciada pelo cliente
<a name="hooks-policy-example-cmk-access"></a>

Ao criar sua chave gerenciada pelo cliente, você deve definir sua política de chaves para permitir que o serviço CloudFormation Hooks realize AWS KMS operações. Para usar a política principal a seguir, substitua-a {{placeholder values}} por suas próprias informações.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnableIAMUserDescribeKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{123456789012}}:role/{{ExampleRole}}"
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "cloudformation.{{us-east-1}}.amazonaws.com"
        }
      }
    },
    {
      "Sid": "EnableIAMUserGenerateDataKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{123456789012}}:role/{{ExampleRole}}"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "cloudformation.{{us-east-1}}.amazonaws.com",
          "kms:EncryptionContext:aws:cloudformation:hooks:service": "hooks.cloudformation.amazonaws.com",
          "kms:EncryptionContext:aws:cloudformation:123456789012": "{{123456789012}}"
        },
        "ArnLike": {
          "kms:EncryptionContext:aws:cloudformation:arn": "arn:aws:cloudformation:*:{{123456789012}}:hook/*"
        }
      }
    },
    {
      "Sid": "EnableIAMUserDecrypt",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{123456789012}}:role/{{ExampleRole}}"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "cloudformation.{{us-east-1}}.amazonaws.com"
        }
      }
    },
    {
      "Sid": "AllowHooksServiceDescribeKey",
      "Effect": "Allow",
      "Principal": {
        "Service": "hooks.cloudformation.amazonaws.com"
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{123456789012}}"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:cloudformation:*:{{123456789012}}:hook/*"
        }
      }
    },
    {
      "Sid": "AllowHooksService",
      "Effect": "Allow",
      "Principal": {
        "Service": "hooks.cloudformation.amazonaws.com"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{123456789012}}",
          "kms:EncryptionContext:aws:cloudformation:hooks:service": "hooks.cloudformation.amazonaws.com",
          "kms:EncryptionContext:aws:cloudformation:123456789012": "{{123456789012}}"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:cloudformation:*:{{123456789012}}:hook/*",
          "kms:EncryptionContext:aws:cloudformation:arn": "arn:aws:cloudformation:*:{{123456789012}}:hook/*"
        }
      }
    }
  ]
}
```

------

Essa política concede permissões para as funções do IAM (as três primeiras instruções) e para o serviço CloudFormation Hooks (as duas últimas instruções). A chave de `kms:ViaService` condição garante que a chave KMS só possa ser usada CloudFormation, evitando chamadas diretas à API KMS. As principais operações são:
+ `kms:DescribeKey`— Valida as principais propriedades e metadados. Essa operação está em instruções separadas porque não pode ser usada com condições de contexto de criptografia.
+ `kms:GenerateDataKey`— Gera chaves de criptografia de dados para criptografar anotações antes do armazenamento. Essa operação inclui condições de contexto de criptografia para controle de acesso com escopo definido.
+ `kms:Decrypt`— Descriptografa dados de anotações previamente criptografados. Para funções do IAM, isso inclui a `kms:ViaService` condição. Para o responsável pelo serviço, isso inclui condições de contexto de criptografia.

As chaves de `aws:SourceArn` condição `aws:SourceAccount` e fornecem a proteção primária contra ataques confusos de deputados. As condições do contexto de criptografia fornecem camadas adicionais de validação. Para obter mais informações, consulte [Uso aws:SourceArn ou chaves de aws:SourceAccount condição](https://docs.aws.amazon.com/kms/latest/developerguide/least-privilege.html#least-privilege-source-arn) no *Guia do AWS Key Management Service desenvolvedor*.

**Importante**  
As funções de execução do Hook não precisam de AWS KMS permissões. O diretor de serviço da CloudFormation Hooks realiza todas as AWS KMS operações.

## Permissões KMS para API `SetTypeConfiguration`
<a name="hooks-policy-example-settypeconfiguration-permissions"></a>

Durante a chamada da [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)API, CloudFormation valida as permissões do usuário para criptografar os dados das anotações com a chave especificada. AWS KMS Adicione a seguinte política do IAM ao usuário ou função que configurará a criptografia usando a `SetTypeConfiguration` API. Substitua {{placeholder values}} por suas próprias informações.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "cloudformation:SetTypeConfiguration",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "kms:DescribeKey",
      "Resource": "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{abc-123}}"
    },
    {
      "Effect": "Allow",
      "Action": "kms:GenerateDataKey",
      "Resource": "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{abc-123}}",
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:aws:cloudformation:hooks:service": "hooks.cloudformation.amazonaws.com",
          "kms:EncryptionContext:aws:cloudformation:123456789012": "{{123456789012}}"
        },
        "ArnLike": {
          "kms:EncryptionContext:aws:cloudformation:arn": "arn:aws:cloudformation:*:{{123456789012}}:hook/*"
        }
      }
    }
  ]
}
```

------

## Permissões KMS para API `GetHookResult`
<a name="hooks-policy-example-gethookresult-permissions"></a>

[GetHookResult](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_GetHookResult.html)Para solicitar Hooks que usem sua chave gerenciada pelo cliente, os usuários devem ter `kms:Decrypt` permissão para essa chave. Adicione a seguinte política do IAM ao usuário ou função que chamará`GetHookResult`. `{{arn:aws:kms:us-east-1:123456789012:key/abc-123}}`Substitua pelo ARN da sua chave gerenciada pelo cliente.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "cloudformation:GetHookResult",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "kms:Decrypt",
      "Resource": "{{arn:aws:kms:us-east-1:123456789012:key/abc-123}}"
    }
  ]
}
```

------