

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Otorgue permisos de IAM para Hooks CloudFormation
<a name="grant-iam-permissions-for-hooks"></a>

De forma predeterminada, un usuario nuevo Cuenta de AWS no tiene permiso para administrar Hooks mediante la Consola de administración de AWS, AWS Command Line Interface (AWS CLI) o la AWS API. Para conceder permisos a los usuarios, un administrador de IAM puede crear políticas de IAM. A continuación, el administrador puede añadir las políticas de IAM a roles y los usuarios pueden asumirlos.

Usa los ejemplos de políticas de este tema para crear tus propias políticas de IAM personalizadas y conceder a los usuarios permisos para trabajar con Hooks. 

*Para obtener información sobre cómo crear una política de IAM basada en la identidad con estos ejemplos de documentos de política de JSON, consulte [Definir permisos de IAM personalizados con políticas gestionadas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la Guía del usuario de IAM.*

En este tema se describen los permisos necesarios para hacer lo siguiente:
+ **Administrar Hooks**: crea, modifica y deshabilita Hooks en tu cuenta.
+ **Publica Hooks públicamente**: registra, prueba y publica tus Hooks personalizados para que estén disponibles públicamente en el CloudFormation registro.
+ **Ver los resultados de las invocaciones**: accede y consulta los resultados de las invocaciones de Hook en tu cuenta.
+ **Consulta los detalles de un resultado de invocación**: accede a información detallada y a una guía de corrección para un resultado de invocación de Hook específico en tu cuenta.

*A medida que vaya creando sus políticas de IAM, encontrará documentación sobre todas las acciones, recursos y claves de condición asociados al prefijo de `cloudformation` servicio en la CloudFormation sección [Acciones, recursos y claves de condición](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html) de la Referencia de autorización de servicio.*

**Topics**
+ [Permita que un usuario administre Hooks](#iam-permissions-to-manage-hooks)
+ [Permita que un usuario publique Hooks personalizados públicamente](#iam-permissions-for-public-hook-publishing)
+ [Permita que un usuario vea los resultados de la invocación de Hook](#iam-permissions-to-request-invocation-results)
+ [Permite que un usuario vea los resultados detallados de la invocación de Hook](#get-detailed-hook-invocation-results)
+ [AWS KMS política clave y permisos para cifrar los resultados de CloudFormation Hooks en reposo](hooks-kms-key-policy.md)

## Permita que un usuario administre Hooks
<a name="iam-permissions-to-manage-hooks"></a>

Si necesitas permitir a los usuarios gestionar las extensiones, incluidos los Hooks, sin poder hacerlas públicas en el CloudFormation registro, puedes utilizar el siguiente ejemplo de política de IAM.

**importante**  
Las llamadas a la `SetTypeConfiguration` API `ActivateType` y las llamadas a la API funcionan juntas para crear Hooks en tu cuenta. Cuando concedes permiso a un usuario para llamar a la `SetTypeConfiguration` API, automáticamente le concedes la posibilidad de modificar y deshabilitar los Hooks existentes. No puedes usar permisos a nivel de recursos para restringir el acceso a esta llamada a la API. Por lo tanto, asegúrate de conceder este permiso solo a los usuarios autorizados de tu cuenta.

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

****  

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

------

Los usuarios que administran Hooks pueden necesitar algunos permisos relacionados, por ejemplo: 
+ Para ver los controles proactivos del catálogo de controles de la CloudFormation consola, el usuario debe tener el `controlcatalog:ListControls` permiso establecido en una política de IAM. 
+ Para registrar Hooks personalizados como extensiones privadas en el CloudFormation registro, el usuario debe tener el `cloudformation:RegisterType` permiso establecido en una política de IAM.

## Permita que un usuario publique Hooks personalizados públicamente
<a name="iam-permissions-for-public-hook-publishing"></a>

El siguiente ejemplo de política de IAM se centra específicamente en las capacidades de publicación. Usa esta política si quieres permitir a los usuarios hacer que las extensiones, incluidos los Hooks, estén disponibles públicamente en el CloudFormation registro.

**importante**  
La publicación pública de Hooks los pone a disposición de otros usuarios Cuentas de AWS. Asegúrese de que solo los usuarios autorizados tengan estos permisos y de que las extensiones publicadas cumplan con los estándares de calidad y seguridad de su organización.

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

------

## Permita que un usuario vea los resultados de la invocación de Hook
<a name="iam-permissions-to-request-invocation-results"></a>

Los permisos de IAM necesarios para ver los resultados de la invocación de Hook cambian según el tipo de información que se solicite.

### Muestra los resultados de la invocación de Hook
<a name="list-hook-invocation-results"></a>

Para enumerar los resultados de la invocación de Hook, los usuarios necesitan diferentes permisos en función de la solicitud de API que se realice.
+ Para conceder permisos para solicitar todos los resultados de Hook, los resultados de un Hook específico o los resultados de un Hook y un estado de invocación específicos, debes conceder acceso a la `cloudformation:ListAllHookResults` acción.
+ Para conceder permisos para solicitar resultados especificando un objetivo de Hook, debes conceder acceso a la `cloudformation:ListHookResults` acción. Este permiso permite a la persona que llama a la API especificar los `TargetId` parámetros `TargetType` y al realizar la llamada`ListHookResults`.

A continuación, se muestra un ejemplo de una política de permisos básica para enumerar los resultados de la invocación de Hook. Las identidades de IAM (usuarios o roles) con esta política tienen permiso para solicitar todos los resultados de la invocación mediante todas las combinaciones de parámetros disponibles.

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

****  

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

------

#### Controle qué conjuntos de cambios se pueden especificar
<a name="control-which-change-sets"></a>

El siguiente ejemplo de política de IAM concede permisos a la `cloudformation:ListHookResults` acción para solicitar resultados especificando el objetivo del Hook. Sin embargo, también deniega la acción si el objetivo es un conjunto de cambios denominado`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"
                }
            }
        }
    ]
}
```

------

#### Controla qué ganchos se pueden especificar
<a name="control-which-hooks"></a>

El siguiente ejemplo de política de IAM otorga permisos a la `cloudformation:ListAllHookResults` acción para solicitar los resultados de la invocación solo cuando se proporciona el ARN del Hook en la solicitud. Niega la acción para un ARN de Hook específico.

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

------

## Permite que un usuario vea los resultados detallados de la invocación de Hook
<a name="get-detailed-hook-invocation-results"></a>

Para conceder permisos para ver los resultados detallados de una invocación de Hook específica, debes conceder acceso a la `cloudformation:GetHookResult` acción. Este permiso permite a los usuarios obtener información detallada y una guía de corrección para un resultado de invocación de Hook específico. Para obtener más información, consulta [GetHookResult](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_GetHookResult.html) en la *AWS CloudFormation Referencia de la API de *.

El siguiente ejemplo de política de IAM concede permisos a la acción. `cloudformation:GetHookResult`

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

****  

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

------

**nota**  
Puedes configurar Hooks para cifrar los resultados de invocación detallados almacenados en la nube con tus propias claves. AWS KMS Para obtener información sobre cómo configurar la política de claves y los permisos de IAM que necesita cuando utiliza una clave gestionada por el cliente para el cifrado, consulte. [AWS KMS política clave y permisos para cifrar los resultados de CloudFormation Hooks en reposo](hooks-kms-key-policy.md) 