

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.

# Seguridad en  AWS CodeCommit
<a name="security"></a>

La seguridad en la nube de AWS es la mayor prioridad. Como cliente de AWS, se beneficiará de una arquitectura de red y un centro de datos que están diseñados para satisfacer los requisitos de seguridad de las organizaciones más exigentes.

La seguridad es una responsabilidad compartida entre AWS y usted. El [modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/) la describe como seguridad *de* la nube y seguridad *en* la nube:
+ **Seguridad de la nube**: AWS es responsable de proteger la infraestructura que ejecuta los servicios de AWS en la nube de AWS. AWS también proporciona servicios que puede utilizar de forma segura. Los auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad como parte de los [AWSProgramas de conformidad de ](https://aws.amazon.com/compliance/programs/). Para obtener información sobre los programas de conformidad que se aplican a AWS CodeCommit, consulte [Servicios de AWS en el ámbito del programa de conformidad](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Seguridad en la nube**: su responsabilidad se determina según el servicio de AWSque utilice. También eres responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de la empresa y la legislación y la normativa aplicables. 

Esta documentación le ayuda a comprender cómo aplicar el modelo de responsabilidad compartida cuando se utiliza CodeCommit. En los siguientes temas, se le mostrará cómo configurar CodeCommit para satisfacer sus objetivos de seguridad y conformidad. También puede aprender a utilizar otros servicios de AWS que lo ayuden a monitorear y proteger los recursos de CodeCommit. 

**Topics**
+ [Protección de los datos en AWS CodeCommit](data-protection.md)
+ [Identity and Access Management para AWS CodeCommit](security-iam.md)
+ [Resiliencia en AWS CodeCommit](disaster-recovery-resiliency.md)
+ [Seguridad de la infraestructura en () AWS CodeCommit](infrastructure-security.md)

# Protección de los datos en AWS CodeCommit
<a name="data-protection"></a>

Como se trata de un servicio administrado, está protegido por la seguridad de red global de AWS. Para obtener información sobre los servicios de seguridad de AWS y cómo AWSprotege la infraestructura, consulte [Seguridad en la nube de AWS](https://aws.amazon.com/security/). Para diseñar su entorno de AWS con las prácticas recomendadas de seguridad de infraestructura, consulte [Protección de la infraestructura](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) en *Portal de seguridad de AWS Well‐Architected Framework*.

Puede utilizar llamadas a la API publicadas en AWS para acceder a través de la red. Los clientes deben admitir lo siguiente:
+ Seguridad de la capa de transporte (TLS). Exigimos TLS 1.2 y recomendamos TLS 1.3.
+ Conjuntos de cifrado con confidencialidad directa total (PFS) como DHE (Ephemeral Diffie-Hellman) o ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). La mayoría de los sistemas modernos como Java 7 y posteriores son compatibles con estos modos.

Los repositorios de CodeCommit se cifran automáticamente en reposo. No se requiere ninguna acción por parte del cliente. CodeCommit también cifra los datos en tránsito del repositorio. Puede usar el protocolo HTTPS, el protocolo SSH o ambos con los repositorios de CodeCommit. Para obtener más información, consulte [Configuración de AWS CodeCommit](setting-up.md). También puede configurar el [acceso entre cuentas](cross-account.md) a los repositorios de CodeCommit.

**Topics**
+ [AWS Key Management Service y cifrado para AWS CodeCommit repositorios](encryption.md)
+ [Conexión a AWS CodeCommit repositorios con credenciales rotativas](temporary-access.md)

# AWS Key Management Service y cifrado para AWS CodeCommit repositorios
<a name="encryption"></a>

Los datos de los CodeCommit repositorios se cifran en tránsito y en reposo. Cuando los datos se introducen en un CodeCommit repositorio (por ejemplo, mediante una llamada**git push**), CodeCommit cifra los datos recibidos tal como se almacenan en el repositorio. Cuando se extraen datos de un CodeCommit repositorio (por ejemplo, mediante una llamada**git pull**), CodeCommit los descifra y, a continuación, los envía a la persona que llama. Esto supone que el usuario de IAM asociado a la solicitud de inserción o extracción ha sido autenticado por. AWS Los datos enviados o recibidos se transmiten mediante los protocolos de red cifrada HTTPS o SSH.

Puede utilizar una clave gestionada por el cliente Clave administrada de AWS o una clave gestionada por el cliente para cifrar y descifrar los datos de su repositorio. Para obtener más información sobre las diferencias entre las claves administradas por el cliente y Claves administradas por AWS, consulte [Claves administradas por el cliente y Claves administradas por AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt). Si no especificas una clave gestionada por el cliente, CodeCommit utilizará una Clave administrada de AWS para cifrar y descifrar los datos de tu repositorio. Este Clave administrada de AWS se crea automáticamente para usted en su Cuenta de AWS. La primera vez que crees un CodeCommit repositorio en una nueva Región de AWS cuenta de Amazon Web Services, si no especificas una clave gestionada por el cliente, CodeCommit crea una Clave administrada de AWS (la `aws/codecommit` clave) en esa misma cuenta Región de AWS en AWS Key Management Service (AWS KMS). Esta `aws/codecommit` clave solo la utilizan CodeCommit. Se almacena en su cuenta de Amazon Web Services. Según lo que especifique, utilizará CodeCommit la clave gestionada por el cliente o la Clave administrada de AWS para cifrar y descifrar los datos del repositorio. 

**importante**  
 CodeCommit realiza las siguientes AWS KMS acciones con la AWS KMS clave utilizada para cifrar y descifrar los datos de un repositorio. Si utilizas una Clave administrada de AWS, el usuario no necesita permisos explícitos para realizar estas acciones, pero no debe tener ninguna política adjunta que deniegue estas acciones para la `aws/codecommit` clave. Si utilizas una clave gestionada por el cliente que tiene un Cuenta de AWS identificador establecido como principal de política para esa clave, estos permisos deben estar configurados de forma explícita en`allow`. En concreto, cuando crees tu primer repositorio y si actualizas las claves de tu repositorio, no debes tener ninguno de los siguientes permisos establecidos `deny` si utilizas una Clave administrada de AWS, y debes configurarlos `allow` si utilizas una clave gestionada por el cliente con un principio de política:  
`"kms:Encrypt"`
`"kms:Decrypt"`
`"kms:ReEncrypt"` (según el contexto, esto podría requerir `kms:ReEncryptFrom`,   
`kms:ReEncryptTo`, o `kms:ReEncrypt*` no configurado en denegación)
`"kms:GenerateDataKey"`
`"kms:GenerateDataKeyWithoutPlaintext"`
`"kms:DescribeKey"`

Si desea utilizar su propia clave gestionada por el cliente, la clave debe estar disponible en el Región de AWS lugar donde se encuentra el repositorio. CodeCommit admite el uso de claves administradas por clientes de una o varias regiones. Si bien se admiten todos los tipos de origen de materiales clave, recomendamos utilizar la opción **KMS** predeterminada. Los clientes que utilizan la opción de **Almacén de claves externo** pueden sufrir retrasos por parte del proveedor de la tienda. Además. CodeCommit tiene los siguientes requisitos para las claves gestionadas por el cliente:
+ CodeCommit solo admite el uso de claves simétricas.
+ El tipo de uso de la clave debe estar establecido en **Cifrar y descifrar**.

Para obtener más información sobre la creación de claves administradas por el cliente, consulte [Conceptos](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt) y [Creación de claves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html).

Para ver información sobre lo Clave administrada de AWS generado por CodeCommit, haga lo siguiente:

1. Inicie sesión en la consola AWS Key Management Service (AWS KMS) Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/kms.](https://console.aws.amazon.com/kms)

1. Para cambiarla Región de AWS, usa el selector de regiones en la esquina superior derecha de la página.

1. En el panel de navegación de servicio, seleccione **Claves administradas por AWS**. Asegúrese de haber iniciado sesión en el Región de AWS lugar donde desea revisar las claves. 

1. En la lista de claves de cifrado, elija la Clave administrada de AWS con el alias **aws/codecommit**. Se muestra información básica sobre el Clave propiedad de AWS .

No puede cambiarlo ni eliminarlo Clave administrada de AWS. 

## Cómo se utilizan los algoritmos de cifrado para cifrar los datos del repositorio
<a name="encryption-algorithms"></a>

CodeCommit utiliza dos enfoques diferentes para cifrar los datos. Los objetos de Git individuales de menos de 6 MB se cifran utilizando AES-GCM-256, que proporciona validación de integridad de los datos. Los objetos de entre 6 MB y un máximo de 2 GB para un único blob se cifran mediante AES-CBC-256. CodeCommit siempre valida el contexto de cifrado.

## Contexto de cifrado
<a name="encryption-context"></a>

Cada servicio integrado AWS KMS especifica un contexto de cifrado para las operaciones de cifrado y descifrado. El contexto de cifrado consta de información autenticada adicional que usa AWS KMS para comprobar la integridad de los datos. Si se ha especificado para la operación de cifrado, también debe especificarse en la operación de descifrado. De lo contrario, se produce un error en el descifrado. CodeCommit utiliza el identificador del CodeCommit repositorio para el contexto de cifrado. Puede usar el **get-repository** comando o la CodeCommit consola para buscar el ID del repositorio. Busque el ID del CodeCommit repositorio en AWS CloudTrail los registros para saber qué operaciones de cifrado se realizaron y qué clave se AWS KMS utilizó para cifrar o descifrar los datos del CodeCommit repositorio.

Para obtener más información al respecto AWS KMS, consulte la Guía para [AWS Key Management Service desarrolladores](https://docs.aws.amazon.com/kms/latest/developerguide/).

# Conexión a AWS CodeCommit repositorios con credenciales rotativas
<a name="temporary-access"></a>

Puede conceder a los usuarios acceso a sus AWS CodeCommit repositorios sin necesidad de configurar los usuarios de IAM para ellos ni utilizar una clave de acceso y una clave secreta. Para asignar permisos a identidades federadas, debe crear un rol y definir permisos para este. Cuando se autentica una identidad federada, se asocia la identidad al rol y se le conceden los permisos define el rol. Para obtener información acerca de roles de federación, consulte [Crear un rol para un proveedor de identidad de terceros (federación)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) en la *Guía de usuario de IAM*. Si utiliza el IAM Identity Center, debe configurar un conjunto de permisos. IAM Identity Center correlaciona el conjunto de permisos con un rol en IAM para controlar a qué pueden acceder las identidades después de autenticarse. Para obtener información acerca de los conjuntos de permisos, consulta [Conjuntos de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) en la *Guía del usuario de AWS IAM Identity Center *. *También puede configurar el acceso basado en roles para que los usuarios de IAM accedan a los CodeCommit repositorios en cuentas independientes de Amazon Web Services (una técnica conocida como acceso entre cuentas).* Para obtener un tutorial de configuración del acceso entre cuentas en un repositorio, consulte [Configura el acceso multicuenta a un repositorio mediante roles AWS CodeCommit](cross-account.md). 

También puede configurar el acceso para los usuarios que desean o deben autenticarse a través de métodos como:
+ Lenguaje de marcado para confirmaciones de seguridad (SAML)
+ Autenticación multifactor (MFA)
+ Federación
+ Login with Amazon
+ Amazon Cognito
+ Facebook
+ Google
+ Proveedor de identidad compatible con OpenID Connect (OIDC)

**nota**  
La siguiente información se aplica únicamente al uso **git-remote-codecommit** o al asistente de AWS CLI credenciales para conectarse a los repositorios. CodeCommit Dado que el enfoque recomendado para el acceso temporal o federado CodeCommit es la configuración**git-remote-codecommit**, en este tema se proporcionan ejemplos del uso de esa utilidad. Para obtener más información, consulte [Pasos de configuración para las conexiones HTTPS a AWS CodeCommit con git-remote-codecommit](setting-up-git-remote-codecommit.md).   
No puedes usar credenciales SSH o Git ni HTTPS para conectarte a CodeCommit repositorios con credenciales de acceso rotativas o temporales. 

No es necesario que realice estos pasos si se cumplen todos los requisitos siguientes:
+ Ha iniciado sesión en una instancia de Amazon EC2.
+ Está utilizando Git y HTTPS con el asistente de AWS CLI credenciales para conectarse desde la instancia de Amazon EC2 a los repositorios. CodeCommit 
+ La instancia de EC2 tiene asociado un perfil de instancia de IAM que contiene los permisos de acceso definidos en [Para conexiones HTTPS en Linux, macOS o Unix con el asistente de AWS CLI credenciales](setting-up-https-unixes.md) o [Para las conexiones HTTPS en Windows con el ayudante de credenciales AWS CLI ](setting-up-https-windows.md).
+ Ha instalado y configurado la aplicación de ayudante de credenciales de Git en la instancia de EC2 tal como se describe en [Para conexiones HTTPS en Linux, macOS o Unix con el asistente de AWS CLI credenciales](setting-up-https-unixes.md) o [Para las conexiones HTTPS en Windows con el ayudante de credenciales AWS CLI ](setting-up-https-windows.md).

Las instancias Amazon EC2 que cumplen los requisitos anteriores ya están configuradas para comunicarle las credenciales de acceso temporal CodeCommit en su nombre.

**nota**  
Puede configurar y utilizar **git-remote-codecommit** en instancias de EC2.

Para conceder a los usuarios acceso temporal a sus CodeCommit repositorios, siga estos pasos.



## Paso 1: completar los requisitos previos
<a name="temporary-access-prerequisites"></a>

Complete los pasos de configuración para proporcionar a un usuario acceso a sus CodeCommit repositorios mediante credenciales rotativas: 
+ Para obtener más información sobre el acceso entre cuentas, consulte [Tutorial: Delegación del acceso entre cuentas de Amazon Web Services mediante roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-walkthrough-crossacct.html) y [Configura el acceso multicuenta a un repositorio mediante roles AWS CodeCommit](cross-account.md).
+ Para conocer el SAML y la federación, consulta Cómo [usar el sistema de autenticación de tu organización para conceder acceso a AWS los recursos](https://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#IdentityBrokerApplication) y [Acerca de la federación basada en AWS STS SAML 2.0.](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html)
+ Para obtener más información sobre MFA, consulte [Uso de dispositivos con autenticación multifactor (MFA) con AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html) y [Creación de credenciales de seguridad temporales para permitir el acceso a los usuarios de IAM](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html).
+ [Para iniciar sesión con Amazon, Amazon Cognito, Facebook, Google o cualquier proveedor de identidad compatible con OIDC, consulte Acerca de Web Identity Federation. AWS STS](https://docs.aws.amazon.com/STS/latest/UsingSTS/web-identity-federation.html)

Utilice la información [Autenticación y control de acceso para AWS CodeCommit](auth-and-access-control.md) para especificar los CodeCommit permisos que quiere conceder al usuario.

## Paso 2: Obtener el nombre de rol o las credenciales de acceso
<a name="temporary-access-get-credentials"></a>

Si desea que los usuarios accedan a los repositorios asumiendo un rol, proporcione a los usuarios el nombre de recurso de Amazon (ARN) de ese rol. De lo contrario, dependiendo de la forma en que configure el acceso, el usuario puede obtener credenciales rotativas de una de las siguientes maneras:
+ Para acceder a varias cuentas, ejecuta el comando AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) o llama a la API. AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
+ [En el caso de SAML, llama al AWS CLI[assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html)comando o a la API de SAML. AWS STS AssumeRoleWith](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)
+ Para la federación, llama a AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) o [get-federation-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html)comandos o a o. AWS STS [AssumeRole[GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) APIs
+ Para MFA, llame al AWS CLI [get-session-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html)comando o a la API. AWS STS [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html)
+ Para Login with Amazon, Amazon Cognito, Facebook, Google o cualquier proveedor de identidad compatible con OIDC, llama al comando AWS CLI [assume-role-with-web-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) o a la API. AWS STS [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)



## Paso 3: Instale y configure la git-remote-codecommit AWS CLI
<a name="temporary-access-configure-credentials"></a>

Debe configurar el equipo local para que utilice las credenciales de acceso instalando [https://pypi.org/project/git-remote-codecommit/](https://pypi.org/project/git-remote-codecommit/) y configurando un perfil en la AWS CLI.

1. Siga las instrucciones que se detallan en [Configuración ](setting-up.md) para configurar la AWS CLI. Utilice el comando **aws configure** para configurar uno o varios perfiles. Considere la posibilidad de crear un perfil con nombre para usarlo cuando se conecte a CodeCommit los repositorios mediante credenciales rotativas.

1. Puede asociar las credenciales al perfil AWS CLI nombrado del usuario de una de las siguientes maneras. 
   + Si está asumiendo un rol al que acceder CodeCommit, configure un perfil con nombre con la información necesaria para asumir ese rol. Por ejemplo, si desea asumir una función nombrada *CodeCommitAccess* en la cuenta de Amazon Web Services 1111, puede configurar un perfil predeterminado para usarlo cuando trabaje con otros AWS recursos y un perfil con nombre para usarlo cuando asuma esa función. Los siguientes comandos crean un nombre de perfil con nombre asignado *CodeAccess* que asume un rol denominado*CodeCommitAccess*. El nombre de usuario *Maria\$1Garcia* está asociado a la sesión y el perfil predeterminado se establece como la fuente de sus AWS credenciales:

     ```
     aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess
     aws configure set source_profile default --profile CodeAccess
     aws configure set role_session_name "Maria_Garcia" --profile CodeAccess
     ```

     Si desea verificar los cambios, consulte o edite manualmente el archivo `~/.aws/config` (para Linux) o el archivo `%UserProfile%.aws\config` (para Windows) y revise la información bajo el perfil con nombre. Por ejemplo, el archivo podría tener un aspecto similar al siguiente:

     ```
     [default]
     region = us-east-1
     output = json
     
     [profile CodeAccess]
     source_profile = default
     role_session_name = Maria_Garcia
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     ```

      Después de configurar el perfil con nombre, puede clonar repositorios de CodeCommit con la utilidad **git-remote-codecommit** utilizando el perfil con nombre. Por ejemplo, para clonar un repositorio denominado *MyDemoRepo*: 

     ```
     git clone codecommit://CodeAccess@MyDemoRepo
     ```
   + Si utiliza la federación de identidades web y OpenID Connect (OIDC), configure un perfil con nombre que haga la llamada a la `AssumeRoleWithWebIdentity` API AWS Security Token Service (AWS STS) en su nombre para actualizar las credenciales temporales. Utilice el **aws configure set** comando o edite manualmente el `~/.aws/credentials` archivo (para Linux) o el `%UserProfile%.aws\credentials` archivo (para Windows) para añadir un perfil con AWS CLI nombre y los valores de configuración necesarios. Por ejemplo, para crear un perfil que asuma la *CodeCommitAccess* función y utilice un archivo de token de identidad web \$1/: *my-credentials* */my-token-file*

     ```
     [CodeCommitWebIdentity]
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     web_identity_token_file=~/my-credentials/my-token-file
     role_session_name = Maria_Garcia
     ```

   Para obtener más información, consulte [Configuración de AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) y [Uso de un rol de IAM en la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) en la *Guía del usuario de AWS Command Line Interface *.

## Paso 4: Acceder a los repositorios CodeCommit
<a name="temporary-access-use-credentials"></a>

Suponiendo que el usuario haya seguido las instrucciones para conectarse [Conectarse a un repositorio](how-to-connect.md) a CodeCommit los repositorios, utilizará la funcionalidad ampliada proporcionada por **git-remote-codecommit** Git para llamar **git clone** y **git pull** clonar, enviar y extraer datos de los CodeCommit repositorios a los que tiene acceso. **git push** Por ejemplo, para clonar un repositorio:

```
git clone codecommit://CodeAccess@MyDemoRepo
```

Los comandos commit, push y pull de Git usan la sintaxis normal de Git. 

Cuando el usuario usa AWS CLI y especifica el AWS CLI nombre del perfil asociado a las credenciales de acceso rotativas, se muestran los resultados relacionados con ese perfil.



# Identity and Access Management para AWS CodeCommit
<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. CodeCommit 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)
+ [Autenticación y control de acceso para AWS CodeCommit](auth-and-access-control.md)
+ [¿Cómo AWS CodeCommit funciona con IAM](security_iam_service-with-iam.md)
+ [CodeCommit políticas basadas en recursos](#security_iam_service-with-iam-resource-based-policies)
+ [Autorización basada en etiquetas CodeCommit](#security_iam_service-with-iam-tags)
+ [CodeCommit Funciones de IAM](#security_iam_service-with-iam-roles)
+ [AWS CodeCommit ejemplos de políticas basadas en la identidad](#security_iam_id-based-policy-examples)
+ [Solución de problemas AWS CodeCommit de identidad y acceso](#security_iam_troubleshoot)

## 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 AWS CodeCommit de identidad y acceso](#security_iam_troubleshoot)).
+ **Administrador del servicio:** determine el acceso de los usuarios y envíe las solicitudes de permiso (consulte [¿Cómo AWS CodeCommit funciona con IAM](security_iam_service-with-iam.md)).
+ **Administrador de IAM**: escribe las políticas para administrar el acceso (consulte [AWS CodeCommit ejemplos de políticas basadas en la identidad](#security_iam_id-based-policy-examples)).

## 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 la lista completa de 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 de IAM
<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*.

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

Las políticas basadas en recursos son documentos de políticas JSON que se asocian a un recurso. Los ejemplos incluyen las *Políticas de confianza de roles* de IAM y las *Políticas de bucket* de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Debe [especificar una entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en una política basada en recursos.

Las políticas basadas en recursos son políticas insertadas que se encuentran en ese servicio. No puedes usar políticas AWS gestionadas de IAM en una política basada en recursos.

### Listas de control de acceso () ACLs
<a name="security_iam_access-manage-acl"></a>

Las listas de control de acceso (ACLs) controlan qué responsables (miembros de la cuenta, usuarios o roles) tienen permisos para acceder a un recurso. ACLs son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

Amazon S3 y Amazon VPC son ejemplos de servicios compatibles. AWS WAF ACLs Para obtener más información ACLs, consulte la [descripción general de la lista de control de acceso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) en la *Guía para desarrolladores de Amazon Simple Storage Service*.

### 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 otorgados por 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*.

# Autenticación y control de acceso para AWS CodeCommit
<a name="auth-and-access-control"></a>

El acceso AWS CodeCommit requiere credenciales. Esas credenciales deben tener permisos para acceder a AWS los recursos, como los CodeCommit repositorios, y a tu usuario de IAM, que utilizas para gestionar tus credenciales de Git o la clave pública de SSH que utilizas para realizar las conexiones de Git. En las siguientes secciones se proporciona información detallada sobre cómo puedes usar [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) y cómo ayudar CodeCommit a proteger el acceso a tus recursos:
+ [Autenticación](#authentication)
+ [Control de acceso](#access-control)

## Autenticación
<a name="authentication"></a>

Como CodeCommit los repositorios están basados en Git y admiten las funciones básicas de Git, incluidas las credenciales de Git, te recomendamos que utilices un usuario de IAM cuando trabajes con ellos. CodeCommit Puedes acceder CodeCommit con otros tipos de identidad, pero los demás tipos de identidad están sujetos a limitaciones, como se describe a continuación.

Tipos de identidades:
+ **Usuario de IAM**: un [usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) es simplemente una identidad en su Amazon Web Services que tiene permisos personalizados específicos. Por ejemplo, un usuario de IAM puede tener permisos para crear y gestionar las credenciales de Git para acceder a los CodeCommit repositorios. **Este es el tipo de usuario con el que se recomienda trabajar. CodeCommit** [Puede utilizar un nombre de usuario y una contraseña de IAM para iniciar sesión en AWS páginas web seguras [Consola de administración de AWS](https://console.aws.amazon.com/), como los [foros de AWS debate](https://forums.aws.amazon.com/) o el AWS Support Centro.](https://console.aws.amazon.com/support/home#/) 

  Puede generar credenciales de Git o asociar claves SSH públicas a su usuario de IAM o puede instalar y configurar **git-remote-codecommit**. Estas son las formas más sencillas de configurar Git para que funcione con tus CodeCommit repositorios. Con las [credenciales de Git](setting-up-gc.md), puede generar un nombre de usuario y contraseña estáticos en IAM. Seguidamente, puede utilizar estas credenciales para las conexiones HTTPS con Git y cualquier herramienta de terceros que admita la autenticación con nombre de usuario y contraseña de Git. Con las conexiones SSH, creas archivos de claves públicas y privadas en tu máquina local que Git CodeCommit usa para la autenticación SSH. Asocie la clave pública con el usuario de IAM y almacene la clave privada en el equipo local. **[git-remote-codecommit](setting-up-git-remote-codecommit.md)** amplía la funcionalidad de Git y no requiere la configuración de credenciales de Git para el usuario.

  Además, puede generar [claves de acceso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) para cada usuario. [Usa las claves de acceso cuando accedas a AWS los servicios mediante programación, ya sea a través [de una de ellas AWS SDKs o mediante la](https://aws.amazon.com/tools/) tecla ().AWS Command Line InterfaceAWS CLI](https://aws.amazon.com/cli/) El SDK y las herramientas de CLI usan claves de acceso para firmar criptográficamente las solicitudes. Si no usa las AWS herramientas, debe firmar las solicitudes usted mismo. CodeCommit es compatible con *la versión 4 de Signature*, un protocolo para autenticar las solicitudes de API entrantes. Para obtener más información acerca de la autenticación de solicitudes, consulte [Proceso de firma Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) en la *Referencia general de AWS*.
+ **Usuario raíz de la cuenta de Amazon Web Services**: al registrarse AWS, proporciona una dirección de correo electrónico y una contraseña asociadas a su cuenta de Amazon Web Services. Estas son las *credenciales raíz* y proporcionan acceso completo a todos los recursos de AWS . Algunas CodeCommit funciones no están disponibles para los usuarios de la cuenta raíz. Además, la única forma de usar Git con tu cuenta raíz es instalar y configurar **git-remote-codecommit** (recomendado) o configurar el asistente de AWS credenciales, que se incluye con la. AWS CLI No puede utilizar las credenciales de Git o pares de claves públicas y privadas SSH con su usuario de la cuenta raíz. Por estos motivos, no recomendamos utilizar el usuario de la cuenta raíz cuando interactúes con él. CodeCommit
**importante**  
Por motivos de seguridad, le recomendamos que utilice las credenciales raíz solo para crear un *usuario administrador*, que es un *usuario de IAM* con permiso total para administrar su cuenta de AWS . A continuación, puede utilizar este usuario administrador para crear otros usuarios y roles de IAM; con permisos limitados. Para obtener más información, consulte [Prácticas recomendadas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users) y [Creación de un grupo y usuario administrador](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) en la *Guía del usuario de IAM*.
+ **IAM Identity Center y los usuarios del IAM Identity Center**: AWS IAM Identity Center amplían las capacidades AWS Identity and Access Management para proporcionar un lugar central que reúna la administración de los usuarios y su acceso a Cuentas de AWS las aplicaciones en la nube. Si bien es una práctica recomendada para la mayoría de los usuarios que trabajan con AWS, IAM Identity Center actualmente no proporciona mecanismos para las credenciales de Git o los pares de claves SSH. Estos usuarios pueden instalarlos y configurarlos **git-remote-codecommit** para clonar CodeCommit repositorios de forma local, pero no todos los entornos de desarrollo integrados (IDEs) admiten la clonación, la inserción o la extracción. **git-remote-codecommit**

  Como práctica recomendada, exija a los usuarios humanos que utilicen la federación con un proveedor de identidades para acceder Servicios de AWS mediante credenciales temporales.

  Una *identidad federada* es un usuario del directorio empresarial, del proveedor de identidades web o al Directory Service que se accede Servicios de AWS mediante credenciales de una fuente de identidad. Las identidades federadas asumen roles que proporcionan credenciales temporales.

  Para una administración de acceso centralizada, se recomienda AWS IAM Identity Center. Para obtener más información, consulte [¿Qué es el Centro de identidades de IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) en la *Guía del usuario de AWS IAM Identity Center *.
+ **Rol de IAM**: al igual que un usuario de IAM, un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) es una identidad de IAM que puede crear en la cuenta para conceder permisos específicos. 

  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 API. AWS 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*.
**nota**  
 No puede utilizar las credenciales de Git o pares de claves públicas y privadas SSH con usuarios federados. Además, las preferencias del usuario no están disponibles para los usuarios federados. Para obtener información acerca de cómo configurar conexiones mediante el acceso federado, consulte [Pasos de configuración para las conexiones HTTPS a AWS CodeCommit con git-remote-codecommit](setting-up-git-remote-codecommit.md).

## Control de acceso
<a name="access-control"></a>

Puede tener credenciales válidas para autenticar sus solicitudes, pero a menos que tenga permisos, no podrá crear CodeCommit recursos ni acceder a ellos. Por ejemplo, debe disponer de permisos para ver repositorios, enviar código, crear y administrar credenciales de Git, etc.

En las siguientes secciones se describe cómo administrar los permisos para CodeCommit. Recomendamos que lea primero la información general.
+ [Descripción general de la administración de los permisos de acceso a sus CodeCommit recursos](#auth-and-access-control-iam-access-control-identity-based)
+ [Uso de políticas basadas en la identidad (políticas de IAM) para CodeCommit](auth-and-access-control-iam-identity-based-access-control.md)
+ [CodeCommit referencia de permisos](auth-and-access-control-permissions-reference.md)

## Descripción general de la administración de los permisos de acceso a sus CodeCommit recursos
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

Cada AWS recurso pertenece a una cuenta de Amazon Web Services. Los permisos de creación o acceso a un recurso se rigen por políticas de permisos. Un administrador de cuentas puede asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y funciones). Algunos servicios, por ejemplo AWS Lambda, también permiten adjuntar políticas de permisos a los recursos. 

**nota**  
Un *administrador de cuentas* (o usuario administrador) es un usuario que tiene privilegios de administrador. Para obtener más información, consulte [Prácticas recomendadas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

Al conceder permisos, usted decide quién obtiene los permisos, para qué recursos se obtienen permisos y qué acciones específicas desea permitir en esos recursos.

**Topics**
+ [CodeCommit recursos y operaciones](#arn-formats)
+ [Titularidad de los recursos](#understanding-resource-ownership)
+ [Administración del acceso a los recursos](#managing-access-resources)
+ [El alcance de los recursos en CodeCommit](#resource-scoping)
+ [Especificar elementos de políticas: recursos, acciones, efectos y entidades principales](#actions-effects-principals)
+ [Especificación de las condiciones de una política](#policy-conditions)

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

En CodeCommit, el recurso principal es un repositorio. Cada recurso tiene asociado un nombre de recurso de Amazon (ARN) único. En las políticas se emplean nombres de recurso de Amazon (ARN) para identificar los recursos a los que se aplican las políticas. Para obtener más información ARNs, consulte [Amazon Resource Names (ARN) y AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) en. *Referencia general de Amazon Web Services* CodeCommit actualmente no admite otros tipos de recursos, que se denominan subrecursos.

En la siguiente tabla se describe cómo especificar CodeCommit los recursos.


| Tipo de recurso | Formato de ARN | 
| --- | --- | 
| Repository |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  Todos los CodeCommit repositorios  |  arn:aws:codecommit:\$1  | 
|  Todos los CodeCommit repositorios pertenecen a la cuenta especificada en la especificada Región de AWS  |  arn:aws:codecommit::: \$1 *region* *account-id*  | 

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

Por ejemplo, puede indicar un repositorio específico (*MyDemoRepo*) en la instrucción usando su ARN de este modo:

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo"
```

Para especificar todos los repositorios que pertenecen a una cuenta específica, use el carácter comodín (\$1) del modo siguiente:

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:*"
```

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

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

También puede utilizar el carácter comodín (\$1) para especificar todos los recursos que coinciden con parte de un nombre de repositorio. Por ejemplo, el siguiente ARN especifica cualquier CodeCommit repositorio que comience por el nombre `MyDemo` y que esté registrado en la cuenta de Amazon Web Services `111111111111` en: `us-east-2` Región de AWS

```
arn:aws:codecommit:us-east-2:111111111111:MyDemo*
```

 Para obtener una lista de las operaciones disponibles que funcionan con los CodeCommit recursos, consulte[CodeCommit referencia de permisos](auth-and-access-control-permissions-reference.md).

### Titularidad de los recursos
<a name="understanding-resource-ownership"></a>

La cuenta de Amazon Web Services es la propietaria de los recursos que se crean en la cuenta, independientemente de quién los haya creado. En concreto, el propietario de los recursos es la cuenta de Amazon Web Services es la [entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) (es decir, la cuenta raíz, un usuario de IAM o un rol de IAM) que autentica la solicitud de creación de recursos. Los siguientes ejemplos ilustran cómo funciona:
+ Si crea un usuario de IAM en su cuenta de Amazon Web Services y concede permisos para crear CodeCommit recursos a ese usuario, el usuario podrá crear CodeCommit recursos. Sin embargo, su cuenta de Amazon Web Services, a la que pertenece el usuario, es propietaria de los CodeCommit recursos.
+ Si utiliza las credenciales de la cuenta raíz de su cuenta de Amazon Web Services para crear una regla, su cuenta de Amazon Web Services es la propietaria del CodeCommit recurso.
+ Si crea un rol de IAM en su cuenta de Amazon Web Services con permisos para crear CodeCommit recursos, cualquier persona que pueda asumir el rol podrá crear CodeCommit recursos. Su cuenta de Amazon Web Services, a la que pertenece el rol, es propietaria de los CodeCommit recursos.

### Administración del acceso a los recursos
<a name="managing-access-resources"></a>

Para administrar el acceso a AWS los recursos, se utilizan políticas de permisos. Una *política de permisos* describe quién tiene acceso a qué. En la siguiente sección se explican las opciones para crear políticas de permisos.

**nota**  
En esta sección se analiza el uso de la IAM en el contexto de CodeCommit. No se proporciona información detallada sobre el servicio de IAM. Para obtener más información acerca de IAM, consulte [¿Qué es IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) en la *Guía del usuario de IAM*. Para obtener más información acerca de la sintaxis y las descripciones de las políticas del IAM, consulte [Referencia de políticas de IAM de ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)en la *Guía del usuario de IAM*.

Las políticas de permisos que se asocian a una identidad de IAM se denominan políticas basadas en la identidad (políticas de IAM). Las políticas de permisos que se asocian a un recurso se denominan políticas basadas en recursos. Actualmente, solo CodeCommit admite políticas basadas en la identidad (políticas de IAM).

**Topics**
+ [Políticas basadas en identidades (políticas de IAM)](#identity-based-policies)
+ [Políticas basadas en recursos](#resource-based-policies-overview)

#### Políticas basadas en identidades (políticas de IAM)
<a name="identity-based-policies"></a>

Para administrar el acceso a AWS los recursos, debe adjuntar políticas de permisos a las identidades de IAM. En CodeCommit, se utilizan políticas basadas en la identidad para controlar el acceso a los repositorios. Por ejemplo, puede hacer lo siguiente: 
+ **Adjunta una política de permisos a un usuario o grupo de tu cuenta**: para conceder a un usuario permisos para ver los CodeCommit recursos de la CodeCommit consola, adjunta una política de permisos basada en la identidad al usuario o grupo al que pertenezca el usuario.
+ **Asociar una política de permisos a un rol (para conceder permisos entre cuentas)**: la delegación como, por ejemplo, cuando se desea conceder acceso entre cuentas, implica el establecimiento de una relación de confianza entre la cuenta que posee el recurso (la cuenta que confía) y la cuenta que contiene los usuarios que necesitan acceder al recurso (la cuenta en la que se confía). Una política de permisos concede al usuario del rol los permisos necesarios para realizar las tareas previstas en el recurso. Una política de confianza especifica las cuentas de confianza que pueden conceder permisos a sus usuarios para asumir el rol. Para obtener más información, consulte [Términos y conceptos sobre IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html). 

  Para conceder permisos entre cuentas, asocie una política de permisos basada en identidad a un rol de IAM. Por ejemplo, el administrador de la cuenta A puede crear un rol para conceder permisos multicuenta a otra cuenta de Amazon Web Services (por ejemplo, la cuenta B) o a un AWS servicio de la siguiente manera:

  1. El administrador de la CuentaA crea un rol de IAM y asocia una política de permisos a dicho rol, que concede permisos sobre los recursos de la CuentaA.

  1. El administrador de la CuentaA asocia una política de confianza al rol que identifica la Cuenta B como la entidad principal que puede asumir el rol.

  1. De este modo, el administrador de la cuenta B puede delegar los permisos para que asuman el rol en cualquier usuario de la cuenta B. De este modo, los usuarios de la cuenta B pueden crear recursos de la cuenta A. Si desea conceder un permiso de AWS servicio para que asuma el rol, el principal de la política de confianza también puede ser el principal de AWS servicio. Para obtener más información, consulte Delegación en [Términos y conceptos sobre IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html).

  Para obtener más información sobre el uso de IAM para delegar permisos, consulte [Administración de accesos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) en la *Guía del usuario de IAM*.



La siguiente política de ejemplo permite a un usuario crear una ramificación en un repositorio denominado *MyDemoRepo*:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:CreateBranch"
      ],
      "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo"
    }
  ]
}
```

------

Para restringir las llamadas y los recursos a los que los usuarios de su cuenta tienen acceso, cree políticas específicas de IAM y, a continuación, asocie esas políticas a usuarios de IAM. Para obtener más información sobre cómo crear funciones de IAM y explorar ejemplos de declaraciones de política de IAM CodeCommit, consulte. [Ejemplos de políticas de identidad administradas por los clientes](customer-managed-policies.md#customer-managed-policies-identity) 

#### Políticas basadas en recursos
<a name="resource-based-policies-overview"></a>

Algunos servicios, como Amazon S3, también admiten políticas de permisos basadas en recursos. Por ejemplo, puede adjuntar una política basada en recursos a un bucket de S3 para gestionar los permisos de acceso a ese bucket. CodeCommit no admite políticas basadas en recursos, pero puedes usar etiquetas para identificar los recursos, que luego puedes usar en las políticas de IAM. Para ver un ejemplo de una política basada en etiquetas, consulte [Políticas basadas en identidades (políticas de IAM)](#identity-based-policies). 

### El alcance de los recursos en CodeCommit
<a name="resource-scoping"></a>

En CodeCommit, puede establecer el alcance de las políticas y los permisos basados en la identidad para los recursos, tal y como se describe en. [CodeCommit recursos y operaciones](#arn-formats) Sin embargo, no puede definir el ámbito del permiso `ListRepositories` para un recurso. En su lugar, debe definir el ámbito para todos los recursos (utilizando el comodín `*`). De no hacerlo, la acción dará error. 

Todos los demás CodeCommit permisos se pueden limitar a los recursos.

### Especificar elementos de políticas: recursos, acciones, efectos y entidades principales
<a name="actions-effects-principals"></a>

Puede crear políticas para permitir o denegar a los usuarios el acceso a los recursos, o permitir o denegar a los usuarios que realicen acciones específicas en esos recursos. CodeCommit define un conjunto de operaciones de API públicas que definen la forma en que los usuarios trabajan con el servicio, ya sea a través de la CodeCommit consola SDKs AWS CLI, la consola o llamándolas directamente APIs. Para conceder permisos para estas operaciones de la API, CodeCommit define un conjunto de acciones que puedes especificar en una política. 

Algunas operaciones API pueden requerir permisos para realizar más de una acción. Para obtener más información sobre los recursos y las operaciones de API, consulte [CodeCommit recursos y operaciones](#arn-formats) y [CodeCommit referencia de permisos](auth-and-access-control-permissions-reference.md).

A continuación se indican los elementos básicos de una política:
+ **Recurso**: para identificar el recurso al que se aplica la política, use un nombre de recurso de Amazon (ARN). Para obtener más información, consulte [CodeCommit recursos y operaciones](#arn-formats).
+ **Acción**: para identificar las operaciones del recurso que desea permitir o denegar, utilice palabras de clave de acción. Por ejemplo, según lo especificado`Effect`, el `codecommit:GetBranch` permiso permite o deniega al usuario realizar la `GetBranch` operación, lo que obtiene detalles sobre una rama de un CodeCommit repositorio.
+ **Efecto**: especifique el efecto que se producirá cuando el usuario solicite la acción específica, ya sea permitir o denegar. Si no concede acceso de forma explícita (permitir) a un recurso, el acceso se deniega implícitamente. También puede denegar explícitamente el acceso a un recurso para asegurarse de que un usuario no pueda obtener acceso a él, aunque otra política le conceda acceso.
+ **Principal**: en las políticas basadas en la identidad (políticas de IAM), el único tipo de políticas que CodeCommit admite, es el usuario al que está vinculada la política, es el principal implícito. 

Para obtener más información sobre la sintaxis de las políticas de IAM consulte la [Referencia sobre la política de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) en la *Guía del usuario de IAM*.

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

### Especificación de las condiciones de una política
<a name="policy-conditions"></a>

Al conceder permisos, puede utilizar el lenguaje de la política de acceso de IAM para especificar las condiciones en las que se debe aplicar una política. Por ejemplo, es posible que desee que solo se aplique una política después de una fecha específica. Para obtener más información sobre cómo especificar condiciones en un lenguaje de política, consulte [Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition) y [Gramática de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) en la *Guía de usuario de IAM*.

Cómo expresar condiciones, se usan claves de condición predefinidas. No hay claves de condición específicas para CodeCommit. Sin embargo, hay claves AWS de condición generales que puede utilizar según convenga. Para obtener una lista completa de las claves AWS de ancho, consulte las [claves disponibles para las condiciones](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) en la Guía del usuario de *IAM*. 

# Uso de políticas basadas en la identidad (políticas de IAM) para CodeCommit
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

Los siguientes ejemplos de políticas basadas en la identidad demuestran cómo un administrador de cuentas puede adjuntar políticas de permisos a las identidades de IAM (usuarios, grupos y funciones) a fin de conceder permisos para realizar operaciones en los recursos. CodeCommit 

**importante**  
Le recomendamos que consulte primero los temas introductorios en los que se explican los conceptos básicos y las opciones disponibles para administrar el acceso a sus recursos. CodeCommit Para obtener más información, consulte [Descripción general de la administración de los permisos de acceso a sus CodeCommit recursos](auth-and-access-control.md#auth-and-access-control-iam-access-control-identity-based).

**Topics**
+ [Permisos necesarios para usar la consola CodeCommit](#console-permissions)
+ [Visualización de recursos en la consola](#console-resources)
+ [AWS políticas gestionadas para CodeCommit](security-iam-awsmanpol.md)
+ [Ejemplos de políticas administradas por el cliente](customer-managed-policies.md)

A continuación, se muestra un ejemplo de una política de permisos basada en identidad: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:BatchGetRepositories"
      ],
      "Resource" : [
        "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo",
        "arn:aws:codecommit:us-east-2:111122223333:MyDemo*"
      ]
    }
  ]
}
```

------

Esta política tiene una declaración que permite al usuario obtener información sobre el CodeCommit repositorio nombrado `MyDestinationRepo` y todos los CodeCommit repositorios que comienzan con ese nombre `MyDemo` en la **us-east-2** región. 

## Permisos necesarios para usar la consola CodeCommit
<a name="console-permissions"></a>

Para ver los permisos necesarios para cada operación de la CodeCommit API y obtener más información sobre CodeCommit las operaciones, consulte[CodeCommit referencia de permisos](auth-and-access-control-permissions-reference.md).

Para permitir que los usuarios usen la CodeCommit consola, el administrador debe concederles permisos para CodeCommit realizar acciones. Por ejemplo, puede adjuntar la política [AWSCodeCommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser)administrada o su equivalente a un usuario o grupo.

Además de los permisos que otorgan a los usuarios las políticas basadas en la identidad, CodeCommit requiere permisos para las acciones de AWS Key Management Service (AWS KMS). Un usuario de IAM no necesita permisos explícitos de `Allow` para estas acciones, pero el usuario no debe tener políticas asociadas que definan los siguientes permisos como `Deny`:

```
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
```

Para obtener más información sobre el cifrado CodeCommit, consulte. [AWS KMS y cifrado](encryption.md)

## Visualización de recursos en la consola
<a name="console-resources"></a>

La CodeCommit consola necesita el `ListRepositories` permiso para mostrar una lista de los repositorios de su cuenta de Amazon Web Services en la Región de AWS que ha iniciado sesión. La consola también incluye una función **Go to resource (Ir al recurso)** para realizar una búsqueda rápida de recursos sin distinción entre mayúsculas y minúsculas. Esta búsqueda se realiza en su cuenta de Amazon Web Services en la Región de AWS que ha iniciado sesión. Los siguientes recursos se muestran en los siguientes servicios:
+ AWS CodeBuild: proyectos de compilación
+ AWS CodeCommit: repositorios
+ AWS CodeDeploy: aplicaciones
+ AWS CodePipeline: canalizaciones

Para realizar esta búsqueda en los recursos de todos los servicios, debe contar con los siguientes permisos:
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

Los resultados de los recursos de un servicio no se devuelven si no tiene permisos para ese servicio. Aunque tenga permisos para ver los recursos, no se devolverán recursos específicos si hay un permiso `Deny` explícito para ver esos recursos.

# AWS políticas gestionadas para CodeCommit
<a name="security-iam-awsmanpol"></a>

Para añadir permisos a usuarios, grupos y roles, es más fácil usar políticas AWS administradas que escribirlas usted mismo. Se necesita tiempo y experiencia para [crear políticas administradas por el cliente de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) que proporcionen a su equipo solo los permisos necesarios. Para empezar rápidamente, puedes usar nuestras políticas AWS gestionadas. Estas políticas cubren casos de uso comunes y están disponibles en su Cuenta de AWS. Para obtener más información sobre las políticas AWS administradas, consulte las [políticas AWS administradas](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*.

AWS los servicios mantienen y AWS actualizan las políticas gestionadas. No puede cambiar los permisos en las políticas AWS gestionadas. En ocasiones, los servicios agregan permisos adicionales a una política administrada de AWS para admitir características nuevas. Este tipo de actualización afecta a todas las identidades (usuarios, grupos y roles) donde se asocia la política. Es más probable que los servicios actualicen una política administrada de AWS cuando se lanza una nueva característica o cuando se ponen a disposición nuevas operaciones. Los servicios no eliminan los permisos de una política AWS administrada, por lo que las actualizaciones de la política no afectarán a los permisos existentes.

Además, AWS admite políticas administradas para funciones laborales que abarcan varios servicios. Por ejemplo, la política **ReadOnlyAccess** AWS gestionada proporciona acceso de solo lectura a todos los AWS servicios y recursos. Cuando un servicio lanza una nueva función, AWS agrega permisos de solo lectura para nuevas operaciones y recursos. Para obtener una lista y descripciones de las políticas de funciones de trabajo, consulte [Políticas administradas de AWS para funciones de trabajo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía del usuario de IAM*.

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 otorgan los permisos necesarios para casos de uso comunes. Las políticas gestionadas CodeCommit también proporcionan permisos para realizar operaciones en otros servicios, como IAM, Amazon SNS y CloudWatch Amazon Events, según lo exijan las responsabilidades de los usuarios a los que se ha concedido la política en cuestión. Por ejemplo, la AWSCode CommitFullAccess política es una política de usuario de nivel administrativo que permite a los usuarios con esta política crear y gestionar reglas de CloudWatch eventos para los repositorios (reglas cuyos nombres llevan el prefijo) y temas de `codecommit` Amazon SNS para notificaciones sobre eventos relacionados con el repositorio (temas cuyos nombres llevan el prefijo), así como administrar los repositorios en. `codecommit` CodeCommit 

Las siguientes políticas AWS administradas, que puede adjuntar a los usuarios de su cuenta, son específicas de cada una. CodeCommit

**Topics**
+ [AWS política gestionada: AWSCode CommitFullAccess](#managed-policies-full)
+ [AWS política gestionada: AWSCode CommitPowerUser](#managed-policies-poweruser)
+ [AWS política gestionada: AWSCode CommitReadOnly](#managed-policies-read)
+ [CodeCommit políticas y notificaciones gestionadas](#notifications-permissions)
+ [AWS CodeCommit políticas gestionadas y Amazon CodeGuru Reviewer](#codeguru-permissions)
+ [CodeCommit actualizaciones de las políticas gestionadas AWS](#security-iam-awsmanpol-updates)

## AWS política gestionada: AWSCode CommitFullAccess
<a name="managed-policies-full"></a>

Puede asociar la política `AWSCodeCommitFullAccess` a las identidades de IAM. Esta política otorga acceso completo a CodeCommit. Aplique esta política únicamente a los usuarios de nivel administrativo a los que desee conceder un control total sobre los CodeCommit repositorios y los recursos relacionados de su cuenta de Amazon Web Services, incluida la posibilidad de eliminar repositorios.

La AWSCode CommitFullAccess política contiene la siguiente declaración de política:

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:*"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:DeleteTopic",
            "sns:Subscribe",
            "sns:Unsubscribe",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "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:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codestar-notifications*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS política gestionada: AWSCode CommitPowerUser
<a name="managed-policies-poweruser"></a>

Puede asociar la política `AWSCodeCommitPowerUser` a las identidades de IAM. Esta política permite a los usuarios acceder a todas las funciones CodeCommit y los recursos relacionados con el repositorio, excepto que no les permite eliminar CodeCommit repositorios ni crear o eliminar recursos relacionados con el repositorio en otros servicios AWS , como Amazon Events. CloudWatch Le recomendamos que aplique esta política a la mayoría de los usuarios.

La AWSCode CommitPowerUser política contiene la siguiente declaración de política:

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:AssociateApprovalRuleTemplateWithRepository",
            "codecommit:BatchAssociateApprovalRuleTemplateWithRepositories",
            "codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories",
            "codecommit:BatchGet*",
            "codecommit:BatchDescribe*",
            "codecommit:Create*",
            "codecommit:DeleteBranch",
            "codecommit:DeleteFile",
            "codecommit:Describe*",
            "codecommit:DisassociateApprovalRuleTemplateFromRepository",
            "codecommit:EvaluatePullRequestApprovalRules",
            "codecommit:Get*",
            "codecommit:List*",
            "codecommit:Merge*",
            "codecommit:OverridePullRequestApprovalRules",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*",
            "codecommit:GitPull",
            "codecommit:GitPush"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:Subscribe",
            "sns:Unsubscribe"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "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:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS política gestionada: AWSCode CommitReadOnly
<a name="managed-policies-read"></a>

Puede asociar la política `AWSCodeCommitReadOnly` a las identidades de IAM. Esta política otorga acceso de solo lectura a CodeCommit los recursos relacionados con el repositorio en otros AWS servicios, así como la capacidad de crear y administrar sus propios recursos CodeCommit relacionados (como las credenciales de Git y las claves SSH para que los usuarios de IAM las utilicen al acceder a los repositorios). Aplique esta política a los usuarios a los que desea conceder la capacidad de leer el contenido de un repositorio, pero no realizar ningún cambio en su contenido.

La política contiene la siguiente declaración de política: AWSCode CommitReadOnly 

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

****  

```
    { 
       "Version":"2012-10-17",		 	 	 
       "Statement":[ 
          { 
             "Effect":"Allow",
             "Action":[ 
                "codecommit:BatchGet*",
                "codecommit:BatchDescribe*",
                "codecommit:Describe*",
                "codecommit:EvaluatePullRequestApprovalRules",
                "codecommit:Get*",
                "codecommit:List*",
                "codecommit:GitPull"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"CloudWatchEventsCodeCommitRulesReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "events:DescribeRule",
                "events:ListTargetsByRule"
             ],
             "Resource":"arn:aws:events:*:*:rule/codecommit*"
          },
          { 
             "Sid":"SNSSubscriptionAccess",
             "Effect":"Allow",
             "Action":[ 
                "sns:ListTopics",
                "sns:ListSubscriptionsByTopic",
                "sns:GetTopicAttributes"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"LambdaReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "lambda:ListFunctions"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListUsers"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyConsoleAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListAccessKeys",
                "iam:ListSSHPublicKeys",
                "iam:ListServiceSpecificCredentials",
                "iam:GetSSHPublicKey"
             ],
             "Resource":"arn:aws:iam::*:user/${aws:username}"
          },
          { 
             "Sid":"CodeStarNotificationsReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:DescribeNotificationRule"
             ],
             "Resource":"*",
             "Condition":{ 
                "ArnLike":{ 
                   "codestar-notifications:NotificationsForResource":"arn:aws:codecommit:us-east-2:111122223333:*"
                }
             }
          },
          { 
             "Sid":"CodeStarNotificationsListAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:ListNotificationRules",
                "codestar-notifications:ListEventTypes",
                "codestar-notifications:ListTargets"
             ],
             "Resource":"*"
          },
          {
             "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
             "Effect": "Allow",
             "Action": [
                "codeguru-reviewer:DescribeRepositoryAssociation",
                "codeguru-reviewer:ListRepositoryAssociations",
                "codeguru-reviewer:DescribeCodeReview",
                "codeguru-reviewer:ListCodeReviews"
             ],
             "Resource": "*"
          },
          {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
    ]
}
```

------

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

AWS CodeCommit admite las notificaciones, que pueden notificar a los usuarios los cambios importantes en los repositorios. Las políticas gestionadas CodeCommit 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 las notificaciones en políticas administradas de acceso total
<a name="notifications-fullaccess"></a>

La política administrada `AWSCodeCommitFullAccess` 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 de los usuarios a los temas, mostrar los temas que se pueden elegir como destinos para las reglas de notificación y mostrar Amazon Q Developer en los clientes de aplicaciones de chat configurados para Slack.

```
    {
        "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" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource,"
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
        "Effect": "Allow",
        "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
        ],
        "Resource": "arn:aws:sns:*:*:codestar-notifications*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

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

La política administrada `AWSCodeCommitReadOnlyAccess` 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" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListEventTypes",
            "codestar-notifications:ListTargets"
        ],
        "Resource": "*"
    }
```

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

La política `AWSCodeCommitPowerUser` administrada incluye las siguientes instrucciones para que los usuarios puedan crear notificaciones, editarlas y suscribirse a ellas. Los usuarios no pueden eliminar reglas de notificación ni administrar etiquetas para recursos.

```
    {
        "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" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

Para obtener más información acerca de IAM y las notificaciones consulte [Administración de identidades y accesos para Notificaciones de AWS CodeStar](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

## AWS CodeCommit políticas gestionadas y Amazon CodeGuru Reviewer
<a name="codeguru-permissions"></a>

CodeCommit es compatible con Amazon CodeGuru Reviewer, un servicio de revisión de código automatizado que utiliza el análisis de programas y el aprendizaje automático para detectar problemas comunes y recomendar soluciones en su código Java o Python. Las políticas administradas CodeCommit incluyen declaraciones de políticas para la funcionalidad de CodeGuru Reviewer. Para obtener más información, consulte [Qué es Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html).

### Permisos relacionados con CodeGuru Reviewer en AWSCode CommitFullAccess
<a name="codeguru-fullaccess"></a>

La política `AWSCodeCommitFullAccess` gestionada incluye las siguientes declaraciones para permitir que CodeGuru Reviewer se asocie y disocie de los CodeCommit repositorios. Los usuarios a los que se aplique esta política gestionada también pueden ver el estado de asociación entre CodeCommit los repositorios y CodeGuru Reviewer y ver el estado de los trabajos de revisión de las solicitudes de incorporación de datos.

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### Permisos relacionados con CodeGuru Reviewer en AWSCode CommitPowerUser
<a name="codeguru-poweruser"></a>

La política `AWSCodeCommitPowerUser` gestionada incluye las siguientes declaraciones para permitir a los usuarios asociar y desasociar repositorios con CodeGuru Reviewer, ver el estado de la asociación y ver el estado de los trabajos de revisión de las solicitudes de extracción de información.

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### Permisos relacionados con Reviewer en CodeGuru AWSCode CommitReadOnly
<a name="codeguru-readonly"></a>

La política `AWSCodeCommitReadOnlyAccess` gestionada incluye las siguientes declaraciones para permitir el acceso de solo lectura al estado de la asociación de CodeGuru revisores y ver el estado de los trabajos de revisión en el caso de las solicitudes de participación. Los usuarios a los que se ha aplicado esta política administrada no pueden asociar ni desasociar repositorios. 

```
     {
      "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
      "Effect": "Allow",
      "Action": [
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    }
```

### Función vinculada al servicio Amazon CodeGuru Reviewer
<a name="codeguru-slr"></a>

Cuando asocias un repositorio a CodeGuru Reviewer, se crea un rol vinculado a un servicio para que CodeGuru Reviewer pueda detectar problemas y recomendar soluciones para el código de Java o Python en las solicitudes de cambios. El rol vinculado a servicio se denomina AWSServiceRoleForAmazonCodeGuruReviewer. Para obtener más información, consulte [Uso de funciones vinculadas a servicios para Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/using-service-linked-roles.html).

Para más información, consulte[ Políticas administradas de 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*.

## CodeCommit actualizaciones de las políticas gestionadas AWS
<a name="security-iam-awsmanpol-updates"></a>



Consulte los detalles sobre las actualizaciones de las políticas AWS administradas CodeCommit 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 [AWS CodeCommit Historial de documentos de la Guía del usuario](history.md).




| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  [AWS política gestionada: AWSCode CommitFullAccess](#managed-policies-full) y [AWS política gestionada: AWSCode CommitPowerUser](#managed-policies-poweruser): actualización de políticas existentes  |  CodeCommit agregó un permiso a estas políticas para admitir un tipo de notificación adicional utilizando Amazon Q Developer en aplicaciones de chat. Las AWSCode CommitFullAccess políticas AWSCode CommitPowerUser y se han modificado para añadir un permiso,`chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 de mayo de 2023 | 
|  [AWS política gestionada: AWSCode CommitReadOnly](#managed-policies-read): actualización de una política actual  |  CodeCommit eliminó un permiso duplicado de la política. Se AWSCode CommitReadOnly ha modificado para eliminar un permiso duplicado,`"iam:ListAccessKeys"`.  | 18 de agosto de 2021 | 
|  CodeCommit comenzó a rastrear los cambios  |  CodeCommit comenzó a realizar un seguimiento de los cambios de sus políticas AWS gestionadas.  | 18 de agosto de 2021 | 

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

Puedes crear tus propias políticas de IAM personalizadas para permitir permisos para CodeCommit acciones y recursos. Puede asociar estas políticas personalizadas a los grupos o usuarios de IAM que requieran esos permisos. También puede crear sus propias políticas de IAM personalizadas para la integración entre CodeCommit y otros AWS servicios.

**Topics**
+ [Ejemplos de políticas de identidad administradas por los clientes](#customer-managed-policies-identity)

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

El siguiente ejemplo de políticas de IAM concede permisos para diversas CodeCommit acciones. Úselas para limitar el CodeCommit acceso de sus usuarios y funciones de IAM. Estas políticas controlan la capacidad de realizar acciones con la CodeCommit consola, la API o el AWS CLI. AWS SDKs



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

 **Ejemplos**
+ [Ejemplo 1: permitir que un usuario realice CodeCommit operaciones en una sola unidad Región de AWS](#identity-based-policies-example-1)
+ [Ejemplo 2: permitir a un usuario utilizar Git para un solo repositorio](#identity-based-policies-example-2)
+ [Ejemplo 3: permitir a un usuario conectarse desde un rango de direcciones IP específicas para obtener acceso a un repositorio](#identity-based-policies-example-3)
+ [Ejemplo 4: denegar o permitir acciones en las ramificaciones](#identity-based-policies-example-4)
+ [Ejemplo 5: denegar o permitir acciones en repositorios con etiquetas](#identity-based-policies-example-5)

### Ejemplo 1: permitir que un usuario realice CodeCommit operaciones en una sola unidad Región de AWS
<a name="identity-based-policies-example-1"></a>

La siguiente política de permisos utiliza un carácter comodín (`"codecommit:*"`) para permitir a los usuarios realizar todas CodeCommit las acciones en la región us-east-2 y no desde otras. Regiones de AWS

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "codecommit:*",
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "codecommit:ListRepositories",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        }
    ]
}
```

------

### Ejemplo 2: permitir a un usuario utilizar Git para un solo repositorio
<a name="identity-based-policies-example-2"></a>

En CodeCommit, los permisos de la política de `GitPull` IAM se aplican a cualquier comando del cliente Git del que se recuperen datos CodeCommit **git fetch****git clone**, incluidos, etc. Del mismo modo, los permisos de la política de `GitPush` IAM se aplican a cualquier comando del cliente Git al que se envíen los datos. CodeCommit Por ejemplo, si el permiso de política de IAM de `GitPush` está definido en `Allow`, un usuario puede enviar la eliminación de una ramificación con el protocolo Git. A ese envío no le afectan los permisos que se hayan aplicado a la operación de `DeleteBranch` para ese usuario de IAM. El `DeleteBranch` permiso se aplica a las acciones realizadas con la consola, la AWS CLI SDKs, la y la API, pero no con el protocolo Git. 

El siguiente ejemplo permite al usuario especificado extraer datos del CodeCommit repositorio denominado y enviarlos a él`MyDemoRepo`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codecommit:GitPull",
        "codecommit:GitPush"
      ],
      "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo"
    }
  ]
}
```

------

### Ejemplo 3: permitir a un usuario conectarse desde un rango de direcciones IP específicas para obtener acceso a un repositorio
<a name="identity-based-policies-example-3"></a>

Puede crear una política que únicamente permita a los usuarios conectarse a un repositorio de CodeCommit si su dirección IP está dentro de un determinado rango de direcciones IP. Para ello, existen dos enfoques igualmente válidos. Puede crear una `Deny` política que prohíba CodeCommit las operaciones si la dirección IP del usuario no está dentro de un bloque específico, o puede crear una `Allow` política que permita CodeCommit las operaciones si la dirección IP del usuario está dentro de un bloque específico.

Puede crear una política `Deny` que deniegue el acceso a todos los usuarios que no están en un determinado rango de IP. Por ejemplo, puede asociar la política administrada AWSCodeCommitPowerUser y una política administrada por el cliente a todos los usuarios que necesitan acceder a su repositorio. El siguiente ejemplo de política deniega todos los CodeCommit permisos a los usuarios cuyas direcciones IP no estén dentro del bloque de direcciones IP especificado de 203.0.113.0/16:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Deny",
         "Action": [
            "codecommit:*"
         ],
         "Resource": "*",
         "Condition": {
            "NotIpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------

El siguiente ejemplo de política permite al usuario especificado acceder a un CodeCommit repositorio nombrado MyDemoRepo con los permisos equivalentes de la política AWSCode CommitPowerUser administrada solo si su dirección IP se encuentra dentro del bloque de direcciones especificado de 203.0.113.0/16:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codecommit:BatchGetRepositories",
            "codecommit:CreateBranch",
            "codecommit:CreateRepository",
            "codecommit:Get*",
            "codecommit:GitPull",
            "codecommit:GitPush",
            "codecommit:List*",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:Merge*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*"
         ],
         "Resource": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo",
         "Condition": {
            "IpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------



### Ejemplo 4: denegar o permitir acciones en las ramificaciones
<a name="identity-based-policies-example-4"></a>

Puede crear una política que deniegue a los usuarios permisos para realizar las acciones que especifique en una o varias ramificaciones. Si lo prefiere, puede crear una política que permita realizar en una o varias ramificaciones acciones que no estén disponibles en otras ramificaciones del repositorio. Puede utilizar estas políticas con las políticas administradas (predefinidas) apropiadas. Para obtener más información, consulte [Limite los empujes y las fusiones a las ramificaciones AWS CodeCommit](how-to-conditional-branch.md).

Por ejemplo, puedes crear una `Deny` política que niegue a los usuarios la posibilidad de realizar cambios en una rama denominada main, incluida la eliminación de esa rama, en un repositorio denominado. *MyDemoRepo* Puede usar esta política con la política administrada **AWSCodeCommitPowerUser**. Los usuarios con estas dos políticas aplicadas podrían crear y eliminar ramas, crear solicitudes de extracción y todas las demás acciones según lo permita **AWSCodeCommitPowerUser**, pero no podrán insertar cambios en la rama denominada *main*, añadir o editar un archivo en la rama *principal* de la CodeCommit consola, ni fusionar ramas o una solicitud de extracción en la rama *principal*. Debido a que `Deny` se aplica a `GitPush`, debe incluir una instrucción `Null` en la política para permitir analizar la validez de las llamadas iniciales a `GitPush` cuando los usuarios lleven a cabo inserciones desde sus repositorios locales.

**sugerencia**  
Si desea crear una política que se aplique a todas las ramificaciones denominadas *principal* de todos los repositorios de su cuenta de Amazon Web Services, para `Resource`, especifique un asterisco (`*`) en lugar del ARN de un repositorio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "codecommit:GitPush",
                "codecommit:DeleteBranch",
                "codecommit:PutFile",
                "codecommit:Merge*"
            ],
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"   
                    ]
                },
                "Null": {
                    "codecommit:References": "false"
                }
            }
        }
    ]
}
```

------

En el siguiente ejemplo de política se permite a un usuario realizar cambios en una ramificación denominada principal en todos los repositorios de una cuenta de Amazon Web Services. No permite cambios en ninguna otra ramificación. Puedes usar esta política junto con la política AWSCode CommitReadOnly administrada para permitir las transferencias automatizadas al repositorio de la rama principal. Debido a que el valor de Effect (Efecto) es `Allow`, esta política de ejemplo no funcionaría con las políticas administradas, como AWSCodeCommitPowerUser.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:GitPush",
                "codecommit:Merge*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"
                    ]
                }
            }
        }
    ]
}
```

------



### Ejemplo 5: denegar o permitir acciones en repositorios con etiquetas
<a name="identity-based-policies-example-5"></a>

Puede crear una política que permita o deniegue acciones en los repositorios en función de las AWS etiquetas asociadas a esos repositorios y, a continuación, aplicar esas políticas a los grupos de IAM que configure para administrar los usuarios de IAM. Por ejemplo, puede crear una política que deniegue todas CodeCommit las acciones en cualquier repositorio con la clave de AWS etiqueta *Status* y el valor clave *Secret* y, a continuación, aplicar esa política al grupo de IAM que creó para desarrolladores generales (). *Developers* A continuación, debes asegurarte de que los desarrolladores que trabajan en esos repositorios etiquetados no sean miembros de ese *Developers* grupo general, sino que pertenezcan a un grupo de IAM diferente al que no se haya aplicado la política restrictiva (). *SecretDevelopers*

*El siguiente ejemplo deniega todas CodeCommit las acciones en los repositorios etiquetados con la clave *Status* y el valor clave Secret:*

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:DeleteRepository",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Status": "Secret"
        }
      }
    }
  ]
}
```

------

Puede restringir aún más esta estrategia especificando repositorios concretos, en lugar de todos los repositorios, como recursos. También puedes crear políticas que permitan CodeCommit realizar acciones en todos los repositorios que no estén etiquetados con etiquetas específicas. Por ejemplo, la siguiente política permite el equivalente a **AWSCodeCommitPowerUser**los permisos para CodeCommit las acciones, excepto que solo permite CodeCommit acciones en los repositorios que no estén etiquetados con las etiquetas especificadas:

**nota**  
Este ejemplo de política solo incluye acciones para CodeCommit. No incluye acciones para otros AWS servicios que están incluidos en la política **AWSCodeCommitPowerUser**gestionada. Para obtener más información, consulte [AWS política gestionada: AWSCode CommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser)..

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/Status": "Secret",
          "aws:ResourceTag/Team": "Saanvi"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:CreateApprovalRuleTemplate",
        "codecommit:GetApprovalRuleTemplate",
        "codecommit:ListApprovalRuleTemplates",
        "codecommit:ListRepositories",
        "codecommit:ListRepositoriesForApprovalRuleTemplate",
        "codecommit:UpdateApprovalRuleTemplateContent",
        "codecommit:UpdateApprovalRuleTemplateDescription",
        "codecommit:UpdateApprovalRuleTemplateName"
      ],
      "Resource": "*"
    }
  ]
}
```

------

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

En las tablas siguientes se enumeran cada operación de la CodeCommit API, las acciones correspondientes para las que puede conceder permisos y el formato del ARN del recurso que se utilizará para conceder los permisos. CodeCommit APIs Se agrupan en tablas según el alcance de las acciones permitidas por esa API. Consulte esta tabla cuando configure [Control de acceso](auth-and-access-control.md#access-control) y cree políticas de permisos que vaya a asociar a una identidad de IAM (políticas basadas en identidad). 

Al crear una política de permisos, debe especificar las acciones en el campo `Action`de la política. Debe especificar un valor del recurso en el campo `Resource` de la política como ARN, con o sin un carácter comodín (\$1). 

Para expresar las condiciones en sus CodeCommit políticas, utilice claves AWS de condición generales. Para obtener una lista completa de las claves AWS de ancho ancho, consulte 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 obtener información completa sobre las acciones, los recursos y las claves de condición de CodeCommit las políticas de IAM, consulte [Acciones, recursos y claves de condición](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodecommit.html) de. AWS CodeCommit

**nota**  
Para especificar una acción, use el prefijo `codecommit:` seguido del nombre de la operación API (por ejemplo, `codecommit:GetRepository` o `codecommit:CreateRepository`). 

**Uso de comodines **

Para especificar varias acciones o recursos, utilice el carácter de comodín (\$1) en el ARN. Por ejemplo, `codecommit:*` especifica todas CodeCommit las acciones y `codecommit:Get*` especifica todas CodeCommit las acciones que comienzan por la palabra`Get`. El siguiente ejemplo concede acceso a todos los repositorios con nombres que comienzan por `MyDemo`. 

```
arn:aws:codecommit:us-west-2:111111111111:MyDemo*
```

Solo puede utilizar caracteres comodín con los *repository-name* recursos que se muestran en la tabla siguiente. No puede usar caracteres comodín con nuestros recursos*region*. *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*. 



**Topics**
+ [Permisos obligatorios para comandos del cliente Git](#aa-git)
+ [Permisos para realizar acciones en ramificaciones](#aa-branches)
+ [Permisos para realizar acciones en combinaciones](#aa-merges)
+ [Permisos para realizar acciones en solicitudes de extracción](#aa-pr)
+ [Permisos para acciones en plantillas de reglas de aprobación](#aa-art)
+ [Permisos para realizar acciones en archivos individuales](#aa-files)
+ [Permisos para realizar acciones en comentarios](#aa-comments)
+ [Permisos para realizar acciones en código confirmado](#aa-code)
+ [Permisos para realizar acciones en repositorios](#aa-repositories)
+ [Permisos para realizar acciones en etiquetas](#aa-tags)
+ [Permisos para realizar acciones en disparadores](#aa-triggers)
+ [Permisos para acciones de CodePipeline integración](#aa-acp)

## Permisos obligatorios para comandos del cliente Git
<a name="aa-git"></a>

En CodeCommit, los permisos de la política de `GitPull` IAM se aplican a cualquier comando del cliente Git del que se recuperen datos CodeCommit **git fetch****git clone**, incluidos, etc. Del mismo modo, los permisos de la política de `GitPush` IAM se aplican a cualquier comando del cliente Git al que se envíen los datos. CodeCommit Por ejemplo, si el permiso de política de IAM de `GitPush` está definido en `Allow`, un usuario puede enviar la eliminación de una ramificación con el protocolo Git. A ese envío no le afectan los permisos que se hayan aplicado a la operación de `DeleteBranch` para ese usuario de IAM. El `DeleteBranch` permiso se aplica a las acciones realizadas con la consola, la AWS CLI SDKs, la y la API, pero no con el protocolo Git. 

`GitPull` y `GitPush` son permisos de políticas de IAM. No son acciones de API.

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


**CodeCommit Permisos necesarios para las acciones de los comandos del cliente Git**  

| CodeCommit Permisos para Git | Permisos necesarios  | Recursos | 
| --- | --- | --- | 
|  GitPull  |  `codecommit:GitPull` Necesario para extraer información de un CodeCommit repositorio a un repositorio local. Se trata únicamente de un permiso de política de IAM, no de una acción de API.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  GitPush  |  `codecommit:GitPush` Necesario para enviar información desde un repositorio a un repositorio de CodeCommit. Se trata únicamente de un permiso de política de IAM, no de una acción de API.  Si crea una política que incluya una clave de contexto y una instrucción `Deny` que contenga este permiso, también deberá incluir un contexto `Null`. Para obtener más información, consulte [Limite los empujes y las fusiones a las ramificaciones AWS CodeCommit](how-to-conditional-branch.md).   |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 

## Permisos para realizar acciones en ramificaciones
<a name="aa-branches"></a>

Los siguientes permisos permiten o deniegan acciones en las ramas de los CodeCommit repositorios. Estos permisos se refieren únicamente a las acciones realizadas en la CodeCommit consola y con la CodeCommit API, y a los comandos ejecutados mediante la. AWS CLI No tienen que ver con acciones similares que se pueden llevar a cabo utilizando el protocolo de Git. Por ejemplo, el comando **git show-sucursal -r** muestra una lista de ramificaciones remotas para un repositorio y sus confirmaciones utilizando el protocolo de Git. No se ve afectado por ningún permiso de la CodeCommit `ListBranches` operación. 

Para obtener más información sobre las políticas y ramificaciones, consulte [Limite los empujes y las fusiones a las ramificaciones AWS CodeCommit](how-to-conditional-branch.md) y [Ejemplos de políticas administradas por el cliente](customer-managed-policies.md).

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


**CodeCommit Operaciones de API y permisos necesarios para realizar acciones en las sucursales**  

| CodeCommit Operaciones de API para sucursales | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  [CreateBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateBranch.html)  |  `codecommit:CreateBranch` Necesario para crear una rama en un CodeCommit repositorio.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [DeleteBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteBranch.html)  |  `codecommit:DeleteBranch` Necesario para eliminar una rama de un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` Necesario para obtener información detallada de una ramificación en un repositorio de CodeCommit.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [ListBranches](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListBranches.html) |  `codecommit:ListBranches` Necesario para obtener una lista de ramificaciones en un repositorio de CodeCommit.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [MergeBranchesByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByFastForward.html) |  `codecommit:MergeBranchesByFastForward` Necesario para fusionar dos ramas utilizando la estrategia de fusión rápida en un repositorio. CodeCommit   | arn:aws:codecommit::: region account-id repository-name | 
| [MergeBranchesBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesBySquash.html) |  `codecommit:MergeBranchesBySquash` Necesario para fusionar dos ramas utilizando la estrategia de fusión automática en un repositorio. CodeCommit   | arn:aws:codecommit::: region account-id repository-name | 
| [MergeBranchesByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByThreeWay.html) |  `codecommit:MergeBranchesByThreeWay` Necesario para fusionar dos ramas utilizando la estrategia de fusión a tres bandas en un repositorio. CodeCommit   | arn:aws:codecommit::: region account-id repository-name | 
| [UpdateDefaultBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateDefaultBranch.html) | codecommit:UpdateDefaultBranchNecesario para cambiar la rama predeterminada de un repositorio. CodeCommit  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 

## Permisos para realizar acciones en combinaciones
<a name="aa-merges"></a>

Los siguientes permisos permiten o deniegan las acciones relacionadas con las fusiones en los CodeCommit repositorios. Estos permisos se refieren a las acciones realizadas con la CodeCommit consola y la CodeCommit API, y a los comandos ejecutados mediante la. AWS CLI No tienen que ver con acciones similares que se pueden llevar a cabo utilizando el protocolo de Git. Para conocer los permisos relacionados en las ramificaciones, consulte [Permisos para realizar acciones en ramificaciones](#aa-branches). Para conocer los permisos relacionados en las solicitudes de extracción, consulte [Permisos para realizar acciones en solicitudes de extracción](#aa-pr).

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


**CodeCommit Permisos necesarios para las acciones de los comandos de combinación**  

| CodeCommit Permisos para fusiones | Permisos necesarios  | Recursos | 
| --- | --- | --- | 
|  [BatchDescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDescribeMergeConflicts.html)  |  `codecommit:BatchDescribeMergeConflicts` Necesario para devolver información sobre los conflictos en una fusión entre confirmaciones de un CodeCommit repositorio.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [CreateUnreferencedMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateUnreferencedMergeCommit.html)  |  `codecommit:CreateUnreferencedMergeCommit` Se requiere para crear una confirmación sin referencia entre dos ramas o confirmaciones en un CodeCommit repositorio con el fin de compararlas e identificar cualquier posible conflicto.   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [DescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribeMergeConflicts.html)  |  `codecommit:DescribeMergeConflicts` Necesario para devolver información sobre los conflictos de fusión entre las versiones base, fuente y destino de un archivo en una posible fusión en un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeCommit.html)  |  `codecommit:GetMergeCommit` Necesario para devolver información sobre la fusión entre una confirmación de origen y una de destino en un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetMergeOptions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeOptions.html)  |  `codecommit:GetMergeOptions` Necesario para devolver información sobre las opciones de combinación disponibles entre dos ramificaciones o especificadores de confirmación en un repositorio de CodeCommit.   |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 

## Permisos para realizar acciones en solicitudes de extracción
<a name="aa-pr"></a>

Los siguientes permisos permiten o deniegan acciones en solicitudes de extracción de repositorios de CodeCommit. Estos permisos se refieren a las acciones realizadas con la CodeCommit consola y la CodeCommit API, y a los comandos que se ejecutan mediante la. AWS CLI No tienen que ver con acciones similares que se pueden llevar a cabo utilizando el protocolo de Git. Para conocer los permisos relacionados de comentarios, consulte [Permisos para realizar acciones en comentarios](#aa-comments).

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


**CodeCommit Operaciones de la API y permisos necesarios para realizar acciones en las solicitudes de extracción**  

| CodeCommit Operaciones de API | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  BatchGetPullRequests  |  `codecommit:BatchGetPullRequests` Se requiere para devolver información sobre una o más solicitudes de incorporación de cambios en un CodeCommit repositorio. Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [CreatePullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequest.html)  |  `codecommit:CreatePullRequest` Necesario para crear una solicitud de extracción en un repositorio de CodeCommit.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [CreatePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequestApprovalRule.html) |  `codecommit:CreatePullRequestApprovalRule` Se requiere para crear una regla de aprobación para una solicitud de extracción en un repositorio de CodeCommit .  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [DeletePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeletePullRequestApprovalRule.html) |  `codecommit:DeletePullRequestApprovalRule` Se requiere para eliminar una regla de aprobación para una solicitud de extracción en un repositorio de CodeCommit .  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [DescribePullRequestEvents](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribePullRequestEvents.html) | Necesario para devolver información sobre uno o más eventos de solicitudes de cambios en un repositorio. CodeCommit  | arn:aws:codecommit::: region account-id repository-name | 
| [EvaluatePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_EvaluatePullRequestApprovalRules.html) |  `codecommit:EvaluatePullRequestApprovalRules` Se requiere para evaluar si una solicitud de extracción cumple todas las condiciones especificadas en sus reglas de aprobación asociadas en un repositorio de CodeCommit.   |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
|  [GetCommentsForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForPullRequest.html)  |  `codecommit:GetCommentsForPullRequest` Necesario para devolver los comentarios realizados en una solicitud de extracción.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| GetCommitsFromMergeBase |  `codecommit:GetCommitsFromMergeBase` Necesario para devolver información sobre la diferencia entre confirmaciones en el contexto de una posible combinación. Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [GetMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeConflicts.html) |  `codecommit:GetMergeConflicts` Necesario para devolver información sobre los conflictos de combinación entre la ramificación de origen y la de destino en una solicitud de extracción.  | arn:aws:codecommit:region:account-id: repository-name | 
|  [GetPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequest.html)  |  `codecommit:GetPullRequest` Necesario para devolver información sobre una solicitud de extracción.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
|  [GetPullRequestApprovalStates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestApprovalStates.html)  |  `codecommit:GetPullRequestApprovalStates` Se requiere para devolver información sobre los estados de aprobación de una solicitud de extracción especificada.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
|  [GetPullRequestOverrideState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestOverrideState.html)  |  `codecommit:GetPullRequestOverrideState` Necesario para devolver información sobre si las reglas de aprobación se han dejado a un lado (anulado) para una solicitud de extracción y, en caso afirmativo, el nombre de recurso de Amazon (ARN) del usuario o la identidad que anuló las reglas, así como sus requisitos para la solicitud de extracción.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [ListPullRequests](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListPullRequests.html) |  `codecommit:ListPullRequests` Necesario para devolver información sobre las solicitudes de extracción de un repositorio.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [MergePullRequestByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByFastForward.html) | codecommit:MergePullRequestByFastForwardNecesario para cerrar una solicitud de extracción e intentar combinar la ramificación de origen en la ramificación de destino de una solicitud de extracción utilizando la estrategia de combinación de avance rápido. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [MergePullRequestBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestBySquash.html) | codecommit:MergePullRequestBySquashNecesario para cerrar una solicitud de extracción e intentar combinar la ramificación de origen en la ramificación de destino de una solicitud de extracción utilizando la estrategia de combinación de squash. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [MergePullRequestByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByThreeWay.html) | codecommit:MergePullRequestByThreeWayNecesario para cerrar una solicitud de extracción e intentar combinar la ramificación de origen en la ramificación de destino de una solicitud de extracción utilizando la estrategia de combinación de tres modos. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [OverridePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_OverridePullRequestApprovalRules.html) | codecommit:OverridePullRequestApprovalRules Se requiere dejar de lado todos los requisitos de las reglas de aprobación para una solicitud de incorporación de cambios en un repositorio. CodeCommit  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
| [PostCommentForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForPullRequest.html) | codecommit:PostCommentForPullRequest Necesario para publicar un comentario en una solicitud de extracción en un repositorio de CodeCommit. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [UpdatePullRequestApprovalRuleContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalRuleContent.html) | codecommit:UpdatePullRequestApprovalRuleContent Necesario para cambiar la estructura de una regla de aprobación de una solicitud de incorporación de cambios en un repositorio. CodeCommit  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
| [UpdatePullRequestApprovalState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalState.html) | codecommit:UpdatePullRequestApprovalState Necesario para cambiar el estado de la aprobación de una solicitud de extracción en un repositorio. CodeCommit  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
| [UpdatePullRequestDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestDescription.html) | codecommit:UpdatePullRequestDescription Necesario para cambiar la descripción de una solicitud de extracción en un repositorio de CodeCommit . |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [UpdatePullRequestStatus](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestStatus.html) | codecommit:UpdatePullRequestStatus Necesario para cambiar el estado de una solicitud de extracción en un repositorio de CodeCommit. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [UpdatePullRequestTitle](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestTitle.html) | codecommit:UpdatePullRequestTitle Necesario para cambiar el título de una solicitud de extracción en un repositorio de CodeCommit. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 

## Permisos para acciones en plantillas de reglas de aprobación
<a name="aa-art"></a>

Los siguientes permisos permiten o deniegan acciones en plantillas de reglas de aprobación en repositorios de CodeCommit . Estos permisos se refieren únicamente a las acciones realizadas en la CodeCommit consola, la CodeCommit API y a los comandos ejecutados mediante la AWS CLI. No tienen que ver con acciones similares que se pueden llevar a cabo utilizando el protocolo de Git. Para conocer los permisos relacionados en las solicitudes de extracción, consulte [Permisos para realizar acciones en solicitudes de extracción](#aa-pr).

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


**CodeCommit Operaciones de la API y permisos necesarios para realizar acciones en las plantillas de reglas de aprobación**  

| CodeCommit Operaciones de API para plantillas de reglas de aprobación | Permisos necesarios  | Recursos | 
| --- | --- | --- | 
|  [AssociateApprovalRuleTemplateWithRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_AssociateApprovalRuleTemplateWithRepository.html)  |  `codecommit:AssociateApprovalRuleTemplateWithRepository` Necesario para asociar una plantilla con un repositorio especificado en una cuenta de Amazon Web Services. Una vez asociado, se crean automáticamente reglas de aprobación que coinciden con las condiciones de plantilla en cada solicitud de extracción creada en el repositorio especificado.  |  \$1  | 
|  [BatchAssociateApprovalRuleTemplateWithRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchAssociateApprovalRuleTemplateWithRepositories.html)  |  `codecommit:BatchAssociateApprovalRuleTemplateWithRepositories` Necesario para asociar una plantilla con uno o varios repositorios especificados en una cuenta de Amazon Web Services.  |  \$1  | 
|  [BatchDisassociateApprovalRuleTemplateFromRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDisassociateApprovalRuleTemplateFromRepositories.html)  |  `codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories` Necesario para desasociar una plantilla de uno o varios repositorios especificados en una cuenta de Amazon Web Services.  |  \$1  | 
|  [CreateApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateApprovalRuleTemplate.html)  |  `codecommit:CreateApprovalRuleTemplate` Se requiere para crear una plantilla de regla de aprobación que pueda asociarse a uno o más repositorios de la cuenta de AWS .  |  \$1  | 
|  [DeleteApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteApprovalRuleTemplate.html)  |  `codecommit:DeleteApprovalRuleTemplate` Necesario para eliminar la plantilla especificada en una cuenta de Amazon Web Services. No elimina las reglas de aprobación en las solicitudes de extracción ya creadas con la plantilla.   |  \$1  | 
|  [DisassociateApprovalRuleTemplateFromRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DisassociateApprovalRuleTemplateFromRepository.html)  |  `codecommit:DisassociateApprovalRuleTemplateFromRepository` Necesario para desasociar la plantilla especificada de un repositorio en una cuenta de Amazon Web Services. No elimina las reglas de aprobación en las solicitudes de extracción ya creadas con la plantilla.   |  \$1  | 
|  [GetApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetApprovalRuleTemplate.html)  |  `codecommit:GetApprovalRuleTemplate` Necesario para devolver información sobre una plantilla de regla de aprobación en una cuenta de Amazon Web Services.   |  \$1  | 
|  [ListApprovalRuleTemplates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListApprovalRuleTemplates.html)  |  `codecommit:ListApprovalRuleTemplates` Necesario para mostrar plantillas de reglas de aprobación en una cuenta de Amazon Web Services.   |  \$1  | 
|  [ListAssociatedApprovalRuleTemplatesForRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListAssociatedApprovalRuleTemplatesForRepository.html)  |  `codecommit:ListAssociatedApprovalRuleTemplatesForRepository` Necesario para enumerar todas las plantillas de reglas de aprobación asociadas a un repositorio especificado en una cuenta de Amazon Web Services.   |  \$1  | 
|  [ListRepositoriesForApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositoriesForApprovalRuleTemplate.html)  |  `codecommit:ListRepositoriesForApprovalRuleTemplate` Necesario para enumerar todos los repositorios asociados a una plantilla de regla de aprobación especificada en una cuenta de Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateContent.html)  |  `codecommit:UpdateApprovalRuleTemplateContent` Necesario para actualizar el contenido de una plantilla de regla de aprobación en una cuenta de Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateDescription.html)  |  `codecommit:UpdateApprovalRuleTemplateDescription` Necesario para actualizar la descripción de una plantilla de regla de aprobación en una cuenta de Amazon Web Services.   |  \$1  | 
|  [UpdateApprovalRuleTemplateName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateName.html)  |  `codecommit:UpdateApprovalRuleTemplateName` Necesario para actualizar el nombre de una plantilla de regla de aprobación en una cuenta de Amazon Web Services.   |  \$1  | 

## Permisos para realizar acciones en archivos individuales
<a name="aa-files"></a>

Los siguientes permisos permiten o deniegan acciones en archivos individuales de repositorios de CodeCommit. Estos permisos se refieren únicamente a las acciones realizadas en la CodeCommit consola, la CodeCommit API y a los comandos ejecutados mediante la AWS CLI. No tienen que ver con acciones similares que se pueden llevar a cabo utilizando el protocolo de Git. Por ejemplo, el comando `git push` envía archivos nuevos y modificados a un repositorio de CodeCommit mediante el protocolo de Git. No se ve afectado por ningún permiso de la CodeCommit `PutFile` operación.

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


**CodeCommit Operaciones de la API y permisos necesarios para realizar acciones en archivos individuales**  

| CodeCommit Operaciones de API para archivos individuales | Permisos necesarios  | Recursos | 
| --- | --- | --- | 
|  [DeleteFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteFile.html)  |  `codecommit:DeleteFile` Necesario para eliminar un archivo específico de una rama específica de un CodeCommit repositorio desde la CodeCommit consola.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetBlob](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBlob.html)  |  `codecommit:GetBlob` Necesario para ver el contenido codificado de un archivo individual en un CodeCommit repositorio desde la consola. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFile.html)  |  `codecommit:GetFile` Necesario para ver el contenido codificado de un archivo individual y sus metadatos en un CodeCommit repositorio desde la consola. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetFolder](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFolder.html)  |  `codecommit:GetFolder` Necesario para ver el contenido de una carpeta específica en un CodeCommit repositorio desde la consola. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [PutFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutFile.html)  |  `codecommit:PutFile` Necesario para añadir un archivo nuevo o modificado a un CodeCommit repositorio desde la CodeCommit consola, CodeCommit la API o el. AWS CLI  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 

## Permisos para realizar acciones en comentarios
<a name="aa-comments"></a>

Los siguientes permisos permiten o deniegan acciones en los comentarios de CodeCommit los repositorios. Estos permisos se refieren a las acciones realizadas con la CodeCommit consola y la CodeCommit API, y a los comandos ejecutados mediante la. AWS CLI Para conocer los permisos relacionados de comentarios en solicitudes de extracción, consulte [Permisos para realizar acciones en solicitudes de extracción](#aa-pr).

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


**CodeCommit Operaciones de la API y permisos necesarios para los comentarios en los repositorios**  

| CodeCommit Operaciones de API | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  [DeleteCommentContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteCommentContent.html)  |  `codecommit:DeleteCommentContent` Necesario para eliminar el contenido de un comentario realizado en un cambio, archivo o confirmación en un repositorio. Los comentarios no se pueden eliminar, pero si el usuario tiene este permiso, puede borrar el contenido de un comentario.   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetComment.html)  |  `codecommit:GetComment` Se requiere para devolver información sobre un comentario realizado en un cambio, un archivo o una confirmación en un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetCommentReactions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentReactions.html)  |  `codecommit:GetCommentReactions` Se requiere para devolver información sobre las reacciones de los emojis a un comentario realizado en un cambio, un archivo o una confirmación en un repositorio. CodeCommit  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetCommentsForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForComparedCommit.html)  |  `codecommit:GetCommentsForComparedCommit` Se requiere para devolver información sobre los comentarios realizados en la comparación entre dos confirmaciones en un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [PostCommentForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForComparedCommit.html)  |  `codecommit:PostCommentForComparedCommit` Necesario para crear un comentario sobre la comparación entre dos confirmaciones en un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
| [PostCommentReply](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentReply.html) |  `codecommit:PostCommentReply` Necesario para crear una respuesta a un comentario en una comparación entre confirmaciones o en una solicitud de extracción.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [PutCommentReaction](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutCommentReaction.html) |  `codecommit:PutCommentReaction` Necesario para crear o actualizar una reacción con emoji a un comentario.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [UpdateComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateComment.html) |  `codecommit:UpdateComment` Necesario para editar un comentario en una comparación entre confirmaciones o en una solicitud de extracción. Los comentarios solo puede editarlos el autor del comentario.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 

## Permisos para realizar acciones en código confirmado
<a name="aa-code"></a>

Los siguientes permisos permiten o deniegan acciones en el código confirmado en repositorios de CodeCommit. Estos permisos se refieren a las acciones realizadas con la CodeCommit consola y la CodeCommit API, y a los comandos ejecutados mediante la AWS CLI. No tienen que ver con acciones similares que se pueden llevar a cabo utilizando el protocolo de Git. Por ejemplo, el comando **git commit** crea una confirmación de una ramificación en un repositorio utilizando el protocolo de Git. No se ve afectado por ningún permiso de la CodeCommit `CreateCommit` operación. 

La denegación explícita de algunos de estos permisos puede tener consecuencias inesperadas en la CodeCommit consola. Por ejemplo, si define `GetTree` en `Deny`, evitará que los usuarios examinen el contenido de un repositorio en la consola, pero no impedirá que los usuarios vean el contenido de un archivo en el repositorio (por ejemplo, si reciben un enlace al archivo por correo electrónico). Si define `GetBlob` en `Deny`, evitará que los usuarios vean el contenido de los archivos, pero no impedirá que los usuarios examinen la estructura de un repositorio. Si define `GetCommit` en `Deny`, evitará que los usuarios recuperen información detallada sobre las confirmaciones. Si define `GetObjectIdentifier` en `Deny`, se bloqueará la mayor parte de la funcionalidad de exploración de código. Si estableces estas tres acciones `Deny` en una política, un usuario con esa política no podrá navegar por el código de la CodeCommit consola.

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


**CodeCommit Operaciones de la API y permisos necesarios para realizar acciones en el código comprometido**  

| CodeCommit Operaciones de API | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  BatchGetCommits  |  `codecommit:BatchGetCommits` Necesario para devolver información sobre una o varias confirmaciones en un repositorio de CodeCommit . Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
| [CreateCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateCommit.html) |  `codecommit:CreateCommit` Se necesita para crear una confirmación.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` Necesario para devolver información sobre una confirmación.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
|  GetCommitHistory  |  `codecommit:GetCommitHistory` Necesario para devolver información sobre el historial de confirmaciones en un repositorio. Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [GetDifferences](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetDifferences.html) |  `codecommit:GetDifferences` Necesario para devolver información sobre las diferencias entre especificadores de confirmación (como, por ejemplo, una ramificación, etiqueta, HEAD, ID de confirmación u otra referencia completa).  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| GetObjectIdentifier | codecommit:GetObjectIdentifierNecesario para resolver blobs, árboles y confirmaciones con su identificador. Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| GetReferences | codecommit:GetReferencesNecesario para devolver todas las referencias, como ramificaciones y etiquetas. Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| GetTree | codecommit:GetTreeNecesario para ver el contenido de un árbol específico en un CodeCommit repositorio desde la consola. CodeCommit Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar. |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 

## Permisos para realizar acciones en repositorios
<a name="aa-repositories"></a>

Los siguientes permisos permiten o deniegan acciones en CodeCommit los repositorios. Estos permisos se refieren a las acciones realizadas con la CodeCommit consola y la CodeCommit API, y a los comandos ejecutados mediante la. AWS CLI No tienen que ver con acciones similares que se pueden llevar a cabo utilizando el protocolo de Git. 

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


**CodeCommit Operaciones de la API y permisos necesarios para realizar acciones en los repositorios**  

| CodeCommit Operaciones de API | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  [BatchGetRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchGetRepositories.html)  |  `codecommit:BatchGetRepositories` Necesario para obtener información sobre varios CodeCommit repositorios en una cuenta de Amazon Web Services. En`Resource`, debe especificar los nombres de todos los CodeCommit repositorios para los que se permite (o deniega) información a un usuario.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [CreateRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateRepository.html)  |  `codecommit:CreateRepository` Necesario para crear un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [DeleteRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteRepository.html)  |  `codecommit:DeleteRepository` Necesario para eliminar un repositorio. CodeCommit   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
| [GetRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html) |  `codecommit:GetRepository` Necesario para obtener información sobre un único repositorio de CodeCommit.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| [ListRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositories.html) | codecommit:ListRepositoriesNecesario para obtener una lista de los nombres y el sistema IDs de varios CodeCommit repositorios de una cuenta de Amazon Web Services. El único valor permitido para `Resource` para esta acción es todos los repositorios (`*`). |  \$1  | 
| [UpdateRepositoryDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryDescription.html) | codecommit:UpdateRepositoryDescriptionNecesario para cambiar la descripción de un CodeCommit repositorio. |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
| [UpdateRepositoryName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryName.html) | codecommit:UpdateRepositoryNameNecesario para cambiar el nombre de un repositorio. CodeCommit En`Resource`, debe especificar tanto los CodeCommit repositorios que se pueden cambiar como los nombres de los nuevos repositorios. |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 

## Permisos para realizar acciones en etiquetas
<a name="aa-tags"></a>

Los siguientes permisos permiten o deniegan acciones en las AWS etiquetas de los CodeCommit recursos. 

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


**CodeCommit Operaciones de API y permisos necesarios para realizar acciones en las etiquetas**  

| CodeCommit Operaciones de API | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  [ListTagsForResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListTagsForResource.html)  |  `codecommit:ListTagsForResource` Se requiere para devolver información sobre las AWS etiquetas configuradas en un recurso en CodeCommit.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [TagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TagResource.html)  |  `codecommit:TagResource` Necesario para añadir o editar las AWS etiquetas de un recurso en. CodeCommit  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [UntagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UntagResource.html)  |  `codecommit:UntagResource` Necesario para eliminar AWS etiquetas de un recurso en. CodeCommit  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 

## Permisos para realizar acciones en disparadores
<a name="aa-triggers"></a>

Los siguientes permisos permiten o deniegan acciones en disparadores de repositorios de CodeCommit. 

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


**CodeCommit Operaciones de la API y permisos necesarios para realizar acciones en los activadores**  

| CodeCommit Operaciones de API | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  [GetRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepositoryTriggers.html)  |  `codecommit:GetRepositoryTriggers` Necesario para devolver información sobre los disparadores configurados para un repositorio.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [PutRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutRepositoryTriggers.html)  |  `codecommit:PutRepositoryTriggers` Necesario para crear, editar o eliminar disparadores de un repositorio.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
|  [TestRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TestRepositoryTriggers.html)  |  `codecommit:TestRepositoryTriggers` Necesario para probar las funciones de un disparador de repositorio mediante el envío de datos al tema o a la función configurados para el disparador.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 

## Permisos para acciones de CodePipeline integración
<a name="aa-acp"></a>

 CodePipeline Para utilizar un CodeCommit repositorio en una acción de origen para una canalización, debes conceder todos los permisos que se indican en la siguiente tabla al rol de servicio CodePipeline. Si no se han establecido estos permisos en la función de servicio o se han establecido en **Deny**, la canalización no se ejecuta automáticamente cuando se realiza un cambio en el repositorio, y los cambios no se podrán liberar manualmente. 

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


**CodeCommit Operaciones de la API y permisos necesarios para las acciones de CodePipeline integración**  

| CodeCommit Operaciones de API | Permisos necesarios (acciones de la API) | Recursos | 
| --- | --- | --- | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` Necesario para obtener información detallada de una ramificación en un repositorio de CodeCommit.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` Necesario para devolver información sobre una confirmación al rol de servicio de. CodePipeline   |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  UploadArchive  |  `codecommit:UploadArchive` Necesario para permitir que la función de servicio cargue los cambios del repositorio CodePipeline en una canalización. Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar.  |  arn:aws:codecommit::: *region* *account-id* *repository-name*  | 
|  GetUploadArchiveStatus  |  `codecommit:GetUploadArchiveStatus` Necesario para determinar el estado de la carga de un archivo: si está en curso, si se ha completado, si se ha cancelado o si se ha producido un error. Se trata únicamente de un permiso de política de IAM, no de una acción de API a la que se puede llamar.  |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 
| CancelUploadArchive | codecommit:CancelUploadArchiveNecesario para cancelar la carga de un archivo en una canalización. Es únicamente un permiso de políticas de IAM, no una acción API a la que se puede llamar. |  arn:aws:codecommit:*region*:*account-id*: *repository-name*  | 

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

Antes de utilizar IAM para gestionar el acceso CodeCommit, debe comprender las funciones de IAM disponibles para su uso. CodeCommit *Para obtener una visión general de cómo funcionan con IAM CodeCommit y otros AWS servicios, consulte [AWS Servicios que funcionan con IAM en la Guía del usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).*

**Topics**
+ [Claves de condición](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [Ejemplos](#security_iam_service-with-iam-id-based-policies-examples)

## Claves de condición
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></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 `Condition` especifica cuándo se ejecutan las instrucciones en función de criterios definidos. Puede crear expresiones condicionales que utilizan [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud. Para ver todas las claves de condición AWS globales, consulte las claves de [contexto de condición AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

CodeCommit define su propio conjunto de claves de condición y también admite el uso de algunas claves de condición globales. Para ver todas las claves de condición AWS globales, consulte las claves de [contexto de condición AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

 Algunas CodeCommit acciones admiten la clave de `codecommit:References` condición. Para obtener un ejemplo de política que utiliza esta clave, consulte [Ejemplo 4: denegar o permitir acciones en las ramificaciones](customer-managed-policies.md#identity-based-policies-example-4). 

Para ver una lista de claves de CodeCommit condición, consulte las [claves de condición AWS CodeCommit](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-policy-keys) en la *Guía del usuario de IAM*. Para saber con qué acciones y recursos puede utilizar una clave de condición, consulte [Acciones definidas por AWS CodeCommit](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-actions-as-permissions).

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



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

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

CodeCommit no admite políticas basadas en recursos. 

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

Puede adjuntar etiquetas a CodeCommit los recursos o pasarles etiquetas en una solicitud CodeCommit. Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el [elemento de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de una política utilizando las claves de condición `codecommit:ResourceTag/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`. Para obtener más información sobre el etiquetado de CodeCommit recursos, consulte[Ejemplo 5: denegar o permitir acciones en repositorios con etiquetas](customer-managed-policies.md#identity-based-policies-example-5). Para obtener más información sobre las estrategias de etiquetado, consulte Recursos de [etiquetado AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).

CodeCommit también admite políticas basadas en etiquetas de sesión. Para obtener más información, consulte [Etiquetas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). 

### Uso de etiquetas para proporcionar información de identidad en CodeCommit
<a name="security-iam_service-with-iam-tags-identity"></a>

CodeCommit admite el uso de etiquetas de sesión, que son atributos de pares clave-valor que se transfieren cuando se asume una función de IAM, se utilizan credenciales temporales o se federa un usuario en (). AWS Security Token Service AWS STS También puede asociar etiquetas a un usuario de IAM. Puede utilizar la información proporcionada en estas etiquetas para facilitar la identificación de quién ha realizado un cambio o ha provocado un evento. CodeCommit incluye los valores de las etiquetas con los siguientes nombres clave en CodeCommit los eventos:


****  

| Nombre de la clave | Valor | 
| --- | --- | 
| displayName | Nombre legible por humanos para mostrar y asociar con el usuario (por ejemplo, Mary Major o Saanvi Sarkar). | 
| emailAddress | La dirección de correo electrónico que desea mostrar y asociar al usuario (por ejemplo, mary\$1major@example.com o saanvi\$1sarkar@example.com). | 

Si se proporciona esta información, CodeCommit inclúyala en los eventos enviados a Amazon EventBridge y Amazon CloudWatch Events. Para obtener más información, consulte [Supervisión de eventos de CodeCommit en Amazon EventBridge y eventos de Amazon CloudWatch](monitoring-events.md).

Para utilizar el etiquetado de sesión, los roles deben tener políticas que incluyan el permiso `sts:TagSession` establecido en `Allow`. Si está utilizando acceso federado, puede configurar la información de nombre de visualización y etiqueta de correo electrónico como parte de la configuración. Por ejemplo, si utiliza Azure Active Directory, puede proporcionar la siguiente información de reclamación:


****  

| Nombre de la reclamación | Valor | 
| --- | --- | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName | user.displayname | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress | user.mail | 

Puede utilizar las etiquetas de sesión AWS CLI para pasarse `displayName` y `emailAddress` utilizarlas**AssumeRole**. Por ejemplo, un usuario que quiera asumir un rol llamado y *Developer* que quiera asociar su nombre *Mary Major* podría usar un **assume-role** comando similar al siguiente:

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Developer \
--role-session-name Mary-Major \
–-tags Key=displayName,Value="Mary Major" Key=emailAddress,Value="mary_major@example.com" \
--external-id Example987
```

Para obtener más información, consulte [AssumeRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role).

Puede utilizar la operación `AssumeRoleWithSAML` para devolver un conjunto de credenciales temporales que incluyan etiquetas `displayName` y `emailAddress`. Puede utilizar estas etiquetas cuando acceda a repositorios de CodeCommit. Para ello, es necesario que su empresa o grupo ya haya integrado la solución SAML de terceros con AWS ella. Si es así, puede pasar atributos SAML como etiquetas de sesión. Por ejemplo, si desea transferir los atributos de identidad de un nombre visible y una dirección de correo electrónico a un usuario *Saanvi Sarkar* denominado etiquetas de sesión:

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName">
  <AttributeValue>Saanvi Sarkar</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress">
  <AttributeValue>saanvi_sarkar@example.com</AttributeValue>
</Attribute>
```

Para obtener más información, consulte [Pasar etiquetas de sesión mediante AssumeRoleWith SAML.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-saml)

Puede utilizar la operación `AssumeRoleWithIdentity` para devolver un conjunto de credenciales temporales que incluyan etiquetas `displayName` y `emailAddress`. Puede utilizar estas etiquetas cuando acceda a repositorios de CodeCommit. Para pasar las etiquetas de sesión desde OpenID Connect (OIDC), debe incluir las etiquetas de sesión en JSON Web Token (JWT). Por ejemplo, el token JWP decodificado `AssumeRoleWithWebIdentity` que se utiliza para realizar la llamada incluye las etiquetas `displayName` y de `emailAddress` sesión de un usuario llamado: *Li Juan*

```
{
    "sub": "lijuan",
    "aud": "ac_oic_client",
    "jti": "ZYUCeREXAMPLE",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/tags": {
        "principal_tags": {
            "displayName": ["Li Juan"],
            "emailAddress": ["li_juan@example.com"],
        },
        "transitive_tag_keys": [
            "displayName",
            "emailAddress"
        ]
    }
}
```

Para obtener más información, consulte [Pasar etiquetas de sesión mediante](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-idp). AssumeRoleWithWebIdentity

Puede utilizar la operación `GetFederationToken` para devolver un conjunto de credenciales temporales que incluyan etiquetas `displayName` y `emailAddress`. Puede utilizar estas etiquetas cuando acceda a repositorios de CodeCommit. Por ejemplo, para usar el y AWS CLI obtener un token de federación que incluya las `emailAddress` etiquetas `displayName` y:

```
aws sts get-federation-token \
--name my-federated-user \
–-tags key=displayName,value="Nikhil Jayashankar" key=emailAddress,value=nikhil_jayashankar@example.com
```

Para obtener más información, consulte [Pasar etiquetas de sesión mediante GetFederationToken](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-getfederationtoken).

## CodeCommit 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 la cuenta de Amazon Web Services que dispone de permisos específicos.

### Uso de credenciales temporales con CodeCommit
<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). 

CodeCommit admite el uso de credenciales temporales. Para obtener más información, consulte [Conexión a AWS CodeCommit repositorios con credenciales rotativas](temporary-access.md).

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

Los [roles vinculados a un servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) permiten a AWS los servicios acceder a los recursos de otros servicios para completar una acción en tu nombre. Los roles vinculados a servicios aparecen en la cuenta de IAM y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.

CodeCommit no utiliza funciones vinculadas al servicio. 

### 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 cuenta de IAM y son propiedad de la cuenta. Esto significa que un administrador de IAM puede cambiar los permisos de este rol. Sin embargo, hacerlo podría deteriorar la funcionalidad del servicio.

CodeCommit no utiliza funciones de servicio. 

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

De forma predeterminada, los usuarios y los roles de IAM no tienen permiso para crear, ver ni modificar recursos de CodeCommit . Tampoco pueden realizar tareas con la API Consola de administración de AWS AWS CLI, o AWS . Un administrador de IAM debe crear políticas de IAM que concedan permisos a los usuarios y a los roles para realizar operaciones de la API concretas en los recursos especificados que necesiten. El administrador debe asociar esas políticas a los usuarios o grupos de IAM que necesiten esos permisos.

Para ver políticas de ejemplo, consulte lo siguiente:
+  [Ejemplo 1: permitir que un usuario realice CodeCommit operaciones en una sola unidad Región de AWS](customer-managed-policies.md#identity-based-policies-example-1)
+ [Ejemplo 2: permitir a un usuario utilizar Git para un solo repositorio](customer-managed-policies.md#identity-based-policies-example-2)
+ [Ejemplo 3: permitir a un usuario conectarse desde un rango de direcciones IP específicas para obtener acceso a un repositorio](customer-managed-policies.md#identity-based-policies-example-3)
+ [Ejemplo 4: denegar o permitir acciones en las ramificaciones](customer-managed-policies.md#identity-based-policies-example-4)
+ [Ejemplo 5: denegar o permitir acciones en repositorios con etiquetas](customer-managed-policies.md#identity-based-policies-example-5)
+ [Configura el acceso multicuenta a un repositorio mediante roles AWS CodeCommit](cross-account.md)

Para obtener información acerca de cómo crear una política basada en identidad de IAM con estos documentos de políticas 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*.

**Topics**
+ [Prácticas recomendadas relativas a políticas](#security_iam_service-with-iam-policy-best-practices)
+ [Uso de la consola CodeCommit](#security_iam_id-based-policy-examples-console)
+ [Permitir a los usuarios consultar sus propios permisos](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Visualización CodeCommit *repositories* basada en etiquetas](#security_iam_id-based-policy-examples-view-repositories-tags)

### Prácticas recomendadas relativas a 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 CodeCommit 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 CodeCommit
<a name="security_iam_id-based-policy-examples-console"></a>

Para acceder a la AWS CodeCommit consola, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle enumerar y ver detalles sobre los CodeCommit recursos de su cuenta de Amazon Web Services. Si crea una política basada en identidad que sea más restrictiva que el mínimo de permisos necesarios, la consola no funcionará del modo esperado para las entidades (usuarios o roles de IAM) que tengan esa política.

Para garantizar que esas entidades puedan seguir utilizando la CodeCommit consola, adjunte también la siguiente política AWS gestionada a las entidades. Para obtener más información, consulte [Agregar de permisos a un usuario](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) en la *Guía del usuario de IAM*.

Para obtener más información, consulte [Uso de políticas basadas en la identidad (políticas de IAM) para CodeCommit](auth-and-access-control-iam-identity-based-access-control.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 AWS API. En su lugar, permite acceso únicamente a las acciones que coincidan con la operación de API que intenta realizar.

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

### Visualización CodeCommit *repositories* basada en etiquetas
<a name="security_iam_id-based-policy-examples-view-repositories-tags"></a>

Puede utilizar las condiciones de su política basada en identidad para controlar el acceso a los recursos de CodeCommit basados en etiquetas. Para obtener un ejemplo de política que muestra cómo hacerlo, consulte [Ejemplo 5: denegar o permitir acciones en repositorios con etiquetas](customer-managed-policies.md#identity-based-policies-example-5).

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

## Solución de problemas AWS CodeCommit de 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 CodeCommit IAM.

**Topics**
+ [No estoy autorizado a realizar ninguna acción en CodeCommit](#security_iam_troubleshoot-no-permissions)
+ [No estoy autorizado a realizar lo siguiente: PassRole](#security_iam_troubleshoot-passrole)
+ [Quiero ver mis claves de acceso](#security_iam_troubleshoot-access-keys)
+ [Soy administrador y quiero permitir que otras personas accedan CodeCommit](#security_iam_troubleshoot-admin-delegate)
+ [Quiero permitir que personas ajenas a mi cuenta de Amazon Web Services accedan a mis CodeCommit recursos](#security_iam_troubleshoot-cross-account-access)

### No estoy autorizado a realizar ninguna acción en CodeCommit
<a name="security_iam_troubleshoot-no-permissions"></a>

Si Consola de administración de AWS le indica que no está autorizado a realizar una acción, debe ponerse en contacto con su administrador para obtener ayuda. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

Para obtener más información, consulte [Permisos necesarios para usar la consola CodeCommit](auth-and-access-control-iam-identity-based-access-control.md#console-permissions)

### No estoy autorizado a realizar lo siguiente: 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 CodeCommit.

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 al 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 CodeCommit. 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 ver mis claves de acceso
<a name="security_iam_troubleshoot-access-keys"></a>

Después de crear sus claves de acceso de usuario de IAM, puede ver su ID de clave de acceso en cualquier momento. Sin embargo, no puede volver a ver su clave de acceso secreta. Si pierde la clave de acceso secreta, debe crear un nuevo par de claves de acceso. 

Las claves de acceso se componen de dos partes: un ID de clave de acceso (por ejemplo, `AKIAIOSFODNN7EXAMPLE`) y una clave de acceso secreta (por ejemplo, `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`). El ID de clave de acceso y la clave de acceso secreta se utilizan juntos, como un nombre de usuario y contraseña, para autenticar sus solicitudes. Administre sus claves de acceso con el mismo nivel de seguridad que para el nombre de usuario y la contraseña.

**importante**  
No proporcione las claves de acceso a terceros, ni siquiera para que lo ayuden a [buscar el ID de usuario canónico](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId). De este modo, podrías dar a alguien acceso permanente a tu Cuenta de AWS.

Cuando crea un par de claves de acceso, se le pide que guarde el ID de clave de acceso y la clave de acceso secreta en un lugar seguro. La clave de acceso secreta solo está disponible en el momento de su creación. Si pierde la clave de acceso secreta, debe agregar nuevas claves de acceso a su usuario de IAM. Puede tener un máximo de dos claves de acceso. Si ya cuenta con dos, debe eliminar un par de claves antes de crear una nueva. Para consultar las instrucciones, consulte [Administración de claves de acceso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey) en la *Guía del usuario de IAM*.

### Soy administrador y quiero permitir que otras personas accedan CodeCommit
<a name="security_iam_troubleshoot-admin-delegate"></a>

Para permitir el acceso de otras personas CodeCommit, debes conceder permiso a las personas o aplicaciones que necesitan acceso. Si usa AWS IAM Identity Center para administrar las personas y las aplicaciones, debe asignar conjuntos de permisos a los usuarios o grupos para definir su nivel de acceso. Los conjuntos de permisos crean políticas de IAM y las asignan a los roles de IAM asociados a la persona o aplicación de forma automática. Para obtener más información, consulte la sección [Conjuntos de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) en la *Guía del usuario de AWS IAM Identity Center *.

Si no utiliza IAM Identity Center, debe crear entidades de IAM (usuarios o roles) para las personas o aplicaciones que necesitan acceso. A continuación, debe asociar una política a la entidad que le conceda los permisos correctos en CodeCommit. Una vez concedidos los permisos, proporcione las credenciales al usuario o al desarrollador de la aplicación. Utilizarán esas credenciales para acceder a AWS. Para obtener más información sobre la creación de usuarios, grupos, políticas y permisos de IAM, consulte [Identidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) y [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*.

### Quiero permitir que personas ajenas a mi cuenta de Amazon Web Services accedan a mis CodeCommit recursos
<a name="security_iam_troubleshoot-cross-account-access"></a>

Para obtener más información, consulte [Configura el acceso multicuenta a un repositorio mediante roles AWS CodeCommit](cross-account.md).

# Resiliencia en AWS CodeCommit
<a name="disaster-recovery-resiliency"></a>

La infraestructura global de AWS se divide en Regiones de AWS y zonas de disponibilidad. Las Regiones de AWSproporcionan varias zonas de disponibilidad físicamente independientes y aisladas que se encuentran conectadas mediante redes con un alto nivel de rendimiento y redundancia, además de baja latencia. Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datos que conmutan automáticamente entre zonas sin interrupción. Las zonas de disponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que las infraestructuras tradicionales de uno o varios centros de datos. 

Existe un repositorio de CodeCommit o una plantilla de reglas de aprobación de CodeCommit en la Región de AWS donde se creó. Para obtener más información, consulte [Regiones y puntos de conexión de Git para AWS CodeCommit](regions.md). Para mejorar la resiliencia de los repositorios, puede configurar su cliente Git para que lo suba a dos repositorios a la vez. Para obtener más información, consulte [Envío de confirmaciones a un repositorio de Git adicional](how-to-mirror-repo-pushes.md).

Para obtener más información sobre las Regiones de AWS y las zonas de disponibilidad, consulte [Infraestructura global de AWS](https://aws.amazon.com/about-aws/global-infrastructure/).

# Seguridad de la infraestructura en () AWS CodeCommit
<a name="infrastructure-security"></a>

Al tratarse de un servicio administrado, AWS CodeCommit está protegido por los procedimientos de seguridad de red globales de AWS que se describen en el documento técnico [Amazon Web Services: Información general sobre los procesos de seguridad](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Puede utilizar llamadas a la API publicadas en AWS para acceder a CodeCommit a través de la red. Los clientes deben ser compatibles con la seguridad de la capa de transporte (TLS) 1.0 o una versión posterior. Recomendamos TLS 1.2 o una versión posterior. Los clientes también deben ser compatibles con conjuntos de cifrado con confidencialidad directa total (PFS) tales como Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La mayoría de los sistemas modernos como Java 7 y posteriores son compatibles con estos modos.

Las solicitudes deben estar firmadas mediante un ID de clave de acceso y una clave de acceso secreta que esté asociada a una entidad principal de IAM. También puede utilizar [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) para generar credenciales de seguridad temporales para firmar solicitudes.

Puede llamar a estas operaciones de API desde cualquier ubicación de red, pero CodeCommit admite restricciones basadas en la dirección IP de origen. También puede utilizar políticas de CodeCommit para controlar el acceso desde puntos de conexión específicos de Amazon Virtual Private Cloud (Amazon VPC) o VPC específicas. Este proceso aísla con eficacia el acceso de red a un recurso de CodeCommit determinado únicamente desde la VPC específica de la red de AWS.

Para obtener más información, consulte los siguientes temas:
+ [Ejemplo 1: permitir que un usuario realice CodeCommit operaciones en una sola unidad Región de AWS](customer-managed-policies.md#identity-based-policies-example-1)
+ [Ejemplo 3: permitir a un usuario conectarse desde un rango de direcciones IP específicas para obtener acceso a un repositorio](customer-managed-policies.md#identity-based-policies-example-3)
+ [Uso AWS CodeCommit con puntos finales de VPC de interfaz](codecommit-and-interface-VPC.md)