

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.

# Gestión de identidad y acceso para AWS CodeDeploy
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) es una herramienta Servicio de AWS que ayuda al administrador a controlar de forma segura el acceso a AWS los recursos. Los administradores de IAM controlan quién puede *autenticarse (iniciar* sesión) y quién puede *autorizarse* (tener permisos) para usar los recursos. CodeDeploy La IAM es una Servicio de AWS opción que puede utilizar sin coste adicional.

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticación con identidades](#security_iam_authentication)
+ [Administración del acceso con políticas](#security_iam_access-manage)
+ [¿Cómo AWS CodeDeploy funciona con IAM](security_iam_service-with-iam.md)
+ [AWS políticas administradas (predefinidas) para CodeDeploy](managed-policies.md)
+ [CodeDeploy actualizaciones de las políticas AWS administradas](managed-policies-updates.md)
+ [AWS CodeDeploy ejemplos de políticas basadas en la identidad](security_iam_id-based-policy-examples.md)
+ [Solución de problemas de AWS CodeDeploy identidad y acceso](security_iam_troubleshoot.md)
+ [CodeDeploy referencia de permisos](auth-and-access-control-permissions-reference.md)
+ [Prevención de la sustitución confusa entre servicios](security_confused_deputy.md)

## Público
<a name="security_iam_audience"></a>

La forma de usar AWS Identity and Access Management (IAM) varía según la función que desempeñes:
+ **Usuario del servicio:** solicite permisos al administrador si no puede acceder a las características (consulte [Solución de problemas de AWS CodeDeploy identidad y acceso](security_iam_troubleshoot.md)).
+ **Administrador del servicio:** determine el acceso de los usuarios y envíe las solicitudes de permiso (consulte [¿Cómo AWS CodeDeploy funciona con IAM](security_iam_service-with-iam.md)).
+ **Administrador de IAM**: escribe las políticas para administrar el acceso (consulte [AWS CodeDeploy ejemplos de políticas basadas en la identidad](security_iam_id-based-policy-examples.md)).

## Autenticación con identidades
<a name="security_iam_authentication"></a>

La autenticación es la forma en que inicias sesión AWS con tus credenciales de identidad. Debe autenticarse como usuario de Usuario raíz de la cuenta de AWS IAM o asumir una función de IAM.

Puede iniciar sesión como una identidad federada con las credenciales de una fuente de identidad, como AWS IAM Identity Center (IAM Identity Center), la autenticación de inicio de sesión único o las credenciales. Google/Facebook Para obtener más información sobre el inicio de sesión, consulte [Cómo iniciar sesión en la Cuenta de AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) en la *Guía del usuario de AWS Sign-In *.

Para el acceso programático, AWS proporciona un SDK y una CLI para firmar criptográficamente las solicitudes. Para obtener más información, consulte [AWS Signature Version 4 para solicitudes de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) en la *Guía del usuario de IAM*.

### Cuenta de AWS usuario root
<a name="security_iam_authentication-rootuser"></a>

 Al crear un Cuenta de AWS, se comienza con una identidad de inicio de sesión denominada *usuario Cuenta de AWS raíz* que tiene acceso completo a todos Servicios de AWS los recursos. Se recomiendaencarecidamente que no utilice el usuario raíz para las tareas diarias. Para ver las tareas que requieren credenciales de usuario raíz, consulte [Tareas que requieren credenciales de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) en la *Guía del usuario de IAM*. 

### Usuarios y grupos
<a name="security_iam_authentication-iamuser"></a>

Un *[usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* es una identidad con permisos específicos para una sola persona o aplicación. Recomendamos el uso de credenciales temporales en lugar de usuarios de IAM con credenciales de larga duración. Para obtener más información, consulte [Exigir a los usuarios humanos que utilicen la federación con un proveedor de identidad para acceder AWS mediante credenciales temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) en la Guía del *usuario de IAM*.

Un [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica un conjunto de usuarios de IAM y facilita la administración de los permisos para grupos grandes de usuarios. Para obtener más información, consulte [Casos de uso para usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) en la *Guía del usuario de IAM*.

### Roles de IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[Rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* es una identidad con permisos específicos que proporciona credenciales temporales. Puede asumir un rol [cambiando de un rol de usuario a uno de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) o llamando a una AWS CLI operación de AWS API. Para obtener más información, consulte [Métodos para asumir un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) en la *Guía del usuario de IAM*.

Los roles de IAM son útiles para el acceso de usuario federado, los permisos de usuario de IAM temporales, el acceso entre cuentas, el acceso entre servicios y las aplicaciones que se ejecutan en Amazon EC2. Para obtener más información, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

## Administración del acceso con políticas
<a name="security_iam_access-manage"></a>

 AWS Para controlar el acceso, puede crear políticas y adjuntarlas a AWS identidades o recursos. Una política define los permisos cuando están asociados a una identidad o un recurso. AWS evalúa estas políticas cuando un director hace una solicitud. La mayoría de las políticas se almacenan AWS como documentos JSON. Para obtener más información sobre los documentos de políticas de JSON, consulte [Información general de políticas de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) en la *Guía del usuario de IAM*.

Mediante las políticas, los administradores especifican quién tiene acceso a qué, definiendo qué **entidad principal** puede realizar **acciones** sobre qué **recursos** y en qué **condiciones**.

De forma predeterminada, los usuarios y los roles no tienen permisos. Un administrador de IAM crea políticas de IAM y las agrega a roles, que los usuarios pueden asumir posteriormente. Las políticas de IAM definen permisos independientemente del método que se utilice para realizar la operación.

### Políticas basadas en identidades
<a name="security_iam_access-manage-id-based-policies"></a>

Las políticas basadas en identidad son documentos de política de permisos JSON que asocia a una identidad (usuario, grupo o rol). Estas políticas controlan qué acciones pueden realizar las identidades, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Las políticas basadas en identidad pueden ser *políticas insertadas* (incrustadas directamente en una sola identidad) o *políticas administradas* (políticas independientes asociadas a varias identidades). Para obtener información sobre cómo elegir entre políticas administradas e insertadas, consulte [Selección entre políticas administradas y políticas insertadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) en la *Guía del usuario de IAM*.

### Otros tipos de políticas
<a name="security_iam_access-manage-other-policies"></a>

AWS admite tipos de políticas adicionales que pueden establecer los permisos máximos que conceden los tipos de políticas más comunes:
+ **Límites de permisos:** establecen los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM. Para obtener más información, consulte [Límites de permisos para las entidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) en la *Guía del usuario de IAM*.
+ **Políticas de control de servicios (SCPs)**: especifican los permisos máximos para una organización o unidad organizativa en AWS Organizations. Para obtener más información, consulte [Políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) en la *Guía del usuario de AWS Organizations *.
+ **Políticas de control de recursos (RCPs)**: establece los permisos máximos disponibles para los recursos de tus cuentas. Para obtener más información, consulte [Políticas de control de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) en la *Guía del AWS Organizations usuario*.
+ **Políticas de sesión:** políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal para un rol o un usuario federado. Para obtener más información, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) en la *Guía del usuario de IAM*.

### Varios tipos de políticas
<a name="security_iam_access-manage-multiple-policies"></a>

Cuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicados de entender. Para saber cómo se AWS determina si se debe permitir una solicitud cuando se trata de varios tipos de políticas, consulte la [lógica de evaluación de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) en la *Guía del usuario de IAM*.

# ¿Cómo AWS CodeDeploy funciona con IAM
<a name="security_iam_service-with-iam"></a>

Antes de utilizar IAM para gestionar el acceso CodeDeploy, debe saber qué funciones de IAM están disponibles para su uso. CodeDeploy Para obtener más información, consulte [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la *Guía del usuario de IAM*.

**Topics**
+ [CodeDeploy políticas basadas en la identidad](#security_iam_service-with-iam-id-based-policies)
+ [CodeDeploy políticas basadas en recursos](#security_iam_service-with-iam-resource-based-policies)
+ [Autorización basada en etiquetas CodeDeploy](#security_iam_service-with-iam-tags)
+ [CodeDeploy Funciones de IAM](#security_iam_service-with-iam-roles)

## CodeDeploy políticas basadas en la identidad
<a name="security_iam_service-with-iam-id-based-policies"></a>

Con las políticas de IAM basadas en la identidad, puede especificar las acciones y los recursos permitidos o denegados y las condiciones en las que se permiten o deniegan las acciones. CodeDeploy admite las acciones, los recursos y las claves de condición. Para obtener información sobre los elementos que utiliza en una política JSON, consulte [Referencia de los elementos de las políticas de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

### Acciones
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Action` de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.

Las acciones políticas CodeDeploy utilizan el `codedeploy:` prefijo antes de la acción. Por ejemplo, el permiso `codedeploy:GetApplication` concede al usuario permiso para realizar la operación `GetApplication`. Las declaraciones de política deben incluir un `NotAction` elemento `Action` o. CodeDeploy define su propio conjunto de acciones que describen las tareas que puede realizar con este servicio.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

```
"Action": [
      "codedeploy:action1",
      "codedeploy:action2"
```

Puede utilizar caracteres comodín para especificar varias acciones (\$1). Por ejemplo, incluya la acción siguiente para especificar todas las acciones que comiencen por la palabra `Describe`:

```
"Action": "ec2:Describe*"
```



Para obtener una lista de CodeDeploy acciones, consulte [las acciones definidas por AWS CodeDeploy](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html#awscodedeploy-actions-as-permissions) en la *Guía del usuario de IAM*.

Para ver una tabla en la que se enumeran todas las acciones de la CodeDeploy API y los recursos a los que se aplican, consulte[CodeDeploy referencia de permisos](auth-and-access-control-permissions-reference.md).

### Recursos
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Resource` de la política JSON especifica el objeto u objetos a los que se aplica la acción. Como práctica recomendada, especifique un recurso utilizando el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). En el caso de las acciones que no admiten permisos por recurso, utilice un carácter comodín (\$1) para indicar que la instrucción se aplica a todos los recursos.

```
"Resource": "*"
```



Por ejemplo, puede indicar un grupo de despliegue (*myDeploymentGroup*) en su declaración mediante su ARN de la siguiente manera:

```
"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:myApplication/myDeploymentGroup"
```

También puede especificar todos los grupos de implementación que pertenezcan a una cuenta mediante el carácter comodín (\$1) del modo siguiente:

```
"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*"
```

Para especificar todos los recursos, o si una acción de la API no es compatible ARNs, utiliza el carácter comodín (\$1) en el `Resource` elemento de la siguiente manera:

```
"Resource": "*"
```

Algunas acciones de la CodeDeploy API aceptan varios recursos (por ejemplo,`BatchGetDeploymentGroups`). Para especificar varios recursos en una sola sentencia, sepárelos ARNs con comas, de la siguiente manera:

```
"Resource": ["arn1", "arn2"]
```

CodeDeploy proporciona un conjunto de operaciones para trabajar con los CodeDeploy recursos. Para ver la lista de las operaciones disponibles, consulte [CodeDeploy referencia de permisos](auth-and-access-control-permissions-reference.md).

Para obtener una lista de los tipos de CodeDeploy recursos y sus correspondientes ARNs, consulte [los recursos definidos por AWS CodeDeploy](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html) en la *Guía del usuario de IAM*. Para obtener información sobre las acciones en las que puede especificar el ARN de cada recurso, consulte [Acciones definidas por AWS CodeDeploy](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html#awscodedeploy-actions-as-permissions).

#### CodeDeploy recursos y operaciones
<a name="arn-formats"></a>

En CodeDeploy, el recurso principal es un grupo de despliegues. En una política, se utiliza un nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política. CodeDeploy admite otros recursos que se pueden utilizar con los grupos de despliegues, incluidas las aplicaciones, las configuraciones de despliegue y las instancias. Estos elementos se denominan subrecursos. Estos recursos y subrecursos tienen ARNs asociados únicos. Para obtener más información, consulte [los nombres de recursos de Amazon (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) en *Referencia general de Amazon Web Services*.


| Tipo de recurso | Formato de ARN | 
| --- | --- | 
| Grupo de implementación |  `arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name`  | 
| Aplicación |  `arn:aws:codedeploy:region:account-id:application:application-name`  | 
| Configuración de implementación |  `arn:aws:codedeploy:region:account-id:deploymentconfig:deployment-configuration-name`   | 
| Instancia |  `arn:aws:codedeploy:region:account-id:instance/instance-ID`  | 
|  Todos los CodeDeploy recursos  |  `arn:aws:codedeploy:*`  | 
|  Todos CodeDeploy los recursos que pertenecen a la cuenta especificada en la región especificada  |  `arn:aws:codedeploy:region:account-id:*`  | 

**nota**  
La mayoría de los AWS servicios utilizan dos puntos (:)) o una barra diagonal (/) como el mismo carácter en ARNs. Sin embargo, CodeDeploy utiliza una coincidencia exacta en las reglas y patrones de recursos. Asegúrese de utilizar los caracteres de ARN correctos cuando cree patrones de eventos para que coincidan con la sintaxis de ARN en el recurso.

### Claves de condición
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

CodeDeploy no proporciona ninguna clave de condición específica del servicio, pero admite el uso de algunas claves de condición globales. Para obtener más información, consulte [Claves de contexto de condición globales de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.



### Ejemplos
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para ver ejemplos de políticas CodeDeploy basadas en la identidad, consulte. [AWS CodeDeploy ejemplos de políticas basadas en la identidad](security_iam_id-based-policy-examples.md)

## CodeDeploy políticas basadas en recursos
<a name="security_iam_service-with-iam-resource-based-policies"></a>

CodeDeploy no admite políticas basadas en recursos. Para ver un ejemplo de una página detallada de políticas basadas en recursos, consulte [Uso](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) de políticas basadas en recursos para. AWS Lambda

## Autorización basada en etiquetas CodeDeploy
<a name="security_iam_service-with-iam-tags"></a>

CodeDeploy no admite el etiquetado de los recursos ni el control del acceso en función de las etiquetas.

## CodeDeploy Funciones de IAM
<a name="security_iam_service-with-iam-roles"></a>

Un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) es una entidad de tu AWS cuenta que tiene permisos específicos.

### Usar credenciales temporales con CodeDeploy
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Puede utilizar credenciales temporales para iniciar sesión con federación, asumir un rol de IAM o asumir un rol de acceso entre cuentas. Las credenciales de seguridad temporales se obtienen llamando a operaciones de AWS STS API como [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)o [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

CodeDeploy admite el uso de credenciales temporales. 

### Roles vinculados a servicios
<a name="security_iam_service-with-iam-roles-service-linked"></a>

CodeDeploy no admite funciones vinculadas a servicios.

### Roles de servicio
<a name="security_iam_service-with-iam-roles-service"></a>

Esta característica permite que un servicio asuma un [rol de servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) en su nombre. Este rol permite que el servicio obtenga acceso a los recursos de otros servicios para completar una acción en su nombre. Los roles de servicio aparecen en su AWS cuenta y son propiedad de la cuenta. Esto significa que un usuario puede cambiar los permisos de este rol. Sin embargo, hacerlo podría deteriorar la funcionalidad del servicio.

CodeDeploy admite funciones de servicio. 

### Elegir un rol de IAM en CodeDeploy
<a name="security_iam_service-with-iam-roles-choose"></a>

Al crear un recurso de grupo de despliegues en CodeDeploy, debe elegir un rol que le permita acceder CodeDeploy a Amazon EC2 en su nombre. Si ha creado previamente un rol de servicio o un rol vinculado a servicios, CodeDeploy le proporciona una lista de roles para elegir. Es importante seleccionar un rol que permita el acceso para iniciar y detener una instancia EC2.

# AWS políticas administradas (predefinidas) para CodeDeploy
<a name="managed-policies"></a>

AWS aborda muchos casos de uso comunes al proporcionar políticas de IAM independientes que son creadas y administradas por. AWS Estas políticas AWS gestionadas conceden permisos para casos de uso comunes, de modo que no tengas que investigar qué permisos son necesarios. Para obtener más información, consulte [Políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) en la *Guía del usuario de IAM*.

**Topics**
+ [Lista de políticas AWS administradas para CodeDeploy](#managed-policies-list)
+ [CodeDeploy políticas y notificaciones gestionadas](#notifications-permissions)

## Lista de políticas AWS administradas para CodeDeploy
<a name="managed-policies-list"></a>

Las siguientes políticas AWS administradas, que puede adjuntar a los usuarios de su cuenta, son específicas de CodeDeploy:
+ `AWSCodeDeployFullAccess`: concede acceso completo a CodeDeploy.

   
**nota**  
AWSCodeDeployFullAccess no proporciona permisos para las operaciones en otros servicios necesarios para implementar sus aplicaciones, como Amazon EC2 y Amazon S3, solo para las operaciones específicas de. CodeDeploy
+ `AWSCodeDeployDeployerAccess`: otorga permiso para registrar e implementar revisiones.

   
+ `AWSCodeDeployReadOnlyAccess`: concede acceso de solo lectura a CodeDeploy.

   
+ <a name="ACD-policy"></a>`AWSCodeDeployRole`: Permite CodeDeploy :
  + Leer las etiquetas en sus instancias o identificar sus instancias de Amazon EC2 mediante nombres de grupo de Amazon EC2 Auto Scaling.
  + Leer, crear, actualizar y eliminar grupos de Amazon EC2 Auto Scaling, enlaces de ciclo de vida, políticas de escalado y funciones de grupo de calentamiento.
  + Publicar información para temas de Amazon SNS.
  + recuperar información sobre las CloudWatch alarmas de Amazon
  + Leer y actualizar los recursos del servicio Elastic Load Balancing.

  La política contiene el siguiente código:

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "autoscaling:CompleteLifecycleAction",
          "autoscaling:DeleteLifecycleHook",
          "autoscaling:DescribeAutoScalingGroups",
          "autoscaling:DescribeLifecycleHooks",
          "autoscaling:PutLifecycleHook",
          "autoscaling:RecordLifecycleActionHeartbeat",
          "autoscaling:CreateAutoScalingGroup",
          "autoscaling:CreateOrUpdateTags",
          "autoscaling:UpdateAutoScalingGroup",
          "autoscaling:EnableMetricsCollection",
          "autoscaling:DescribePolicies",
          "autoscaling:DescribeScheduledActions",
          "autoscaling:DescribeNotificationConfigurations",
          "autoscaling:SuspendProcesses",
          "autoscaling:ResumeProcesses",
          "autoscaling:AttachLoadBalancers",
          "autoscaling:AttachLoadBalancerTargetGroups",
          "autoscaling:PutScalingPolicy",
          "autoscaling:PutScheduledUpdateGroupAction",
          "autoscaling:PutNotificationConfiguration",
          "autoscaling:DescribeScalingActivities",
          "autoscaling:DeleteAutoScalingGroup",
          "autoscaling:PutWarmPool",
          "ec2:DescribeInstances",
          "ec2:DescribeInstanceStatus",
          "ec2:TerminateInstances",
          "tag:GetResources",
          "sns:Publish",
          "cloudwatch:DescribeAlarms",
          "cloudwatch:PutMetricAlarm",
          "elasticloadbalancing:DescribeLoadBalancers",
          "elasticloadbalancing:DescribeLoadBalancerAttributes",
          "elasticloadbalancing:DescribeInstanceHealth",
          "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
          "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
          "elasticloadbalancing:DescribeTargetGroups",
          "elasticloadbalancing:DescribeTargetGroupAttributes",
          "elasticloadbalancing:DescribeTargetHealth",
          "elasticloadbalancing:RegisterTargets",
          "elasticloadbalancing:DeregisterTargets"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

------

   
+ `AWSCodeDeployRoleForLambda`: otorga CodeDeploy permiso de acceso AWS Lambda y cualquier otro recurso necesario para una implementación.

   
+  `AWSCodeDeployRoleForECS`: Concede CodeDeploy permiso para acceder a Amazon ECS y a cualquier otro recurso necesario para una implementación. 

   
+  `AWSCodeDeployRoleForECSLimited`: Concede CodeDeploy permiso para acceder a Amazon ECS y a cualquier otro recurso necesario para una implementación, con las siguientes excepciones: 
  +  En la `hooks` sección del AppSpec archivo, solo se `CodeDeployHook_` pueden usar las funciones Lambda con nombres que comiencen por. Para obtener más información, consulte [AppSpec sección «ganchos» para una implementación de Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs). 
  +  El acceso del bucket de S3 se limita a buckets de S3 con una etiqueta de registro, `UseWithCodeDeploy`, que tiene un valor de `true`. Para obtener más información, consulte [Etiquetado de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). 
+ <a name="EC2-policy"></a>`AmazonEC2RoleforAWSCodeDeployLimited`: otorga CodeDeploy permiso para obtener y enumerar objetos en un bucket de CodeDeploy Amazon S3. La política contiene el siguiente código:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion",
                  "s3:ListBucket"
              ],
              "Resource": "arn:aws:s3:::*/CodeDeploy/*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion"
              ],
              "Resource": "*",
              "Condition": {
                  "StringEquals": {
                      "s3:ExistingObjectTag/UseWithCodeDeploy": "true"
                  }
              }
          }
      ]
  }
  ```

------

Los permisos para algunos aspectos del proceso de implementación se otorgan a otros dos tipos de roles que actúan en nombre de CodeDeploy:
+ Un *perfil de instancia de IAM* es un rol de IAM que se vincula a las instancias de Amazon EC2. Este perfil incluye los permisos necesarios para acceder a los GitHub depósitos o repositorios de Amazon S3 en los que se almacenan las aplicaciones. Para obtener más información, consulte [Paso 4: Crear un perfil de instancia de IAM para las instancias de Amazon EC2](getting-started-create-iam-instance-profile.md).
+ Un *rol de servicio* es un rol de IAM que otorga permisos a un AWS servicio para que pueda acceder a los recursos. AWS Las políticas que se adjuntan a la función de servicio determinan a qué AWS recursos puede acceder el servicio y las acciones que puede realizar con esos recursos. Para CodeDeploy, un rol de servicio se usa para lo siguiente:
  + Para leer las etiquetas aplicadas a las instancias o los nombres de grupo de Amazon EC2 Auto Scaling asociados a las instancias. Esto le CodeDeploy permite identificar las instancias en las que puede implementar aplicaciones.
  + Para realizar operaciones en instancias, grupos de Amazon EC2 Auto Scaling y equilibradores de carga de Elastic Load Balancing.
  + Publicar información en los temas de Amazon SNS para que se puedan enviar notificaciones cuando se produzcan eventos de implementación o instancia específicos.
  + Recuperar información sobre CloudWatch las alarmas a fin de configurar la supervisión de las alarmas para las implementaciones.

  Para obtener más información, consulte [Paso 2: Crear un rol de servicio para CodeDeploy](getting-started-create-service-role.md).

También puede crear políticas de IAM personalizadas para conceder permisos para CodeDeploy acciones y recursos. Adjunta estas políticas personalizadas a los roles de IAM y, a continuación, asigna los roles a los usuarios o grupos que requieren los permisos.

## CodeDeploy políticas y notificaciones gestionadas
<a name="notifications-permissions"></a>

CodeDeploy admite notificaciones para informar a los usuarios de los cambios importantes en las implementaciones. Las políticas gestionadas CodeDeploy incluyen declaraciones de políticas para la funcionalidad de notificación. Para obtener más información, consulte [¿Qué son las notificaciones?](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html)

### Permisos relacionados con notificaciones en políticas administradas de acceso total
<a name="notifications-fullaccess"></a>

La política administrada `AWSCodeDeployFullAccess` incluye las siguientes instrucciones para permitir el acceso completo a las notificaciones. Los usuarios con esta política administrada aplicada también pueden crear y administrar temas de Amazon SNS para notificaciones, suscribirse y cancelar la suscripción a los temas, y enumerar temas para elegir como destinos para las reglas de notificación.

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*:*:application:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
        "Effect": "Allow",
        "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
        ],
        "Resource": "arn:aws:sns:*:*:codestar-notifications*"
    },
    {
      "Sid" : "CodeStarNotificationsChatbotAccess",
      "Effect" : "Allow",
      "Action" : [
        "chatbot:DescribeSlackChannelConfigurations"
      ],
      "Resource" : "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    }
```

### Permisos relacionados con notificaciones en políticas administradas de solo lectura
<a name="notifications-readonly"></a>

La política administrada `AWSCodeDeployReadOnlyAccess` incluye las siguientes instrucciones para permitir el acceso de solo lectura a las notificaciones. Los usuarios con esta política administrada aplicada pueden ver notificaciones de recursos, pero no pueden crearlas, administrarlas ni suscribirse a ellas. 

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*:*:application:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules"
        ],
        "Resource": "*"
    }
```

### Permisos relacionados con notificaciones en otras políticas administradas
<a name="notifications-deployer"></a>

La política administrada de `AWSCodeDeployDeployerAccess` incluye las siguientes instrucciones para que los usuarios puedan crear notificaciones de recursos, actualizarlas, suscribirse y consultar notificaciones de recursos, pero no pueden eliminarlas. Los usuarios a los que se les aplique esta política administrada también pueden crear y administrar temas de Amazon SNS para las notificaciones.

Esta política incluye permisos para hacer lo siguiente:
+ `codestar-notifications:CreateNotificationRule`: permite a las entidades principales crear notificaciones.
+ `codestar-notifications:DescribeNotificationRule`: permite a las entidades principales recuperar información sobre notificaciones.
+ `codestar-notifications:UpdateNotificationRule`: permite a las entidades principales actualizar las notificaciones.
+ `codestar-notifications:Subscribe`: permite a las entidades principales suscribirse a las actualizaciones de las notificaciones.
+ `codestar-notifications:Unsubscribe`: permite a las entidades principales cancelar la suscripción a las actualizaciones de las notificaciones.
+ `codestar-notifications:ListNotificationRules`: permite a las entidades principales recuperar la lista de reglas de notificación.
+ `codestar-notifications:ListTargets`: permite a las entidades principales recuperar la lista de objetivos.
+ `codestar-notifications:ListTagsforResource`: permite a las entidades principales recuperar la lista de etiquetas.
+ `codestar-notifications:ListEventTypes`: permite a las entidades principales recuperar la lista de tipos de eventos.
+ `chatbot:DescribeSlackChannelConfiguration`: permite a las entidades principales recuperar información sobre la configuración del canal de Slack.
+ `sns:ListTopics`: permite a las entidades principales recuperar la lista de temas de Amazon SNS para notificaciones.

```
   {
      "Sid" : "CodeStarNotificationsReadWriteAccess",
      "Effect" : "Allow",
      "Action" : [
        "codestar-notifications:CreateNotificationRule",
        "codestar-notifications:DescribeNotificationRule",
        "codestar-notifications:UpdateNotificationRule",
        "codestar-notifications:Subscribe",
        "codestar-notifications:Unsubscribe"
      ],
      "Resource" : "*",
      "Condition" : {
        "ArnLike" : {
          "codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*:*:application:*"
        }
      }
    },
    {
      "Sid" : "CodeStarNotificationsListAccess",
      "Effect" : "Allow",
      "Action" : [
        "codestar-notifications:ListNotificationRules",
        "codestar-notifications:ListTargets",
        "codestar-notifications:ListTagsforResource",
        "codestar-notifications:ListEventTypes"
      ],
      "Resource" : "*"
    },
    {
      "Sid" : "CodeStarNotificationsChatbotAccess",
      "Effect" : "Allow",
      "Action" : [
        "chatbot:DescribeSlackChannelConfigurations"
      ],
      "Resource" : "*"
    },
    {
      "Sid" : "SNSTopicListAccess",
      "Effect" : "Allow",
      "Action" : [
        "sns:ListTopics"
      ],
      "Resource" : "*"
    }
```

Para obtener más información, consulte [Administración de identidad y acceso para AWS CodeStar Notifications](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

# CodeDeploy actualizaciones de las políticas AWS administradas
<a name="managed-policies-updates"></a>

Consulta los detalles sobre las actualizaciones de las políticas AWS administradas CodeDeploy desde que este servicio comenzó a rastrear estos cambios. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS en CodeDeploy [Historial de documentos](document-history.md). 


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  Política administrada de `AWSCodeDeployDeployerAccess`: actualización de la política existente  |  Se ha actualizado la acción `codestar-notifications:NotificationsForResource` para admitir los cambios en la validación de las políticas de IAM. El recurso original `arn:aws:codedeploy:*` se ha actualizado a `arn:aws:codedeploy:*:*:application:*`. Para obtener más información sobre esta política, consulte [Permisos relacionados con notificaciones en otras políticas administradas](managed-policies.md#notifications-deployer).  |  16 de diciembre de 2024  | 
|  Política administrada de `AWSCodeDeployReadOnlyAccess`: actualización de la política existente  |  Se ha actualizado la acción `codestar-notifications:NotificationsForResource` para admitir los cambios en la validación de las políticas de IAM. El recurso original `arn:aws:codedeploy:*` se ha actualizado a `arn:aws:codedeploy:*:*:application:*`. Para obtener más información sobre esta política, consulte [Permisos relacionados con notificaciones en políticas administradas de solo lectura](managed-policies.md#notifications-readonly).  |  16 de diciembre de 2024  | 
|  Política administrada de `AWSCodeDeployFullAccess`: actualización de la política existente  |  Se ha actualizado la acción `codestar-notifications:NotificationsForResource` para admitir los cambios en la validación de las políticas de IAM. El recurso original `arn:aws:codedeploy:*` se ha actualizado a `arn:aws:codedeploy:*:*:application:*`. Para obtener más información sobre esta política, consulte [Permisos relacionados con notificaciones en políticas administradas de acceso total](managed-policies.md#notifications-fullaccess).  |  16 de diciembre de 2024  | 
|  Política administrada de `AWSCodeDeployRole`: actualización de la política existente  |  Se agregaron las acciones `elasticloadbalancing:DescribeLoadBalancerAttributes` y `elasticloadbalancing:DescribeTargetGroupAttributes` a la declaración de política para respaldar los cambios de Elastic Load Balancing. Para obtener más información sobre esta política, consulte [AWSCodeDeployRole](managed-policies.md#ACD-policy).  |  16 de agosto de 2023  | 
|  Política administrada de `AWSCodeDeployFullAccess`: actualización de la política existente  |  Se agregó la acción `chatbot:ListMicrosoftTeamsChannelConfigurations` a la declaración de política para respaldar los cambios en las notificaciones. Para obtener más información sobre esta política, consulte [AWSCodeDeployRole](managed-policies.md#ACD-policy).  |  11 de mayo de 2023  | 
|  Política administrada de `AWSCodeDeployRole`: actualización de la política existente  |  Se agregó la acción ` autoscaling:CreateOrUpdateTags` a la declaración de política para admitir los cambios en la autorización de Amazon EC2 Auto Scaling. Para obtener más información sobre esta política, consulte [AWSCodeDeployRole](managed-policies.md#ACD-policy).  |  3 de febrero de 2023  | 
|  Política administrada de `AmazonEC2RoleforAWSCodeDeployLimited`: actualización de la política existente  |  Se eliminó la acción `s3:ListBucket` de la declaración de política que incluye la condición `s3:ExistingObjectTag/UseWithCodeDeploy`. Para obtener más información sobre esta política, consulte [AmazonEC2RoleforAWSCodeDeployLimited](managed-policies.md#EC2-policy).  |  22 de noviembre de 2021  | 
|  Política administrada de `AWSCodeDeployRole`: actualización de la política existente  |  Se agregó la acción `autoscaling:PutWarmPool` para admitir la [adición de grupos de calentamiento a los grupos de Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html#add-warm-pool-console/ec2/userguide/ec2-auto-scaling-warm-pools.html#add-warm-pool-console) para las implementaciones azul/verde. Se eliminaron las acciones duplicadas innecesarias.  |  18 de mayo de 2021  | 
|  CodeDeploy comenzó a rastrear los cambios  |  CodeDeploy comenzó a rastrear los cambios de sus políticas AWS gestionadas.  |  18 de mayo de 2021  | 

# AWS CodeDeploy ejemplos de políticas basadas en la identidad
<a name="security_iam_id-based-policy-examples"></a>

De forma predeterminada, los usuarios no tienen permiso para crear o modificar CodeDeploy recursos. Tampoco pueden realizar tareas con la AWS API Consola de administración de AWS AWS CLI, o. Un administrador de IAM debe crear políticas de IAM que concedan permisos a los roles de IAM para realizar operaciones en la API en los recursos específicos que necesiten. A continuación, debe asociar esos roles de IAM a los usuarios o grupos que necesiten esos permisos.

Para obtener más información acerca de cómo crear una política basada en identidad de IAM con estos documentos de políticas de JSON de ejemplo, consulte [Creación de políticas en la pestaña JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) en la *Guía del usuario de IAM*.

En CodeDeploy, las políticas basadas en la identidad se utilizan para administrar los permisos a los distintos recursos relacionados con el proceso de implementación. Puede controlar el acceso a los siguientes tipos de recurso:
+ Aplicaciones y revisiones de aplicación.
+ Implementaciones
+ Configuraciones de implementación.
+ Instancias e instancias en las instalaciones

Las capacidades controladas por políticas de recursos varían en función del tipo de recurso, tal y como se describe en la siguiente tabla:


****  

|  Tipos de recurso  |  Capacidades  | 
| --- | --- | 
|  Todos  |  Ver y enumerar detalles de recursos  | 
|  Aplicaciones Configuraciones de implementación Grupos de implementaciones  |  Creación de recursos de  Eliminación de recursos  | 
|  Implementaciones  |  Crear implementaciones Detener implementaciones  | 
|  Revisiones de aplicaciones  |  Registrar revisiones de aplicación  | 
|  Aplicaciones Grupos de implementaciones  |  Recursos actualizados  | 
|  Instancias en las instalaciones  |  Añadir etiquetas a instancias Eliminar etiquetas de instancias Registrar instancias Cancelar el registro de instancias  | 

El siguiente ejemplo muestra una política de permisos que permite a un usuario eliminar el grupo de implementaciones denominado **WordPress\$1DepGroup** asociado a la aplicación denominada **WordPress\$1App** en la región **us-west-2**.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:DeleteDeploymentGroup"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:deploymentgroup:WordPress_App/WordPress_DepGroup"
      ]
    }
  ]
}
```

------

**Topics**
+ [Ejemplos de políticas administradas por los clientes](#customer-managed-policies)
+ [Prácticas recomendadas sobre las políticas](#security_iam_service-with-iam-policy-best-practices)
+ [Uso de la consola CodeDeploy](#security_iam_id-based-policy-examples-console)
+ [Cómo permitir a los usuarios consultar sus propios permisos](#security_iam_id-based-policy-examples-view-own-permissions)

## Ejemplos de políticas administradas por los clientes
<a name="customer-managed-policies"></a>

En esta sección, encontrará ejemplos de políticas que otorgan permisos para diversas CodeDeploy acciones. Estas políticas funcionan cuando se utiliza la CodeDeploy API AWS SDKs, o la AWS CLI. Debe conceder permisos adicionales para las acciones que realice en la consola. Para obtener más información sobre cómo conceder permisos de consola, consulte [Uso de la consola CodeDeploy](#security_iam_id-based-policy-examples-console) .



**nota**  
Todos los ejemplos utilizan la región EE.UU. Oeste (Oregón) (`us-west-2`) y contienen una cuenta IDs ficticia.

 **Ejemplos**
+ [Ejemplo 1: Permitir el permiso para realizar CodeDeploy operaciones en una sola región](#identity-based-policies-example-1)
+ [Ejemplo 2: permitir a un usuario registrar revisiones para una única aplicación](#identity-based-policies-example-2)
+ [Ejemplo 3: permitir a un usuario crear implementaciones para un único grupo de implementación](#identity-based-policies-example-3)

### Ejemplo 1: Permitir el permiso para realizar CodeDeploy operaciones en una sola región
<a name="identity-based-policies-example-1"></a>

El siguiente ejemplo concede permisos para realizar CodeDeploy operaciones únicamente en la **us-west-2** región:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:*"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:*"
      ]
    }
  ]
}
```

------

### Ejemplo 2: permitir a un usuario registrar revisiones para una única aplicación
<a name="identity-based-policies-example-2"></a>

En el siguiente ejemplo se conceden permisos para registrar revisiones de aplicación para todas las aplicaciones que comienzan por **Test** en la región **us-west-2**:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:RegisterApplicationRevision"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:application:Test*"
      ]
    }
  ]
}
```

------

### Ejemplo 3: permitir a un usuario crear implementaciones para un único grupo de implementación
<a name="identity-based-policies-example-3"></a>

En el siguiente ejemplo se concede permiso para crear implementaciones para el grupo de implementación denominado **WordPress\$1DepGroup** asociado a la aplicación denominada **WordPress\$1App**, la configuración de implementación personalizada denominada **ThreeQuartersHealthy** y cualquier revisión de aplicación asociada a la aplicación denominada **WordPress\$1App**. Todos estos recursos se encuentran en la región **us-west-2**.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:CreateDeployment"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:deploymentgroup:WordPress_App/WordPress_DepGroup"
      ]
    },
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:GetDeploymentConfig"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:deploymentconfig:ThreeQuartersHealthy"
      ]
    },
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:GetApplicationRevision"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:application:WordPress_App"
      ]
    }
  ]
}
```

------

## Prácticas recomendadas sobre las políticas
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Las políticas basadas en la identidad determinan si alguien puede crear CodeDeploy recursos de tu cuenta, acceder a ellos o eliminarlos. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
+ **Comience con las políticas AWS administradas y avance hacia los permisos con privilegios mínimos: para empezar a conceder permisos** a sus usuarios y cargas de trabajo, utilice las *políticas AWS administradas* que otorgan permisos para muchos casos de uso comunes. Están disponibles en su. Cuenta de AWS Le recomendamos que reduzca aún más los permisos definiendo políticas administradas por el AWS cliente que sean específicas para sus casos de uso. Con el fin de obtener más información, consulte las [políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o las [políticas administradas por AWS para funciones de tarea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía de usuario de IAM*.
+ **Aplique permisos de privilegio mínimo**: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como *permisos de privilegios mínimos*. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.
+ **Utilice condiciones en las políticas de IAM para restringir aún más el acceso**: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puedes usar condiciones para conceder el acceso a las acciones del servicio si se utilizan a través de una acción específica Servicio de AWS, por ejemplo CloudFormation. Para obtener más información, consulte [Elementos de la política de JSON de IAM: Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en la *Guía del usuario de IAM*.
+ **Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos**: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte [Validación de políticas con el Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) en la *Guía del usuario de IAM*.
+ **Requerir autenticación multifactor (MFA**): si tiene un escenario que requiere usuarios de IAM o un usuario raíz en Cuenta de AWS su cuenta, active la MFA para mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte [Acceso seguro a la API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las prácticas recomendadas de IAM, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

## Uso de la consola CodeDeploy
<a name="security_iam_id-based-policy-examples-console"></a>

Si utilizas la CodeDeploy consola, debes tener un conjunto mínimo de permisos que te permita describir otros AWS recursos de tu AWS cuenta. Para CodeDeploy utilizarlos en la CodeDeploy consola, debe tener permisos de los siguientes servicios:
+ Amazon EC2 Auto Scaling
+ AWS CodeDeploy
+ Amazon Elastic Compute Cloud
+ Elastic Load Balancing
+ AWS Identity and Access Management
+ Amazon Simple Storage Service
+ Amazon Simple Notification Service
+ Amazon CloudWatch

Si crea una política de IAM que sea más restrictiva que el mínimo de permisos necesarios, la consola no funcionará del modo esperado para los usuarios con ese rol para esa política de IAM. Para garantizar que esos usuarios puedan seguir utilizando la CodeDeploy consola, adjunte también la política `AWSCodeDeployReadOnlyAccess` gestionada a la función asignada al usuario, tal y como se describe en[AWS políticas administradas (predefinidas) para CodeDeploy](managed-policies.md).

No es necesario que concedas permisos mínimos de consola a los usuarios que solo realizan llamadas a la API AWS CLI o a la CodeDeploy API.

## Cómo permitir a los usuarios consultar sus propios permisos
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

En este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver las políticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluye permisos para completar esta acción en la consola o mediante programación mediante la API AWS CLI o AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Solución de problemas de AWS CodeDeploy identidad y acceso
<a name="security_iam_troubleshoot"></a>

Utilice la siguiente información como ayuda para diagnosticar y solucionar los problemas habituales que pueden surgir al trabajar con un CodeDeploy IAM.

**Topics**
+ [No estoy autorizado a realizar el iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Quiero permitir que personas ajenas a mi AWS cuenta accedan a mis CodeDeploy recursos](#security_iam_troubleshoot-cross-account-access)

## No estoy autorizado a realizar el iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si recibe un error que indica que no tiene autorización para realizar la acción `iam:PassRole`, las políticas deben actualizarse a fin de permitirle pasar un rol a CodeDeploy.

Algunas Servicios de AWS permiten transferir una función existente a ese servicio en lugar de crear una nueva función de servicio o una función vinculada a un servicio. Para ello, debe tener permisos para transferir la función al servicio.

En el siguiente ejemplo, el error se produce cuando un usuario de IAM denominado `marymajor` intenta utilizar la consola para realizar una acción en CodeDeploy. Sin embargo, la acción requiere que el servicio cuente con permisos que otorguen un rol de servicio. Mary no tiene permisos para transferir el rol al servicio.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

En este caso, las políticas de Mary se deben actualizar para permitirle realizar la acción `iam:PassRole`.

Si necesita ayuda, póngase en contacto con su AWS administrador. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

## Quiero permitir que personas ajenas a mi AWS cuenta accedan a mis CodeDeploy recursos
<a name="security_iam_troubleshoot-cross-account-access"></a>

Se puede crear un rol que los usuarios de otras cuentas o las personas externas a la organización puedan utilizar para acceder a sus recursos. Se puede especificar una persona de confianza para que asuma el rol. En el caso de los servicios que admiten políticas basadas en recursos o listas de control de acceso (ACLs), puedes usar esas políticas para permitir que las personas accedan a tus recursos.

Para obtener más información, consulte lo siguiente:
+ Para saber si CodeDeploy es compatible con estas funciones, consulte. [¿Cómo AWS CodeDeploy funciona con IAM](security_iam_service-with-iam.md)
+ Para obtener información sobre cómo proporcionar acceso a los recursos de su Cuentas de AWS propiedad, consulte [Proporcionar acceso a un usuario de IAM en otro usuario de su propiedad Cuenta de AWS en](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) la Guía del *usuario de IAM*.
+ Para obtener información sobre cómo proporcionar acceso a tus recursos a terceros Cuentas de AWS, consulta Cómo [proporcionar acceso a recursos que Cuentas de AWS son propiedad de terceros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) en la Guía del usuario de *IAM*.
+ Para obtener información sobre cómo proporcionar acceso mediante una federación de identidades, consulte [Proporcionar acceso a usuarios autenticados externamente (identidad federada)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) en la *Guía del usuario de IAM*.
+ Para conocer sobre la diferencia entre las políticas basadas en roles y en recursos para el acceso entre cuentas, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

# CodeDeploy referencia de permisos
<a name="auth-and-access-control-permissions-reference"></a>

Utilice la siguiente tabla a la hora de configurar el acceso y escribir políticas de permisos que pueda asociar a una identidad de IAM (políticas basadas en identidad). En la tabla se muestra cada operación de la CodeDeploy API, las acciones para las que puede conceder permisos para realizar la acción y el formato del ARN del recurso que se debe utilizar para conceder los permisos. Las acciones se especifican en el campo `Action` de la política. Debe especificar un ARN, con o sin un carácter comodín (\$1), como el valor del recurso en el campo `Resource` de la política.

Puede utilizar claves AWS de condición generales en sus CodeDeploy políticas para expresar las condiciones. Para obtener una lista completa de las claves AWS anchas, consulta las [claves disponibles](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) en la Guía del usuario de *IAM*.

Para especificar una acción, use el prefijo `codedeploy:` seguido del nombre de operación de API (por ejemplo, `codedeploy:GetApplication` y `codedeploy:CreateApplication`). Para especificar varias acciones en una única instrucción, sepárelas con comas (por ejemplo, `"Action": ["codedeploy:action1", "codedeploy:action2"]`).

**Uso de caracteres comodín**

Utilice el carácter de comodín (\$1) en el ARN para especificar varias acciones o recursos. Por ejemplo, `codedeploy:*` especifica todas CodeDeploy las acciones y `codedeploy:Get*` especifica todas CodeDeploy las acciones que comienzan por la palabra. `Get` En el siguiente ejemplo se concede acceso a todos los grupos de implementaciones con nombres que comienzan por `West` y que se asocian a aplicaciones con nombres comienzan con `Test`. 

```
arn:aws:codedeploy:us-west-2:444455556666:deploymentgroup:Test*/West*
```

Utilice comodines con los recursos que se muestran en la tabla a continuación:
+ *application-name*
+ *deployment-group-name*
+ *deployment-configuration-name*
+ *instance-ID*

Los caracteres comodín no se pueden usar con *region* o*account-id*. Para obtener más información acerca de los comodines, consulte [identificadores de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) en la *Guía del usuario de IAM*. 

**nota**  
 En el ARN de cada acción, dos puntos (:) siguen al recurso. También puede seguir al recurso una barra diagonal (/). Para obtener más información, consulte el [CodeDeployejemplo ARNs](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-codedeploy). 

Utilice las barras de desplazamiento para ver el resto de la tabla.


**CodeDeploy Operaciones de la API y permisos necesarios para las acciones**  

| CodeDeploy Operaciones de API | Permisos necesarios (acciones de API) | Recursos | 
| --- | --- | --- | 
|  [AddTagsToOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_AddTagsToOnPremisesInstances.html)  |  `codedeploy:AddTagsToOnPremisesInstances` Obligatorio para añadir etiquetas a una o más instancias on-premises.  |  arn:aws:codedeploy: :instance/ *region* *account-id* *instance-ID*  | 
|  [BatchGetApplicationRevisions](https://docs.aws.amazon.com/codedeploy/latest/APIReference/BatchGetApplicationRevisions.html)  |  `codedeploy:BatchGetApplicationRevisions` Obligatorio para obtener información acerca de varias revisiones de aplicación asociadas al usuario de .  |  arn:aws:codedeploy: *region* *account-id* :aplicación: *application-name*  | 
|  [BatchGetApplications](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetApplications.html)  |  `codedeploy:BatchGetApplications` Obligatorio para obtener información acerca de varias aplicaciones asociadas al usuario de .  |  arn:aws:codedeploy: *region* ::application: \$1 *account-id*  | 
| [BatchGetDeploymentGroups](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeploymentGroups.html) |  `codedeploy:BatchGetDeploymentGroups` Obligatorio para obtener información acerca de varios grupos de implementaciones asociados al usuario de .  |  arn:aws:codedeploy: *region* ::deploymentgroup*account-id*:/*application-name**deployment-group-name*  | 
| [BatchGetDeploymentInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeploymentInstances.html) | codedeploy:BatchGetDeploymentInstancesObligatorio para obtener información acerca de una o varias instancias en un grupo de implementación. |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [BatchGetDeployments](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeployments.html)  |  `codedeploy:BatchGetDeployments` Obligatorio para obtener información acerca de varias implementaciones asociadas al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [BatchGetOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetOnPremisesInstances.html)  |  `codedeploy:BatchGetOnPremisesInstances` Obligatorio para obtener información acerca de una o más instancias on-premises.  |  arn:aws:codedeploy*region*::: \$1 *account-id*  | 
|  [ContinueDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ContinueDeployment.html)  |  `codedeploy:ContinueDeployment` Se requiere durante una blue/green implementación para iniciar el proceso de registro de instancias en un entorno de reemplazo con un balanceador de cargas de Elastic Load Balancing.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [CreateApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateApplication.html)  |  `codedeploy:CreateApplication` Obligatorio para crear una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* ::application: *account-id* *application-name*  | 
|  [CreateDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)¹  |  `codedeploy:CreateDeployment` Obligatorio para crear una implementación para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [CreateDeploymentConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentConfig.html)  |  `codedeploy:CreateDeploymentConfig` Obligatorio para crear una configuración de implementación personalizada asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* :deploymentconfig: *deployment-configuration-name*   | 
|  [CreateDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html)  |  `codedeploy:CreateDeploymentGroup` Obligatorio para crear un grupo de implementaciones de una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [DeleteApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteApplication.html)  |  `codedeploy:DeleteApplication` Obligatorio para eliminar una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* ::application: *account-id* *application-name*  | 
|  [DeleteDeploymentConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentConfig.html)  |  `codedeploy:DeleteDeploymentConfig` Obligatorio para eliminar una configuración de implementación personalizada asociada al usuario de .  |  arn:aws:codedeploy: *region* :deploymentconfig: *account-id* *deployment-configuration-name*   | 
|  [DeleteDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentGroup.html)  |  `codedeploy:DeleteDeploymentGroup` Obligatorio para eliminar un grupo de implementaciones de una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [DeregisterOnPremisesInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeregisterOnPremisesInstance.html)  |  `codedeploy:DeregisterOnPremisesInstance` Obligatorio para cancelar el registro de una instancia on-premises.  |  arn:aws:codedeploy: *region* ::instance/ *account-id* *instance-ID*  | 
|  [GetApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplication.html)  |  `codedeploy:GetApplication` Obligatorio para obtener información acerca de una única aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* :aplicación: *application-name*  | 
|  [GetApplicationRevision](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplicationRevision.html)  |  `codedeploy:GetApplicationRevision` Obligatorio para obtener información acerca de una única revisión de aplicación para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* :aplicación: *account-id* *application-name*  | 
|  [GetDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeployment.html)  |  `codedeploy:GetDeployment` Obligatorio para obtener información acerca de una única implementación de un grupo de implementaciones para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* ::deploymentgroup:/*account-id**application-name**deployment-group-name*  | 
|  [GetDeploymentConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentConfig.html)  |  `codedeploy:GetDeploymentConfig` Obligatorio para obtener información acerca de una única configuración de implementación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* :deploymentconfig: *deployment-configuration-name*   | 
|  [GetDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentGroup.html)  |  `codedeploy:GetDeploymentGroup` Obligatorio para obtener información acerca de un único grupo de implementaciones para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [GetDeploymentInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentInstance.html)  |  `codedeploy:GetDeploymentInstance` Obligatorio para obtener información acerca de una única instancia de una implementación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [GetDeploymentTarget](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentTarget.html)  |  `codedeploy:GetDeploymentTarget` Obligatorio para obtener información acerca de un destino de una implementación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [GetOnPremisesInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetOnPremisesInstance.html)  |  `codedeploy:GetOnPremisesInstance` Obligatorio para obtener información acerca de una única instancia on-premises.  |  arn:aws:codedeploy: *region* ::instance/ *account-id* *instance-ID*  | 
|  [ListApplicationRevisions](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplicationRevisions.html)  |  `codedeploy:ListApplicationRevisions` Obligatorio para obtener información acerca de todas las revisiones de aplicación para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* ::application: \$1 *account-id*  | 
|  [ListApplications](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplications.html)  |  `codedeploy:ListApplications` Obligatorio para obtener información acerca de todas las aplicaciones asociadas al usuario de .  |  arn:aws:codedeploy: *region* ::application*account-id*: \$1  | 
|  [ListDeploymentConfigs](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentConfigs.html)  |  `codedeploy:ListDeploymentConfigs` Obligatorio para obtener información acerca de todas las configuraciones de implementaciones asociadas al usuario de .  |  arn:aws:codedeploy: *region* :deploymentconfig*account-id*: \$1  | 
|  [ListDeploymentGroups](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentGroups.html)  |  `codedeploy:ListDeploymentGroups` Obligatorio para obtener información acerca de todos los grupos de implementaciones para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup: /\$1 *application-name*  | 
|  [ListDeploymentInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentInstances.html)  |  `codedeploy:ListDeploymentInstances` Necesario para obtener información sobre todas las instancias de una implementación asociada al usuario o a la cuenta. AWS   |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [ListDeployments](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeployments.html)  |  `codedeploy:ListDeployments` Obligatorio para obtener información acerca de todas las implementaciones de un grupo de implementación asociado al usuario, o para obtener todas las implementaciones asociadas al usuario.  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [ListDeploymentTargets](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentTargets.html)  |  `codedeploy:ListDeploymentTargets` Obligatorio para obtener información acerca de todos los destinos de una implementación asociada al usuario.  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [ListGitHubAccountTokenNames](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListGitHubAccountTokenNames.html)  |  `codedeploy:ListGitHubAccountTokenNames` Necesario para obtener una lista de los nombres de las conexiones almacenadas a las cuentas. GitHub   |  arn:aws:codedeploy::: \$1 *region* *account-id*  | 
|  [ListOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListOnPremisesInstances.html)  |  `codedeploy:ListOnPremisesInstances` Obligatorio para obtener una lista de uno o varios nombres de instancias on-premises.  |  arn:aws:codedeploy::: \$1 *region* *account-id*  | 
|  PutLifecycleEventHookExecutionStatus  |  `codedeploy:PutLifecycleEventHookExecutionStatus` Necesario para proporcionar una notificación del estado de la ejecución de un evento de enlace de ciclo de vida.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [RegisterApplicationRevision](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterApplicationRevision.html)  |  `codedeploy:RegisterApplicationRevision` Obligatorio para obtener información acerca de una revisión de aplicación para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* ::application: *account-id* *application-name*  | 
|  [RegisterOnPremisesInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterOnPremisesInstance.html)  |  `codedeploy:RegisterOnPremisesInstance` Obligatorio para registrar una instancia on-premises con CodeDeploy.  |  arn:aws:codedeploy: *region* ::instance/ *account-id* *instance-ID*  | 
|  [RemoveTagsFromOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RemoveTagsFromOnPremisesInstances.html)  |  `codedeploy:RemoveTagsFromOnPremisesInstances` Obligatorio para eliminar etiquetas desde una o más instancias on-premises.  |  arn:aws:codedeploy: *region* ::instance/ *account-id* *instance-ID*  | 
|  [SkipWaitTimeForInstanceTermination](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_SkipWaitTimeForInstanceTermination.html)  |  `codedeploy:SkipWaitTimeForInstanceTermination` Se requiere en una blue/green implementación para anular un tiempo de espera específico y empezar a terminar las instancias en el entorno original de forma inmediata.  |  arn:aws:codedeploy: ::instance/ *region* *account-id* *instance-ID*  | 
|  [StopDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_StopDeployment.html)  |  `codedeploy:StopDeployment` Necesario para detener una implementación en curso en un grupo de implementaciones para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: *region* *account-id* ::deploymentgroup:/*application-name**deployment-group-name*  | 
|  [UpdateApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateApplication.html)³  |  `codedeploy:UpdateApplication` Obligatorio para cambiar información de una aplicación asociada al usuario de .  |  arn:aws:codedeploy: ::aplicación: *region* *account-id* *application-name*  | 
|  [UpdateDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateDeploymentGroup.html)³  |  `codedeploy:UpdateDeploymentGroup` Obligatorio para cambiar información de un único grupo de implementaciones para una aplicación asociada al usuario de .  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  ¹ Cuando especifique permisos `CreateDeployment`, también debe especificar permisos `GetDeploymentConfig` para la configuración de implementación y permisos `GetApplicationRevision` o `RegisterApplicationRevision` para la revisión de la aplicación. Además, si incluye el parámetro `overrideAlarmConfiguration` en su llamada a la API de `CreateDeployment`, debe especificar el permiso `UpdateDeploymentGroup`. ² Válido para `ListDeployments` si se proporciona un grupo de implementación específico, pero no al mostrar todas las implementaciones asociadas al usuario. ³ Para `UpdateApplication`, debe tener permisos `UpdateApplication` para los nombres de aplicación antiguos y nuevos. Para las acciones de `UpdateDeploymentGroup` que implican cambiar el nombre de un grupo de implementación, debe tener permisos `UpdateDeploymentGroup` para los nombres de grupo de implementación antiguos y nuevos.   | 

# Prevención de la sustitución confusa entre servicios
<a name="security_confused_deputy"></a>

El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación de identidad entre servicios puede provocar el confuso problema de un diputado. La suplantación entre servicios puede producirse cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que le ayudan a proteger los datos de todos los servicios cuyos directores de servicio tengan acceso a los recursos de su cuenta. 

Recomendamos utilizar las claves de contexto [aws: SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [aws: SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) global condition en las políticas de recursos para limitar los permisos que se CodeDeploy otorgan a otro servicio al recurso. Si utiliza claves de contexto de condición global y el valor de `aws:SourceArn` contiene el ID de cuenta, el valor de `aws:SourceAccount` y la cuenta en el valor de `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utiliza en la misma instrucción de política. Utiliza `aws:SourceArn` si desea que solo se asocie un recurso al acceso entre servicios. Utilice `aws:SourceAccount` si quiere que cualquier recurso de esa cuenta se asocie al uso entre servicios.

Para las implementaciones de EC2/on-premise AWS , Lambda y Amazon ECS normales, el valor de debe `aws:SourceArn` incluir el ARN del CodeDeploy grupo de implementaciones con el que CodeDeploy se le permite asumir la función de IAM.

En el caso de las [implementaciones azul/verde de Amazon ECS creadas mediante CloudFormation](deployments-create-ecs-cfn.md), el valor de `aws:SourceArn` debe incluir el CloudFormation ARN de pila con el que CodeDeploy se le permite asumir la función de IAM.

La forma más eficaz de protegerse contra el problema del suplente confuso es utilizar la clave de `aws:SourceArn` con el ARN completo del recurso. Si no conoce el ARN completo o si está especificando varios recursos, utilice los caracteres comodín (\$1) para las partes desconocidas.

Por ejemplo, puede usar la siguiente política de confianza con una implementación de EC2/on-premise AWS , Lambda o Amazon ECS normal:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "codedeploy.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:codedeploy:us-east-1:111122223333:deploymentgroup:myApplication/*"
                }
            }
        }
    ]
}
```

------

Para una [implementación azul/verde de Amazon ECS creada mediante CloudFormation](deployments-create-ecs-cfn.md), puede usar:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "codedeploy.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudformation:us-east-1:111122223333:stack/MyCloudFormationStackName/*"
                }
            }
        }
    ]
}
```

------