

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

# Conceda permissões do IAM para CloudFormation Hooks
<a name="grant-iam-permissions-for-hooks"></a>

Por padrão, um novo usuário Conta da AWS não tem permissão para gerenciar Hooks usando a AWS API Console de gerenciamento da AWS, AWS Command Line Interface (AWS CLI) ou. Para conceder permissão aos usuários, um administrador do IAM pode criar políticas do IAM. O administrador pode então adicionar as políticas do IAM aos perfis e os usuários podem assumir os perfis.

Use os exemplos de políticas neste tópico para criar suas próprias políticas personalizadas do IAM para dar aos usuários permissões para trabalhar com Hooks. 

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documentos de política JSON, consulte [Definir permissões personalizadas do IAM com políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no Guia do usuário do *IAM*.

Este tópico aborda as permissões necessárias para fazer o seguinte:
+ **Gerenciar ganchos** — Crie, modifique e desative ganchos em sua conta.
+ **Publique ganchos publicamente** — registre, teste e publique seus ganchos personalizados para disponibilizá-los publicamente no CloudFormation registro.
+ **Visualize os resultados da invocação** — Acesse e consulte os resultados das invocações do Hook em sua conta.
+ **Exibir detalhes do resultado de uma invocação** — Acesse informações detalhadas e orientações de remediação para um resultado específico de invocação do Hook em sua conta.

Ao criar suas políticas do IAM, você pode encontrar a documentação de todas as ações, recursos e chaves de condição associadas ao prefixo do `cloudformation` serviço na CloudFormation seção [Ações, recursos e chaves de condição para](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html) da *Referência de autorização de serviço*.

**Topics**
+ [Permitir que um usuário gerencie Hooks](#iam-permissions-to-manage-hooks)
+ [Permitir que um usuário publique Hooks personalizados publicamente](#iam-permissions-for-public-hook-publishing)
+ [Permitir que um usuário visualize os resultados da invocação do Hook](#iam-permissions-to-request-invocation-results)
+ [Permitir que um usuário visualize os resultados detalhados da invocação do Hook](#get-detailed-hook-invocation-results)
+ [AWS KMS principais políticas e permissões para criptografar resultados de CloudFormation Hooks em repouso](hooks-kms-key-policy.md)

## Permitir que um usuário gerencie Hooks
<a name="iam-permissions-to-manage-hooks"></a>

Se você precisar permitir que os usuários gerenciem extensões, incluindo Hooks, sem a capacidade de torná-las públicas no CloudFormation registro, você pode usar o exemplo de política do IAM a seguir.

**Importante**  
As chamadas de `SetTypeConfiguration` API `ActivateType` e as chamadas funcionam juntas para criar Hooks em sua conta. Ao conceder permissão a um usuário para chamar a `SetTypeConfiguration` API, você automaticamente concede a ele a capacidade de modificar e desativar os Hooks existentes. Você não pode usar permissões em nível de recurso para restringir o acesso a essa chamada de API. Portanto, certifique-se de conceder essa permissão somente aos usuários autorizados em sua conta.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ActivateType",
                "cloudformation:DescribeType",
                "cloudformation:ListTypes",
                "cloudformation:SetTypeConfiguration"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Os usuários que gerenciam Hooks podem precisar de algumas permissões relacionadas, por exemplo: 
+ Para visualizar os controles proativos do Catálogo de Controle no CloudFormation console, o usuário deve ter a `controlcatalog:ListControls` permissão em uma política do IAM. 
+ Para registrar Hooks personalizados como extensões privadas no CloudFormation registro, o usuário deve ter a `cloudformation:RegisterType` permissão em uma política do IAM.

## Permitir que um usuário publique Hooks personalizados publicamente
<a name="iam-permissions-for-public-hook-publishing"></a>

O exemplo a seguir da política do IAM se concentra especificamente nos recursos de publicação. Use essa política se precisar permitir que os usuários disponibilizem extensões, incluindo Hooks, publicamente no CloudFormation registro.

**Importante**  
Publishing Hooks os disponibiliza publicamente para outros Contas da AWS. Garanta que somente usuários autorizados tenham essas permissões e que as extensões publicadas atendam aos padrões de qualidade e segurança da sua organização.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:DescribePublisher",
                "cloudformation:DescribeTypeRegistration",
                "cloudformation:ListTypes",
                "cloudformation:ListTypeVersions",
                "cloudformation:PublishType",
                "cloudformation:RegisterPublisher",
                "cloudformation:RegisterType",
                "cloudformation:TestType"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Permitir que um usuário visualize os resultados da invocação do Hook
<a name="iam-permissions-to-request-invocation-results"></a>

As permissões do IAM necessárias para visualizar os resultados da invocação do Hook mudam dependendo do tipo de informação solicitada.

### Listar resultados de invocação de Hook
<a name="list-hook-invocation-results"></a>

Para listar os resultados da invocação do Hook, os usuários precisam de permissões diferentes, dependendo da solicitação de API que está sendo feita.
+ Para conceder permissões para solicitar todos os resultados do Hook, resultados de um Hook específico ou resultados de um Hook específico e status de invocação, você deve conceder acesso à `cloudformation:ListAllHookResults` ação.
+ Para conceder permissões para solicitar resultados especificando um alvo do Hook, você deve conceder acesso à `cloudformation:ListHookResults` ação. Essa permissão permite que o chamador da API especifique os `TargetId` parâmetros `TargetType` e ao fazer a chamada`ListHookResults`.

A seguir, mostramos um exemplo de uma política básica de permissões para listar os resultados da invocação do Hook. As identidades do IAM (usuários ou funções) com essa política têm permissão para solicitar todos os resultados da invocação usando todas as combinações de parâmetros disponíveis.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListAllHookResults",
                "cloudformation:ListHookResults"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### Controle quais conjuntos de alterações podem ser especificados
<a name="control-which-change-sets"></a>

O exemplo a seguir da política do IAM concede permissões à `cloudformation:ListHookResults` ação para solicitar resultados especificando o destino do Hook. No entanto, ele também nega a ação se o destino for um conjunto de alterações chamado`example-changeset`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListHookResults"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:ListHookResults"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudformation:ChangeSetName": "example-changeset"
                }
            }
        }
    ]
}
```

------

#### Controle quais ganchos podem ser especificados
<a name="control-which-hooks"></a>

O exemplo a seguir da política do IAM concede permissões à `cloudformation:ListAllHookResults` ação para solicitar resultados de invocação somente quando o ARN do Hook é fornecido na solicitação. Ele nega a ação de um ARN de gancho especificado.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListAllHookResults"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:ListAllHookResults"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "cloudformation:TypeArn": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:ListAllHookResults"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "cloudformation:TypeArn": "arn:aws:cloudformation:us-east-1:123456789012:type/hook/MyCompany-MyHook"
                }
            }
        }
    ]
}
```

------

## Permitir que um usuário visualize os resultados detalhados da invocação do Hook
<a name="get-detailed-hook-invocation-results"></a>

Para conceder permissões para visualizar os resultados detalhados de uma invocação específica do Hook, você deve conceder acesso à `cloudformation:GetHookResult` ação. Essa permissão permite que os usuários recuperem informações detalhadas e orientações de remediação para um resultado específico de invocação de Hook. Para obter mais informações, consulte [GetHookResult](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_GetHookResult.html) na *Referência de APIs do AWS CloudFormation *.

O exemplo a seguir da política do IAM concede permissões para a `cloudformation:GetHookResult` ação.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
       "Action": [
         "cloudformation:GetHookResult"
      ],
      "Resource": "*"
    }
  ]
}
```

------

**nota**  
Você pode configurar Hooks para criptografar resultados detalhados de invocação armazenados na nuvem com suas próprias chaves. AWS KMS Para obter informações sobre como configurar a política de chaves e as permissões do IAM necessárias ao usar uma chave gerenciada pelo cliente para criptografia, consulte[AWS KMS principais políticas e permissões para criptografar resultados de CloudFormation Hooks em repouso](hooks-kms-key-policy.md). 

# 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"
    }
  ]
}
```

------