

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 CodeBuild
<a name="security"></a>

La seguridad en la nube AWS es la máxima prioridad. Como AWS cliente, usted se beneficia de los centros de datos y las arquitecturas de red diseñados para cumplir con los requisitos de las organizaciones más sensibles a la seguridad.

La seguridad es una responsabilidad compartida entre AWS usted 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 AWS los servicios en la Nube de AWS. AWS también le proporciona servicios que puede utilizar de forma segura. Auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad en el marco de los [programas de conformidad de AWS](https://aws.amazon.com/compliance/programs/). Para obtener más información sobre los programas de conformidad aplicables AWS CodeBuild, consulte los [AWS servicios incluidos en el ámbito de aplicación por programa de conformidad](https://aws.amazon.com/compliance/services-in-scope/).
+ **Seguridad en la nube**: su responsabilidad viene determinada por el AWS servicio que utilice. También es responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de la empresa y la legislación y los reglamentos vigentes.

Esta documentación le ayuda a comprender cómo aplicar el modelo de responsabilidad compartida cuando se utiliza CodeBuild. Los siguientes temas muestran cómo configurarlo CodeBuild para cumplir sus objetivos de seguridad y conformidad. También aprenderá a utilizar otros AWS servicios que le ayudan a supervisar y proteger sus CodeBuild recursos.

**Topics**
+ [

# Protección de datos en AWS CodeBuild
](data-protection.md)
+ [

# Administración de identidades y accesos en AWS CodeBuild
](auth-and-access-control.md)
+ [

# Validación de conformidad para AWS CodeBuild
](compliance-validation.md)
+ [

# Resiliencia en AWS CodeBuild
](codebuild-disaster-recovery-resiliency.md)
+ [

# Seguridad de la infraestructura en AWS CodeBuild
](infrastructure-security.md)
+ [

# Acceda a su proveedor de origen en CodeBuild
](access-tokens.md)
+ [

# Prevención de la sustitución confusa entre servicios
](cross-service-confused-deputy-prevention.md)

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

El modelo de [responsabilidad AWS compartida modelo](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica a la protección de datos en AWS CodeBuild. Como se describe en este modelo, AWS es responsable de proteger la infraestructura global que ejecuta todos los Nube de AWS. Eres responsable de mantener el control sobre el contenido alojado en esta infraestructura. También eres responsable de las tareas de administración y configuración de seguridad para los Servicios de AWS que utiliza. Para obtener más información sobre la privacidad de los datos, consulte las [Preguntas frecuentes sobre la privacidad de datos](https://aws.amazon.com/compliance/data-privacy-faq/). Para obtener información sobre la protección de datos en Europa, consulte la publicación de blog sobre el [Modelo de responsabilidad compartida de AWS y GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el * Blog de seguridad de AWS *.

Con fines de protección de datos, le recomendamos que proteja Cuenta de AWS las credenciales y configure los usuarios individuales con AWS IAM Identity Center o AWS Identity and Access Management (IAM). De esta manera, solo se otorgan a cada usuario los permisos necesarios para cumplir sus obligaciones laborales. También recomendamos proteger sus datos de la siguiente manera:
+ Utiliza la autenticación multifactor (MFA) en cada cuenta.
+ Se utiliza SSL/TLS para comunicarse con AWS los recursos. Exigimos TLS 1.2 y recomendamos TLS 1.3.
+ Configure la API y el registro de actividad de los usuarios con AWS CloudTrail. Para obtener información sobre el uso de CloudTrail senderos para capturar AWS actividades, consulte [Cómo trabajar con CloudTrail senderos](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) en la *Guía del AWS CloudTrail usuario*.
+ Utilice soluciones de AWS cifrado, junto con todos los controles de seguridad predeterminados Servicios de AWS.
+ Utiliza servicios de seguridad administrados avanzados, como Amazon Macie, que lo ayuden a detectar y proteger la información confidencial almacenada en Amazon S3.
+ Si necesita módulos criptográficos validados por FIPS 140-3 para acceder a AWS través de una interfaz de línea de comandos o una API, utilice un punto final FIPS. Para obtener más información sobre los puntos de conexión de FIPS disponibles, consulte [Estándar de procesamiento de la información federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Se recomienda encarecidamente no introducir nunca información confidencial o sensible, como por ejemplo, direcciones de correo electrónico de clientes, en etiquetas o campos de formato libre, tales como el campo **Nombre**. Esto incluye cuando trabaja con CodeBuild o Servicios de AWS utiliza la consola, la API o. AWS CLI AWS SDKs Cualquier dato que introduzca en etiquetas o campos de formato libre utilizados para los nombres se pueden emplear para los registros de facturación o diagnóstico. Si proporciona una URL a un servidor externo, recomendamos encarecidamente que no incluya información de credenciales en la URL a fin de validar la solicitud para ese servidor.

 Para proteger la información confidencial, los CodeBuild registros ocultan lo siguiente: 
+  Cadenas especificadas mediante el almacén de parámetros en las variables de entorno CodeBuild del proyecto o en la sección buildspec`env/parameter-store`. Para obtener más información, consulte [Almacén de parámetros de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) y [Tutorial de la consola del almacén de parámetros de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) en la *Guía del usuario de Amazon EC2 Systems Manager*. 
+  Cadenas especificadas mediante variables de entorno CodeBuild del proyecto o AWS Secrets Manager en la sección buildspec. `env/secrets-manager` Para obtener más información, consulte [Administración de claves](security-key-management.md). 

Para obtener más información sobre la protección de datos, consulte la entrada de blog relativa al [modelo de responsabilidad compartida de AWS y GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el *blog de seguridad de AWS *.

**Topics**
+ [

# Cifrado de datos
](security-encryption.md)
+ [

# Administración de claves
](security-key-management.md)
+ [

# Privacidad de tráfico
](security-traffic-privacy.md)

# Cifrado de datos
<a name="security-encryption"></a>

El cifrado es una parte importante de la seguridad. CodeBuild Algunos cifrados, por ejemplo, para el cifrado de datos en tránsito se proporcionan de forma predeterminada y no es necesario que haga nada. Otros, por ejemplo, para el cifrado de datos en reposo, se pueden configurar cuando cree su proyecto o compilación. 
+ **Cifrado de los datos en reposo**: los artefactos de compilación, como la memoria caché, los registros, los archivos de datos de informes de pruebas sin procesar exportados y los resultados de la compilación, se cifran de forma predeterminada mediante Claves administradas por AWS. Si no desea utilizar estas CMK, debe crear y configurar una clave de cliente personalizada administrada por el cliente. Para obtener más información, consulte [Creación de claves de KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) y [Conceptos de AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) en la *Guía del usuario de AWS Key Management Service *. 
  + Puede almacenar el identificador de la clave AWS KMS que se CodeBuild utiliza para cifrar el artefacto de salida de la compilación en la `CODEBUILD_KMS_KEY_ID` variable de entorno. Para obtener más información, consulte [Variables de entorno en los entornos de compilación](build-env-ref-env-vars.md) 
  + Puede especificar una clave administrada por el cliente cuando cree un proyecto de compilación. Para obtener más información, consulte [Set the Encryption Key Using the Console](create-project.md#encryptionkey-console) y [Establecimiento de la clave de cifrado utilizando la CLI](create-project.md#cli.encryptionkey). 

  Los volúmenes de Amazon Elastic Block Store de su flota de construcción se cifran de forma predeterminada mediante Claves administradas por AWS. 
+ **Cifrado de los datos en tránsito**: todas las comunicaciones entre los clientes CodeBuild CodeBuild y sus dependencias posteriores están protegidas mediante conexiones TLS que se firman mediante el proceso de firma de la versión 4 de Signature. Todos los CodeBuild puntos finales utilizan certificados SHA-256 gestionados por. AWS Private Certificate Authority Para más información, consulte [Proceso de firma de Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) y [¿Qué es PCA de ACM?](https://docs.aws.amazon.com/privateca/latest/userguide/). 
+ **Cifrado de artefactos de compilación**: la función de CodeBuild servicio asociada al proyecto de compilación requiere acceso a una clave de KMS para cifrar los artefactos de salida de la compilación. De forma predeterminada, CodeBuild usa una Clave administrada de AWS para Amazon S3 en su AWS cuenta. Si no desea utilizar esta Clave administrada de AWS, debe crear y configurar una clave administrada por el cliente. Para obtener más información, consulte [Cifrado de las salidas de compilación](setting-up-kms.md) y [Creación de claves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) en la *Guía para desarrolladores de AWS KMS *.

# Administración de claves
<a name="security-key-management"></a>

Puede proteger su contenido del uso no autorizado mediante el cifrado. Guarde sus claves de cifrado y AWS Secrets Manager, a continuación, conceda permiso CodeBuild al rol de servicio asociado al proyecto de compilación para obtener las claves de cifrado de su cuenta de Secrets Manager. Para obtener más información, consulte [Cifrado de las salidas de compilación con una clave administrada por el cliente](setting-up-kms.md), [Creación de un proyecto de compilación en AWS CodeBuild](create-project.md), [Ejecute AWS CodeBuild compilaciones manualmente](run-build.md) y [Tutorial: Almacenamiento y recuperación de un secreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html). 

Utilice la variable de `CODEBUILD_KMS_KEY_ID` entorno en un comando de compilación para obtener el identificador AWS KMS clave. Para obtener más información, consulte [Variables de entorno en los entornos de compilación](build-env-ref-env-vars.md). 

Puede utilizar Secrets Manager para proteger credenciales en un registro privado que almacena una imagen de Docker utilizada para su entorno en tiempo de ejecución. Para obtener más información, consulte [Registro privado con AWS Secrets Manager muestra para CodeBuild](sample-private-registry.md). 

# Privacidad de tráfico
<a name="security-traffic-privacy"></a>

Puede mejorar la seguridad de sus compilaciones configurándolas CodeBuild para usar un punto final de VPC de interfaz. Para ello, no necesita una gateway de Internet, ni un dispositivo NAT, ni una gateway privada virtual. Tampoco es obligatorio configurarlo PrivateLink, aunque se recomienda hacerlo. Para obtener más información, consulte [Uso de puntos de enlace de la VPC](use-vpc-endpoints-with-codebuild.md). Para obtener más información sobre los puntos PrivateLink de enlace de la VPC, consulte [Acceder a [AWS PrivateLink](https://aws.amazon.com/privatelink/)AWS](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink)los servicios mediante. PrivateLink 

# Administración de identidades y accesos en AWS CodeBuild
<a name="auth-and-access-control"></a>

El acceso AWS CodeBuild requiere credenciales. Esas credenciales deben tener permisos para acceder a AWS los recursos, como almacenar y recuperar artefactos de compilación en buckets de S3 y ver Amazon CloudWatch Logs para compilaciones. En las siguientes secciones, se describe cómo puede utilizar [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)(IAM) y cómo puede ayudar CodeBuild a proteger el acceso a sus recursos:

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

Cada AWS recurso es propiedad de una AWS cuenta y los permisos para crear un recurso o acceder a él se rigen por las políticas de permisos. Un administrador de cuentas puede asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y funciones). 

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

Cuando concede permisos, decide quién obtiene los permisos, los recursos a los que se tiene acceso y las acciones que se pueden realizar en esos recursos.

**Topics**
+ [

## AWS CodeBuild recursos y operaciones
](#arn-formats)
+ [

## Titularidad de los recursos
](#understanding-resource-ownership)
+ [

## Administración del acceso a los recursos
](#managing-access-resources)
+ [

## Especificar elementos de la política: acciones, efectos y entidades principales
](#actions-effects-principals)

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

En AWS CodeBuild, el recurso principal es un proyecto de compilación. En una política, se usa un nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política. Las compilaciones también son recursos y están ARNs asociadas a ellos. Para obtener más información, 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*


| Tipo de recurso | Formato de ARN | 
| --- | --- | 
| Proyecto de compilación |  `arn:aws:codebuild:region-ID:account-ID:project/project-name`  | 
| Build |  `arn:aws:codebuild:region-ID:account-ID:build/build-ID`  | 
| Grupo de informes | arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name | 
| Informar | arn:aws:codebuild:region-ID:account-ID:report/report-ID | 
| Fleet |  `arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID`  | 
|   CodeBuild Todos los recursos  |  `arn:aws:codebuild:*`  | 
|  Todos CodeBuild los recursos que pertenecen a la cuenta especificada en la AWS región especificada  |  `arn:aws:codebuild:region-ID:account-ID:*`  | 

**importante**  
Cuando se usa la característica de capacidad reservada, otros proyectos de la misma cuenta pueden acceder a los datos almacenados en caché en las instancias de flota (incluidos los archivos de origen, las capas de Docker y los directorios almacenados en caché que se indican en la especificación de compilación). Esto es así por diseño y permite que los proyectos de la misma cuenta compartan instancias de flotas.

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

Por ejemplo, puede indicar un proyecto de compilación específico (*myBuildProject*) en su declaración utilizando su ARN de la siguiente manera:

```
"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"
```

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

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

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

```
"Resource": [
  "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject",
  "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject"
]
```

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

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

La AWS cuenta es propietaria de los recursos que se crean en la cuenta, independientemente de quién los haya creado. En concreto, el propietario del recurso es la AWS cuenta de 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 o un rol de IAM) que autentica la solicitud de creación de recursos. Los siguientes ejemplos ilustran cómo funciona:
+ Si utilizas las credenciales de la cuenta raíz de tu AWS cuenta para crear una regla, tu AWS cuenta es la propietaria del CodeBuild recurso.
+ Si creas un usuario en tu AWS cuenta y le concedes permisos para crear CodeBuild recursos, el usuario podrá crear CodeBuild recursos. Sin embargo, su AWS cuenta, a la que pertenece el usuario, es propietaria de los CodeBuild recursos.
+ Si crea un rol de IAM en su AWS cuenta con permisos para crear CodeBuild recursos, cualquier persona que pueda asumir el rol podrá crear CodeBuild recursos. Tu AWS cuenta, a la que pertenece el rol, es propietaria de los CodeBuild recursos.

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

Una política de permisos describe quién tiene acceso a qué recursos. 

**nota**  
En esta sección, se describe cómo se utiliza IAM en AWS CodeBuild. No se proporciona información detallada sobre el servicio de IAM. Para ver la documentación completa 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 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) en la *Guía del usuario de IAM*.

Las políticas que se asocian a una identidad de IAM se denominan políticas basadas en identidades (o políticas de IAM). Las políticas asociadas a un recurso se denominan políticas basadas en recursos. CodeBuild admite políticas basadas en la identidad y las políticas basadas en recursos para determinadas políticas de solo lectura con el fin de compartir recursos APIs entre cuentas.

### Acceso seguro a los buckets de S3
<a name="secure-s3-buckets"></a>

Le recomendamos encarecidamente que incluya los siguientes permisos en su función de IAM para comprobar que el bucket de S3 asociado a su CodeBuild proyecto es de su propiedad o de alguien de su confianza. Estos permisos no están incluidos en las políticas y funciones AWS administradas. Debe agregarlos usted. 
+  `s3:GetBucketAcl` 
+  `s3:GetBucketLocation` 

Si cambia el propietario de un bucket de S3 que se utiliza en el proyecto, debe asegurarse de que usted sigue siendo el propietario del bucket y, si no es así, actualizar los permisos en el rol de rol de IAM. Para obtener más información, consulte [Permita que los usuarios interactúen con CodeBuild](setting-up-service-permissions-group.md) y [CodeBuild Permiten interactuar con otros servicios AWS](setting-up-service-role.md). 

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

Para cada AWS CodeBuild recurso, el servicio define un conjunto de operaciones de API. Para conceder permisos para estas operaciones de API, CodeBuild define un conjunto de acciones que puede especificar en una política. Algunas operaciones de API pueden requerir permisos para más de una acción para poder realizar la operación de API. Para obtener más información, consulte [AWS CodeBuild recursos y operaciones](#arn-formats) y [AWS CodeBuild referencia de permisos](auth-and-access-control-permissions-reference.md).

A continuación, se indican los elementos básicos de la política:
+ **Recurso**: use un Nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política.
+ **Acción**: use palabras de clave de acción para identificar las operaciones del recurso que desea permitir o denegar. Por ejemplo, el permiso `codebuild:CreateProject` concede al usuario permiso para realizar la operación `CreateProject`.
+ **Efecto**: especifique el efecto (permitir o denegar) cuando el usuario solicite la acción específica. 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. Puede hacer esto para asegurarse de que un usuario no pueda tener acceso a un recurso, aunque otra política le otorgue acceso.
+ **Entidad principal**: en las políticas basadas en identidades (políticas de IAM), el usuario al que se asocia esta política es la entidad principal implícita. Para las políticas basadas en recursos, debe especificar el usuario, cuenta, servicio u otra entidad que desee que reciba permisos.

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

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

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

En este tema se ofrecen ejemplos de políticas basadas en identidad que muestran cómo un administrador de la cuenta puede asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y roles) y, de ese modo, conceder permisos para realizar operaciones en recursos de AWS CodeBuild .

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

**Topics**
+ [

## Permisos necesarios para usar la AWS CodeBuild consola
](#console-permissions)
+ [

## Permisos necesarios para conectarse AWS CodeBuild a Amazon Elastic Container Registry
](#ecr-policies)
+ [

## Permisos necesarios para que la AWS CodeBuild consola se conecte a los proveedores de origen
](#console-policies)
+ [

## AWS políticas gestionadas (predefinidas) para AWS CodeBuild
](#managed-policies)
+ [

## CodeBuild políticas y notificaciones gestionadas
](#notifications-permissions)
+ [

## CodeBuild actualizaciones de las políticas AWS gestionadas
](#security-iam-awsmanpol-updates)
+ [

## Ejemplos de políticas administradas por los clientes
](#customer-managed-policies)

A continuación se muestra un ejemplo de una política de permisos que permite a un usuario obtener información acerca de los proyectos de compilación únicamente en la región `us-east-2` de la cuenta `123456789012` para cualquier proyecto de compilación que empiece con el nombre `my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

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

El usuario que usa la AWS CodeBuild consola debe tener un conjunto mínimo de permisos que le permita describir otros AWS recursos de la AWS cuenta. Debe tener permisos de los siguientes servicios:
+ AWS CodeBuild
+ Amazon CloudWatch
+ CodeCommit (si está almacenando su código fuente en un AWS CodeCommit repositorio)
+ Amazon Elastic Container Registry (Amazon ECR) (si utiliza un entorno de compilación que se basa en una imagen de Docker en un repositorio de Amazon ECR)
**nota**  
El 26 de julio de 2022, se actualizó la política de IAM predeterminada. Para obtener más información, consulte [Permisos necesarios para conectarse AWS CodeBuild a Amazon Elastic Container Registry](#ecr-policies).
+ Amazon Elastic Container Service (Amazon ECS) (si utiliza un entorno de compilación que se basa en una imagen de Docker en un repositorio de Amazon ECR)
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Storage Service (Amazon S3)

Si crea una política de IAM que sea más restrictiva que los permisos mínimos necesarios, la consola no funcionará según lo previsto.

## Permisos necesarios para conectarse AWS CodeBuild a Amazon Elastic Container Registry
<a name="ecr-policies"></a>

El 26 de julio de 2022, AWS CodeBuild actualizó su política de IAM predeterminada para el permiso ECR de Amazon. Se han eliminado los permisos siguientes de la política predeterminada:

```
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload"
```

Para CodeBuild los proyectos que se crearon antes del 26 de julio de 2022, le recomendamos que actualice su política con la siguiente política de Amazon ECR:

```
"Action": [
    "ecr:BatchCheckLayerAvailability",
    "ecr:GetDownloadUrlForLayer",
    "ecr:BatchGetImage"
]
```

Para obtener más información sobre cómo actualizar sus políticas, consulte [Permita que los usuarios interactúen con CodeBuild](setting-up-service-permissions-group.md).

## Permisos necesarios para que la AWS CodeBuild consola se conecte a los proveedores de origen
<a name="console-policies"></a>

La AWS CodeBuild consola utiliza las siguientes acciones de la API para conectarse a los proveedores de fuentes (por ejemplo, GitHub los repositorios).
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

Puedes asociar proveedores de código fuente (como GitHub repositorios) a tus proyectos de compilación mediante la AWS CodeBuild consola. Para ello, primero debes añadir las acciones de API anteriores a las políticas de acceso de IAM asociadas al usuario que utilizas para acceder a la AWS CodeBuild consola.

Las acciones API `ListConnectedOAuthAccounts`, `ListRepositories` y `PersistOAuthToken` no están diseñadas para que puedan invocarse desde el código. Por lo tanto, estas acciones de la API no se incluyen en el archivo AWS CLI y AWS SDKs.

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

AWS aborda muchos casos de uso comunes al proporcionar políticas de IAM independientes que son creadas y administradas por. AWS Estas políticas AWS gestionadas conceden los permisos necesarios para los casos de uso más habituales, de forma que no tengas que investigar qué permisos son necesarios. Las políticas gestionadas CodeBuild también proporcionan permisos para realizar operaciones en otros servicios, como IAM, Amazon EC2 AWS CodeCommit, Amazon ECR, 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 `AWSCodeBuildAdminAccess` política es una política de usuario de nivel administrativo que permite a los usuarios con esta política crear y administrar reglas de CloudWatch eventos para compilaciones de proyectos y temas de Amazon SNS para notificaciones sobre eventos relacionados con proyectos (temas cuyos nombres llevan el prefijo`arn:aws:codebuild:`), así como administrar proyectos y grupos de informes en. CodeBuild 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*.

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

**AWSCodeBuildAdminAccess**  
Proporciona acceso completo e CodeBuild incluye permisos para administrar proyectos de CodeBuild compilación. 

**AWSCodeBuildDeveloperAccess**  
Proporciona acceso a la administración de proyectos de compilación, CodeBuild pero no la permite.

**AWSCodeBuildReadOnlyAccess**  
Proporciona acceso de solo lectura a. CodeBuild

Para acceder a los artefactos de salida de compilación que CodeBuild crea, también debe adjuntar la política AWS administrada denominada. `AmazonS3ReadOnlyAccess`

Para crear y administrar las funciones de CodeBuild servicio, también debe adjuntar la política AWS administrada denominada`IAMFullAccess`.

También puede crear sus propias políticas de IAM personalizadas para conceder permisos a las acciones y recursos de CodeBuild. Puede asociar estas políticas personalizadas a los usuarios o grupos de que requieran esos permisos.

**Topics**
+ [

### AWSCodeBuildAdminAccess
](#admin-access-policy)
+ [

### AWSCodeBuildDeveloperAccess
](#developer-access-policy)
+ [

### AWSCodeBuildReadOnlyAccess
](#read-only-access-policy)

### AWSCodeBuildAdminAccess
<a name="admin-access-policy"></a>

La `AWSCodeBuildAdminAccess` política proporciona acceso completo a los proyectos de CodeBuild construcción CodeBuild, incluidos los permisos para administrarlos. Aplica esta política solo a los usuarios de nivel administrativo para darles el control total sobre los CodeBuild proyectos, los grupos de informes y los recursos relacionados de tu AWS cuenta, incluida la posibilidad de eliminar proyectos y grupos de informes.

Para ver la política gestionada completa, consulte la referencia de políticas [ AWSCodeBuildAdminAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)gestionadas de IAM.

### AWSCodeBuildDeveloperAccess
<a name="developer-access-policy"></a>

La `AWSCodeBuildDeveloperAccess` política permite el acceso a todas las funciones de los recursos relacionados con los grupos de proyectos CodeBuild e informes, así como a los recursos relacionados con ellos. Esta política no permite a los usuarios eliminar CodeBuild proyectos o grupos de informes ni recursos relacionados en otros AWS servicios, como CloudWatch los eventos. Le recomendamos que aplique esta política a la mayoría de los usuarios.

Para ver la política gestionada completa, consulte [ AWSCodeBuildDeveloperAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)la referencia de políticas gestionadas de IAM.

### AWSCodeBuildReadOnlyAccess
<a name="read-only-access-policy"></a>

La `AWSCodeBuildReadOnlyAccess` política otorga acceso de solo lectura a los recursos relacionados de otros servicios CodeBuild y a los recursos relacionados. AWS Aplique esta política a los usuarios que pueden consultar y ejecutar compilaciones, consultar proyectos y consultar grupos de informes, pero que no pueden realizar ningún cambio en ellos. 

Para ver la política gestionada completa, consulte la referencia [ AWSCodeBuildReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)de políticas gestionadas de IAM.

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

CodeBuild admite las notificaciones, que pueden notificar a los usuarios los cambios importantes en los proyectos de construcción. Las políticas gestionadas CodeBuild 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 solo lectura
<a name="notifications-readonly"></a>

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

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "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 `AWSCodeBuildDeveloperAccess` 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:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "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 las notificaciones de IAM, consulte [Identity and Access Management para notificaciones de AWS CodeStar](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

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

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




| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess` y `AWSCodeBuildDeveloperAccess`: actualización de políticas existentes  |  CodeBuild agregó el `ssmmessages:OpenDataChannel` permiso a estas políticas para admitir la depuración interactiva de compilaciones del Session Manager. Las `AWSCodeBuildDeveloperAccess` políticas `AWSCodeBuildAdminAccess` y ahora incluyen la `ssmmessages:OpenDataChannel` acción para que los recursos de sesión del administrador de sesiones (`arn:aws:ssm:*:*:session/*`) respalden la aplicación de SiGv4 en esta WebSocket API.  | 1 de diciembre de 2025 | 
|  `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` y `AWSCodeBuildReadOnlyAccess`: actualización de políticas existentes  |  CodeBuild actualizó un recurso sobre estas políticas. Las políticas `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` y `AWSCodeBuildReadOnlyAccess` se han modificado para actualizar un recurso existente. El recurso original `arn:aws:codebuild:*` se ha actualizado a `arn:aws:codebuild:*:*:project/*`.  | 15 de noviembre de 2024 | 
|  `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` y `AWSCodeBuildReadOnlyAccess`: actualización de políticas existentes  |  CodeBuild agregó un recurso a estas políticas para respaldar el cambio de AWS CodeConnections marca. Las políticas `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` y `AWSCodeBuildReadOnlyAccess` se han modificado para agregar un recurso, `arn:aws:codeconnections:*:*:*`.  | 18 de abril de 2024 | 
|  `AWSCodeBuildAdminAccess` y `AWSCodeBuildDeveloperAccess`: actualización de políticas existentes  |  CodeBuild agregó un permiso a estas políticas para admitir un tipo de notificación adicional utilizando Amazon Q Developer en aplicaciones de chat. Las políticas de `AWSCodeBuildAdminAccess` y `AWSCodeBuildDeveloperAccess` se han modificado para añadir un permiso, `chatbot:ListMicrosoftTeamsChannelConfigurations`.  | 16 de mayo de 2023 | 
|  CodeBuild comenzó a rastrear los cambios  |  CodeBuild comenzó a realizar un seguimiento de los cambios de sus políticas AWS gestionadas.  | 16 de mayo de 2021 | 

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

En esta sección, encontrará ejemplos de políticas de usuario que conceden permisos para acciones de AWS CodeBuild . Estas políticas funcionan cuando se utiliza la CodeBuild API AWS SDKs, o. AWS CLI Cuando se utiliza la consola, se deben conceder permisos adicionales específicos de la consola. Para obtener información, consulte [Permisos necesarios para usar la AWS CodeBuild consola](#console-permissions).

Puede utilizar los siguientes ejemplos de políticas de IAM para limitar el CodeBuild acceso de sus usuarios y funciones.

**Topics**
+ [

### Permitir que un usuario obtenga información sobre los proyectos de compilación
](#customer-managed-policies-example-batch-get-projects)
+ [

### Cómo permitir a un usuario obtener información sobre las flotas
](#customer-managed-policies-get-information-about-fleets)
+ [

### Permitir que un usuario obtenga información sobre los grupos de informes
](#customer-managed-policies-get-information-about-report-group)
+ [

### Permitir que un usuario obtenga información sobre los informes
](#customer-managed-policies-get-information-about-reports)
+ [

### Permitir que un usuario pueda crear proyectos de compilación
](#customer-managed-policies-example-create-project)
+ [

### Cómo permitir a un usuario crear una flota
](#customer-managed-policies-example-create-fleet)
+ [

### Permitir que un usuario pueda crear un grupo de informes
](#customer-managed-policies-example-create-report-group)
+ [

### Cómo permitir a un usuario eliminar una flota
](#customer-managed-policies-example-delete-fleet)
+ [

### Permitir que un usuario pueda eliminar un grupo de informes
](#customer-managed-policies-example-delete-report-group)
+ [

### Permitir que un usuario pueda eliminar un informe
](#customer-managed-policies-example-delete-report)
+ [

### Permitir que un usuario pueda eliminar proyectos de compilación
](#customer-managed-policies-example-delete-project)
+ [

### Permitir que un usuario pueda obtener una lista con los nombres de los proyectos de compilación
](#customer-managed-policies-example-list-projects)
+ [

### Permitir que un usuario pueda cambiar la información de los proyectos de compilación
](#customer-managed-policies-example-update-project)
+ [

### Cómo permitir a un usuario cambiar una flota
](#customer-managed-policies-example-change-fleet)
+ [

### Permitir que un usuario pueda cambiar un grupo de informes
](#customer-managed-policies-example-change-report-group)
+ [

### Permitir que un usuario obtenga información sobre las compilaciones
](#customer-managed-policies-example-batch-get-builds)
+ [

### Permite a un usuario obtener una lista de compilaciones IDs para un proyecto de compilación
](#customer-managed-policies-example-list-builds-for-project)
+ [

### Permitir a un usuario obtener una lista de compilaciones IDs
](#customer-managed-policies-example-list-builds)
+ [

### Cómo permitir a un usuario obtener una lista de flotas
](#customer-managed-policies-example-get-list-of-fleets)
+ [

### Permitir que a un usuario pueda obtener una lista de grupos de informes
](#customer-managed-policies-example-get-list-of-report-groups)
+ [

### Permitir que un usuario pueda obtener una lista de informes
](#customer-managed-policies-example-get-list-of-reports)
+ [

### Permitir que un usuario pueda obtener una lista con los informes de un grupo de informes
](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [

### Permitir que un usuario pueda obtener una lista con los casos de prueba de un informe
](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [

### Permitir que un usuario pueda comenzar a ejecutar compilaciones
](#customer-managed-policies-example-start-build)
+ [

### Permitir que un usuario pueda intentar detener las compilaciones
](#customer-managed-policies-example-stop-build)
+ [

### Permitir que un usuario pueda intentar eliminar compilaciones
](#customer-managed-policies-example-delete-builds)
+ [

### Permita que un usuario obtenga información sobre las imágenes de Docker administradas por CodeBuild
](#customer-managed-policies-example-list-curated-environment-images)
+ [

### Cómo permitir a un usuario agregar una política de permisos para un rol de servicio de flota
](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [

### Permitir el CodeBuild acceso a AWS los servicios necesarios para crear una interfaz de red de VPC
](#customer-managed-policies-example-create-vpc-network-interface)
+ [

### Utilice una declaración de denegación para evitar la desconexión AWS CodeBuild de los proveedores de origen
](#customer-managed-policies-example-deny-disconnect)

### Permitir que un usuario obtenga información sobre los proyectos de compilación
<a name="customer-managed-policies-example-batch-get-projects"></a>

A continuación se muestra una instrucción de política de ejemplo que permite a un usuario obtener información acerca de los proyectos de compilación en la región `us-east-2` de la cuenta `123456789012` para cualquier proyecto de compilación que empiece con el nombre `my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"      
    }
  ]
}
```

------

### Cómo permitir a un usuario obtener información sobre las flotas
<a name="customer-managed-policies-get-information-about-fleets"></a>

El ejemplo siguiente de declaración de política permite a un usuario obtener información sobre las flotas en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetFleets",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Permitir que un usuario obtenga información sobre los grupos de informes
<a name="customer-managed-policies-get-information-about-report-group"></a>

El ejemplo siguiente de instrucción de política permite a un usuario obtener información sobre grupos de informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReportGroups",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Permitir que un usuario obtenga información sobre los informes
<a name="customer-managed-policies-get-information-about-reports"></a>

El ejemplo siguiente de instrucción de política permite a un usuario obtener información sobre informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReports",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda crear proyectos de compilación
<a name="customer-managed-policies-example-create-project"></a>

El siguiente ejemplo de declaración de política permite a un usuario crear proyectos de construcción con cualquier nombre, pero solo en la `us-east-2` región como cuenta `123456789012` y únicamente con la función de CodeBuild servicio especificada:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

El siguiente ejemplo de declaración de política permite a un usuario crear proyectos de construcción con cualquier nombre, pero solo en la `us-east-2` región como cuenta `123456789012` y únicamente con el rol de CodeBuild servicio especificado. También establece que el usuario solo puede usar el rol de servicio especificado con AWS CodeBuild ningún otro AWS servicio.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole",
      "Condition": {
          "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"}
      }
    }
  ]
}
```

------

### Cómo permitir a un usuario crear una flota
<a name="customer-managed-policies-example-create-fleet"></a>

El ejemplo siguiente de declaración de política permite a un usuario crear una flota en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda crear un grupo de informes
<a name="customer-managed-policies-example-create-report-group"></a>

El ejemplo siguiente de la instrucción de una política permite a un usuario crear un grupo de informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Cómo permitir a un usuario eliminar una flota
<a name="customer-managed-policies-example-delete-fleet"></a>

El ejemplo siguiente de declaración de política permite a un usuario eliminar una flota en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda eliminar un grupo de informes
<a name="customer-managed-policies-example-delete-report-group"></a>

El ejemplo siguiente de instrucción de política permite a un usuario eliminar un grupo de informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda eliminar un informe
<a name="customer-managed-policies-example-delete-report"></a>

El ejemplo siguiente de instrucción de política permite a un usuario eliminar un informe en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReport",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda eliminar proyectos de compilación
<a name="customer-managed-policies-example-delete-project"></a>

A continuación se muestra una instrucción de política de ejemplo que permite a un usuario eliminar proyectos de compilación en la región `us-east-2` de la cuenta `123456789012` para cualquier proyecto de compilación que empiece con el nombre `my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Permitir que un usuario pueda obtener una lista con los nombres de los proyectos de compilación
<a name="customer-managed-policies-example-list-projects"></a>

La siguiente instrucción de política de ejemplo permite a un usuario obtener una lista de nombres de proyectos de compilación de la misma cuenta:

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

****  

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

------

### Permitir que un usuario pueda cambiar la información de los proyectos de compilación
<a name="customer-managed-policies-example-update-project"></a>

La siguiente instrucción de política de ejemplo permite a un usuario cambiar la información de los proyectos de compilación con cualquier nombre, pero solo en la región `us-east-2` de la cuenta `123456789012` y solo mediante el rol de servicio de AWS CodeBuild especificado:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

### Cómo permitir a un usuario cambiar una flota
<a name="customer-managed-policies-example-change-fleet"></a>

El ejemplo siguiente de declaración de política permite a un usuario cambiar una flota en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda cambiar un grupo de informes
<a name="customer-managed-policies-example-change-report-group"></a>

El ejemplo siguiente de instrucción de política permite a un usuario cambiar un grupo de informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Permitir que un usuario obtenga información sobre las compilaciones
<a name="customer-managed-policies-example-batch-get-builds"></a>

La siguiente instrucción de política de ejemplo permite a un usuario obtener información acerca de las compilaciones en la región `us-east-2` de la cuenta `123456789012` para los proyectos de compilación denominados `my-build-project` y `my-other-build-project`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetBuilds",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### Permite a un usuario obtener una lista de compilaciones IDs para un proyecto de compilación
<a name="customer-managed-policies-example-list-builds-for-project"></a>

El siguiente ejemplo de declaración de política permite al usuario obtener una lista de compilaciones de la `us-east-2` región `123456789012` para tener IDs en cuenta los proyectos de construcción nombrados `my-build-project` y`my-other-build-project`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuildsForProject",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### Permitir a un usuario obtener una lista de compilaciones IDs
<a name="customer-managed-policies-example-list-builds"></a>

El siguiente ejemplo de declaración de política permite al usuario obtener una lista de todas las compilaciones IDs de la misma cuenta:

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

****  

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

------

### Cómo permitir a un usuario obtener una lista de flotas
<a name="customer-managed-policies-example-get-list-of-fleets"></a>

El ejemplo siguiente de declaración de política permite a un usuario obtener una lista de las flotas en la región `us-east-2` para la cuenta `123456789012`:

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

****  

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

------

### Permitir que a un usuario pueda obtener una lista de grupos de informes
<a name="customer-managed-policies-example-get-list-of-report-groups"></a>

El ejemplo siguiente de instrucción de política permite a un usuario obtener una lista de los grupos de informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

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

------

### Permitir que un usuario pueda obtener una lista de informes
<a name="customer-managed-policies-example-get-list-of-reports"></a>

El ejemplo siguiente de instrucción de política permite a un usuario obtener una lista de los informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

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

------

### Permitir que un usuario pueda obtener una lista con los informes de un grupo de informes
<a name="customer-managed-policies-example-get-list-of-reports-for-report-group"></a>

El ejemplo siguiente de instrucción de política permite a un usuario obtener una lista de informes de un grupos de informes en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportsForReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda obtener una lista con los casos de prueba de un informe
<a name="customer-managed-policies-example-get-list-of-test-cases-for-report"></a>

La siguiente instrucción de política de ejemplo permite a un usuario obtener una lista de casos de prueba para un informe en la región `us-east-2` para la cuenta `123456789012`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DescribeTestCases",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### Permitir que un usuario pueda comenzar a ejecutar compilaciones
<a name="customer-managed-policies-example-start-build"></a>

La siguiente instrucción de política de ejemplo permite a un usuario ejecutar compilaciones en la región `us-east-2` de la cuenta `123456789012` para proyectos de compilación que empiezan con el nombre `my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StartBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Permitir que un usuario pueda intentar detener las compilaciones
<a name="customer-managed-policies-example-stop-build"></a>

A continuación se muestra una instrucción de política de ejemplo que permite a un usuario intentar detener la ejecución de compilaciones únicamente en la región `us-east-2` de la cuenta `123456789012` para cualquier proyecto de compilación que empiece con el nombre `my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StopBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Permitir que un usuario pueda intentar eliminar compilaciones
<a name="customer-managed-policies-example-delete-builds"></a>

La siguiente instrucción de la política de ejemplo permite que un usuario pueda intentar eliminar compilaciones únicamente en la región `us-east-2` de la cuenta `123456789012` para cualquier proyecto de compilación que empiece con el nombre `my`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchDeleteBuilds",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### Permita que un usuario obtenga información sobre las imágenes de Docker administradas por CodeBuild
<a name="customer-managed-policies-example-list-curated-environment-images"></a>

La siguiente instrucción de política de ejemplo permite a un usuario obtener información acerca de todas las imágenes de Docker administradas por CodeBuild:

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

****  

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

------

### Cómo permitir a un usuario agregar una política de permisos para un rol de servicio de flota
<a name="customer-managed-policies-example-permission-policy-fleet-service-role"></a>

El ejemplo siguiente de declaración de política de recursos permite a un usuario agregar una política de permisos de VPC para un rol de servicio de flota:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeBuildFleetVpcCreateNI",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                "arn:aws:ec2:us-west-2:111122223333:security-group/security-group-id-1",
                "arn:aws:ec2:us-west-2:111122223333:network-interface/*"
            ]
        },
        {
            "Sid": "CodeBuildFleetVpcPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CodeBuildFleetVpcNIPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1"
                    ]
                }
            }
        }
    ]
}
```

------

El ejemplo siguiente de declaración de política de recursos permite a un usuario agregar una política de Imágenes gestionadas por Amazon (AMI) para un rol de servicio de flota:

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

****  

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

------

El ejemplo siguiente de declaración de política de confianza permite a un usuario agregar una política de permisos para un rol de servicio de flota:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CodeBuildFleetVPCTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "codebuild.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

### Permitir el CodeBuild acceso a AWS los servicios necesarios para crear una interfaz de red de VPC
<a name="customer-managed-policies-example-create-vpc-network-interface"></a>

El siguiente ejemplo de declaración de política concede AWS CodeBuild permiso para crear una interfaz de red en una VPC con dos subredes:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:AuthorizedService": "codebuild.amazonaws.com"
                },
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-2"
                    ]
                }
            }
        }
    ]
}
```

------

### Utilice una declaración de denegación para evitar la desconexión AWS CodeBuild de los proveedores de origen
<a name="customer-managed-policies-example-deny-disconnect"></a>

 La siguiente instrucción de política de ejemplo utiliza una instrucción de denegación para evitar que AWS CodeBuild se desconecte de los proveedores de código fuente. Utiliza `codebuild:DeleteOAuthToken`, que es lo contrario de `codebuild:PersistOAuthToken` y `codebuild:ImportSourceCredentials`, para establecer conexión con los proveedores de código fuente. Para obtener más información, consulte [Permisos necesarios para que la AWS CodeBuild consola se conecte a los proveedores de origen](#console-policies). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "codebuild:DeleteOAuthToken",
      "Resource": "*"
    }
  ]
}
```

------

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

Puedes usar claves AWS de condición generales en tus AWS CodeBuild políticas para expresar las condiciones. Para ver una lista, consulte [Claves disponibles](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) en la *Guía de usuario de IAM*.

Las acciones se especifican en el campo `Action` de la política. Para especificar una acción, use el prefijo `codebuild:` seguido del nombre de operación de API (por ejemplo, `codebuild:CreateProject` y `codebuild:StartBuild`). Para especificar varias acciones en una única instrucción, sepárelas con comas (por ejemplo, `"Action": [ "codebuild:CreateProject", "codebuild:StartBuild" ]`).

**Uso de caracteres comodín**

Debe especificar un ARN, con o sin un carácter comodín (\$1), como el valor del recurso en el campo `Resource` de la política. Puede utilizar un carácter comodín para especificar varias acciones o recursos. Por ejemplo, `codebuild:*` especifica todas CodeBuild las acciones y `codebuild:Batch*` especifica todas CodeBuild las acciones que comienzan por la palabra`Batch`. El siguiente ejemplo otorga acceso a todos los proyectos de compilación con nombres que comienzan por `my`: 

```
arn:aws:codebuild:us-east-2:123456789012:project/my*
```<a name="actions-related-to-objects-table"></a>CodeBuild Operaciones de la API y permisos necesarios para las acciones

BatchDeleteBuilds  
 **Acción:** `codebuild:BatchDeleteBuilds`   
Necesario para eliminar compilaciones.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetBuilds  
 **Acción:** `codebuild:BatchGetBuilds`   
Necesario para obtener información acerca de las compilaciones.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetProjects  
 **Acción:** `codebuild:BatchGetProjects`   
Necesario para obtener información acerca de los proyectos de compilación.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetReportGroups  
 **Acción:** `codebuild:BatchGetReportGroups`   
Necesario para obtener información sobre grupos de informes.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchGetReports  
 **Acción:** `codebuild:BatchGetReports`   
Necesario para obtener información sobre informes.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchPutTestCases¹  
 **Acción:** `codebuild:BatchPutTestCases`   
Necesario para crear o actualizar un informe de prueba.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateProject  
 **Acciones:** `codebuild:CreateProject`, `iam:PassRole`   
Necesario para crear proyectos de compilación.  
 **Recursos:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

CreateReport¹  
 **Acción:** `codebuild:CreateReport`   
Necesario para crear un informe de prueba.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateReportGroup  
 **Acción:** `codebuild:CreateReportGroup`   
Necesario para crear un grupo de informes.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateWebhook  
 **Acción:** `codebuild:CreateWebhook`   
Se necesita para crear un webhook.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteProject  
 **Acción:** `codebuild:DeleteProject`   
Necesario para eliminar un CodeBuild proyecto.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteReport  
 **Acción:** `codebuild:DeleteReport`   
Necesario para eliminar un informe.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteReportGroup  
 **Acción:** `codebuild:DeleteReportGroup`   
Necesario para eliminar un grupo de informes.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteSourceCredentials  
 **Acción:** `codebuild:DeleteSourceCredentials`   
Necesario para eliminar un conjunto de `SourceCredentialsInfo` objetos que contienen información sobre las credenciales de un GitHub repositorio de GitHub Enterprise Server o Bitbucket.   
 **Recurso:** `*` 

DeleteWebhook  
 **Acción:** `codebuild:DeleteWebhook`   
Se necesita para crear un webhook.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DescribeTestCases  
 **Acción:** `codebuild:DescribeTestCases`   
Necesario para devolver una lista paginada de casos de prueba.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

ImportSourceCredentials  
 **Acción:** `codebuild:ImportSourceCredentials`   
Necesario para importar un conjunto de `SourceCredentialsInfo` objetos que contienen información sobre las credenciales de un GitHub repositorio de GitHub Enterprise Server o Bitbucket.   
 **Recurso:** `*` 

InvalidateProjectCache  
 **Acción:** `codebuild:InvalidateProjectCache`   
Necesario para restablecer la caché de un proyecto.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListBuildBatches  
 **Acción:** `codebuild:ListBuildBatches`   
Necesario para obtener una lista del lote IDs de compilación.  
 **Recurso:** `*` 

ListBuildBatchesForProject  
 **Acción:** `codebuild:ListBuildBatchesForProject`   
Necesario para obtener una lista de lotes de construcción IDs para un proyecto específico.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name` 

ListBuilds  
 **Acción:** `codebuild:ListBuilds`   
Necesario para obtener una lista de construcciones IDs.  
 **Recurso:** `*` 

ListBuildsForProject  
 **Acción:** `codebuild:ListBuildsForProject`   
Necesario para obtener una lista de construcciones IDs para un proyecto de construcción.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListCuratedEnvironmentImages  
 **Acción:** `codebuild:ListCuratedEnvironmentImages`   
Necesario para obtener información sobre todas las imágenes de Docker administradas por AWS CodeBuild.   
 **Recurso:** `*` (es necesario, pero no hace referencia a un recurso de AWS atribuible) 

ListProjects  
 **Acción:** `codebuild:ListProjects`   
Necesario para obtener una lista de nombres de proyectos de compilación.  
 **Recurso:** `*` 

ListReportGroups  
 **Acción:** `codebuild:ListReportGroups`   
Necesario para obtener una lista de grupos de informes.  
 **Recurso:** `*` 

ListReports  
 **Acción:** `codebuild:ListReports`   
Necesario para obtener una lista de informes.  
 **Recurso:** `*` 

ListReportsForReportGroup  
 **Acción:** `codebuild:ListReportsForReportGroup`   
Necesario para obtener una lista de informes de un grupo de informes.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

RetryBuild  
**Acción:** `codebuild:RetryBuild`   
Required to retry builds.  
**Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name `

StartBuild  
 **Acción:** `codebuild:StartBuild`   
Necesario para empezar a ejecutar compilaciones.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

StopBuild  
 **Acción:** `codebuild:StopBuild`   
Necesario para intentar detener la ejecución de compilaciones.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

UpdateProject  
 **Acciones:** `codebuild:UpdateProject`, `iam:PassRole`   
Necesario para cambiar la información sobre las compilaciones.  
 **Recursos:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateProjectVisibility  <a name="UpdateProjectVisibility"></a>
 **Acciones:** `codebuild:UpdateProjectVisibility`, `iam:PassRole`   
Necesario para cambiar la visibilidad pública de las compilaciones de un proyecto.  
 **Recursos:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateReport¹  
 **Acción:** `codebuild:UpdateReport`   
Necesario para crear o actualizar un informe de prueba.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateReportGroup  
 **Acción:** `codebuild:UpdateReportGroup`   
Necesario para actualizar un grupo de informes.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateWebhook  
 **Acción:** `codebuild:UpdateWebhook`   
Se necesita para actualizar un webhook.  
 **Recurso:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

¹ Se utiliza solo para permisos. No hay API para esta acción.

# Uso de etiquetas para controlar el acceso a AWS CodeBuild los recursos
<a name="auth-and-access-control-using-tags"></a>

Las condiciones de las declaraciones de política de IAM forman parte de la sintaxis que se puede utilizar para especificar los permisos para las acciones CodeBuild basadas en proyectos. Puede crear una política que permita o deniegue acciones sobre los proyectos en función de las etiquetas asociadas a dichos proyectos y aplicar después esas políticas a los grupos de IAM que configure para administrar usuarios. Para obtener información sobre cómo aplicar etiquetas a un proyecto mediante la consola o consulte AWS CLI. [Creación de un proyecto de compilación en AWS CodeBuild](create-project.md) Para obtener información sobre cómo aplicar etiquetas mediante el CodeBuild SDK, consulte [CreateProject ](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax)la *referencia sobre las [etiquetas](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) en la CodeBuild API*. Para obtener información sobre el uso de etiquetas para controlar el acceso a AWS los recursos, consulte [Control del acceso a AWS los recursos mediante etiquetas de recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) en la *Guía del usuario de IAM*.

**importante**  
Cuando se usa la característica de capacidad reservada, otros proyectos de la misma cuenta pueden acceder a los datos almacenados en caché en las instancias de flota (incluidos los archivos de origen, las capas de Docker y los directorios almacenados en caché que se indican en la especificación de compilación). Esto es así por diseño y permite que los proyectos de la misma cuenta compartan instancias de flotas.

**Example Ejemplo 1: Limite las acciones CodeBuild del proyecto en función de las etiquetas de los recursos**  
 En el ejemplo siguiente, se deniegan todas las acciones `BatchGetProjects` en los proyectos etiquetados con la clave `Environment` y el valor de clave `Production`. El administrador de un usuario debe asociar esta política de IAM, junto con la política de usuario administrada, a los usuarios de que no estén autorizados. La clave de condición `aws:ResourceTag` se utiliza para controlar el acceso a los recursos en función de sus etiquetas.     
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetProjects"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:ResourceTag/Environment": "Production"
        }
      }
    }
  ]
}
```

**Example Ejemplo 2: Limitar las acciones CodeBuild del proyecto en función de las etiquetas de solicitud**  
La siguiente política deniega a los usuarios el permiso para la acción `CreateProject` si la solicitud contiene una etiqueta con la clave `Environment` y el valor de clave `Production`. Además, la política impide que estos usuarios no autorizados puedan modificar los proyectos utilizando la clave de condición `aws:TagKeys` y no permite `UpdateProject` si la solicitud contiene una etiqueta con la clave `Environment`. Un administrador debe asociar esta política de IAM, junto con la política de usuario administrada, a los usuarios que no estén autorizados para realizar estas acciones. (La clave de condición `aws:RequestTag` se utiliza para controlar qué etiquetas se pueden pasar en una solicitud de IAM).    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:CreateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:RequestTag/Environment": "Production"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:UpdateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["Environment"]
        }
      }
    }
  ]
}
```

**Example Ejemplo 3: denegar o permitir acciones en grupos de informes en función de etiquetas de recursos**  
Puede crear una política que permita o deniegue acciones en CodeBuild los recursos (proyectos y grupos de informes) en función de las AWS etiquetas asociadas a esos recursos y, a continuación, aplicar esas políticas a los grupos de IAM que configure para administrar los usuarios. Por ejemplo, puede crear una política que deniegue todas CodeBuild las acciones en cualquier grupo de informes con la clave de AWS etiqueta `Status` y el valor clave de y`Secret`, a continuación, aplicar esa política al grupo de IAM que creó para desarrolladores generales ()*Developers*. A continuación, debe asegurarse de que los desarrolladores que trabajan en esos grupos de informes 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 CodeBuild las acciones en los grupos de informes etiquetados con la clave `Status` y el valor clave de`Secret`:    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetReportGroups",
        "codebuild:CreateReportGroup",
        "codebuild:DeleteReportGroup",
        "codebuild:ListReportGroups",
        "codebuild:ListReportsForReportGroup",
        "codebuild:UpdateReportGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    }
  ]
}
```

**Example Ejemplo 4: Limitar CodeBuild las acciones AWSCode BuildDeveloperAccess a las etiquetas de recursos**  
Puede crear políticas que permitan CodeBuild realizar acciones en todos los grupos de informes y proyectos que no estén etiquetados con etiquetas específicas. Por ejemplo, la siguiente política permite el equivalente de permisos [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) para todos los grupos de informes y proyectos excepto los etiquetados con las etiquetas especificadas:    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codebuild:StartBuild",
            "codebuild:StopBuild",
            "codebuild:BatchGet*",
            "codebuild:GetResourcePolicy",
            "codebuild:DescribeTestCases",
            "codebuild:List*",
            "codecommit:GetBranch",
            "codecommit:GetCommit",
            "codecommit:GetRepository",
            "codecommit:ListBranches",
            "cloudwatch:GetMetricStatistics",
            "events:DescribeRule",
            "events:ListTargetsByRule",
            "events:ListRuleNamesByTarget",
            "logs:GetLogEvents",
            "s3:GetBucketLocation",
            "s3:ListAllMyBuckets"
         ],
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:ResourceTag/Status": "Secret",
               "aws:ResourceTag/Team": "Saanvi"
            }
         }
      }
   ]
}
```

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

La AWS CodeBuild consola necesita el `ListRepositories` permiso para mostrar una lista de los repositorios de su AWS cuenta en la AWS región en la 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 tu AWS cuenta de la AWS región en la que has 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, algunos recursos no se devolverán si hay un permiso `Deny` explícito para ver esos recursos.

# Validación de conformidad para AWS CodeBuild
<a name="compliance-validation"></a>

Para saber si uno Servicio de AWS está dentro del ámbito de aplicación de programas de cumplimiento específicos, consulte [Servicios de AWS Alcance por programa de cumplimiento Servicios de AWS](https://aws.amazon.com/compliance/services-in-scope/) de cumplimiento y elija el programa de cumplimiento que le interese. Para obtener información general, consulte Programas de [AWS cumplimiento > Programas AWS](https://aws.amazon.com/compliance/programs/) .

Puede descargar informes de auditoría de terceros utilizando AWS Artifact. Para obtener más información, consulte [Descarga de informes en AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Su responsabilidad de cumplimiento al Servicios de AWS utilizarlos viene determinada por la confidencialidad de sus datos, los objetivos de cumplimiento de su empresa y las leyes y reglamentos aplicables. Para obtener más información sobre su responsabilidad de conformidad al utilizarlos Servicios de AWS, consulte [AWS la documentación de seguridad](https://docs.aws.amazon.com/security/).

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

La infraestructura AWS global se basa en AWS regiones y zonas de disponibilidad. AWS Las regiones proporcionan varias zonas de disponibilidad aisladas y separadas físicamente, que están conectadas mediante redes de baja latencia, alto rendimiento y alta redundancia. Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datos que realizan una conmutación por error automática entre zonas de disponibilidad sin interrupciones. Las zonas de disponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que las infraestructuras tradicionales de centros de datos únicos o múltiples. 

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

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

Como servicio gestionado, AWS CodeBuild está protegido por la seguridad de la red AWS global. Para obtener información sobre los servicios AWS de seguridad y cómo se AWS protege la infraestructura, consulte [Seguridad AWS en la nube](https://aws.amazon.com/security/). Para diseñar su AWS entorno utilizando las mejores prácticas de seguridad de la infraestructura, consulte [Protección de infraestructuras en un marco](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) de buena * AWS arquitectura basado en el pilar de la seguridad*.

Utiliza las llamadas a la API AWS publicadas para acceder a CodeBuild 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.

# Acceda a su proveedor de origen en CodeBuild
<a name="access-tokens"></a>

Para GitHub GitHub Enterprise Server, se utiliza un token de acceso personal, un secreto de Secrets Manager, una conexión o una OAuth aplicación para acceder al proveedor de origen. En Bitbucket, utilizas un token de acceso, una contraseña de aplicación, un secreto de Secrets Manager, una conexión o una OAuth aplicación para acceder al proveedor de origen. 

**Topics**
+ [

# Creación y almacenamiento de un token en un secreto de Secrets Manager
](asm-create-secret.md)
+ [

# GitHub y acceso a GitHub Enterprise Server en CodeBuild
](access-tokens-github-overview.md)
+ [

# Acceda a Bitbucket en CodeBuild
](access-tokens-bitbucket-overview.md)
+ [

# GitLab acceder en CodeBuild
](access-tokens-gitlab-overview.md)

# Creación y almacenamiento de un token en un secreto de Secrets Manager
<a name="asm-create-secret"></a>

Si decide usar Secrets Manager para almacenar su token de acceso, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo. Para crear un secreto, haga lo siguiente:

------
#### [ Consola de administración de AWS ]

**Para crear un secreto de Secrets Manager en Consola de administración de AWS**

1. En el **caso del proveedor de código fuente **GitHub****, selecciona **Bitbucket** o **GitHub Enterprise**.

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija **Credencial de origen predeterminada** para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no está conectado a su proveedor de origen, elija **Administrar la credencial de origen predeterminada**.

     1. Para el tipo de **credencial, elige un tipo** de credencial que no sea. **CodeConnections**

     1. En **Servicio**, elija **Secrets Manager** y para **Secretos** elija **Nuevo secreto**.

     1. En **Nombre del secreto**, especifique el nombre de su secreto.

     1. En **Descripción del secreto (opcional)**, escriba una descripción para su secreto.

     1. En función del proveedor de origen que seleccione, especifique su token o nombre de usuario y la contraseña de aplicación y elija **Guardar**.
   + Elija **Credencial de origen personalizada** a fin de usar una credencial de este tipo para anular la configuración predeterminada de su cuenta.

     1. Para el tipo de **credencial, elija un tipo** de credencial que no sea. **CodeConnections**

     1. En **Conexión**, elija **Crear un secreto**.

     1. En **Nombre del secreto**, especifique el nombre de su secreto.

     1. En **Descripción del secreto (opcional)**, escriba una descripción para su secreto.

     1. En función del proveedor de origen que haya elegido, especifique su token o nombre de usuario y la contraseña de aplicación y elija **Crear**.

------
#### [ AWS CLI ]

**Para crear un secreto de Secrets Manager en AWS CLI**
+ Abra un terminal (Linux, macOS o Unix) o un símbolo del sistema (Windows). Utilice el AWS CLI para ejecutar el **create-secret** comando Secrets Manager.

  ```
  aws secretsmanager create-secret --region <aws-region> \
              --name '<secret-name>' \
              --description '<secret-description>' \
              --secret-string '{
                  "ServerType":"<server-type>",
                  "AuthType":"<auth-type>",
                  "Token":"<token>"
                  }' \
              --tags Key=codebuild:source,Value='' \
                  Key=codebuild:source:type,Value=<type> \
                  Key=codebuild:source:provider,Value=<provider>
  ```

  Los secretos de Secrets Manager que CodeBuild acepte deben estar en la misma cuenta y AWS región que el CodeBuild proyecto y deben estar en el siguiente formato JSON:

  ```
  {
              "ServerType": ServerType,
              "AuthType: AuthType,
              "Token": string,
              "Username": string // Optional and is only used for Bitbucket app password
          }
  ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/asm-create-secret.html)

  Además, CodeBuild utiliza las siguientes etiquetas de recursos en el secreto para garantizar que los secretos se puedan seleccionar fácilmente al crear o editar proyectos.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/asm-create-secret.html)

------

# GitHub y acceso a GitHub Enterprise Server en CodeBuild
<a name="access-tokens-github-overview"></a>

Para GitHub ello, puedes usar un token de acceso personal, una OAuth aplicación, un secreto de Secrets Manager o una conexión de GitHub aplicación para acceder al proveedor de origen. Para GitHub Enterprise Server, puedes usar un token de acceso personal, un secreto de Secrets Manager o una conexión de GitHub aplicación para acceder al proveedor de origen.

**Topics**
+ [

# GitHub Conexiones de aplicaciones para GitHub un servidor GitHub empresarial
](connections-github-app.md)
+ [

# GitHub y un token de acceso a GitHub Enterprise Server
](access-tokens-github.md)
+ [

# Aplicación GitHub OAuth
](oauth-app-github.md)

# GitHub Conexiones de aplicaciones para GitHub un servidor GitHub empresarial
<a name="connections-github-app"></a>

Puede usar GitHub la aplicación para conectarse con CodeBuild. GitHub Las conexiones de aplicaciones son compatibles a través de [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

El acceso del proveedor de origen te permite activar una compilación suscribiéndote al [GitHub eventos de webhook](github-webhook.md) uso [ CreateWebhook](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateWebhook.html)o al uso [Tutorial: Configurar un ejecutor de CodeBuild Actions alojado GitHub](action-runner.md) en CodeBuild.

**nota**  
CodeConnections está disponible en menos regiones que. CodeBuild Puede utilizar conexiones entre regiones en CodeBuild. Las conexiones creadas en regiones de suscripción no se pueden usar en otras regiones. Para obtener más información, consulte [Puntos de conexión y cuotas de AWS CodeConnections](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [

## Paso 1: Crear una conexión a la GitHub aplicación (consola)
](#connections-github-console)
+ [

## Paso 2: Otorgue acceso al rol de IAM del CodeBuild proyecto para usar la conexión
](#connections-github-role-access)
+ [

## Paso 3: CodeBuild Configúralo para usar la nueva conexión
](#connections-github-account-credential)
+ [Solución de problemas de la GitHub aplicación](#connections-github-troubleshooting)

## Paso 1: Crear una conexión a la GitHub aplicación (consola)
<a name="connections-github-console"></a>

Sigue estos pasos para usar la CodeBuild consola y añadir una conexión a tu proyecto GitHub.

**Para crear una conexión a GitHub**
+ Siga las instrucciones de la *Guía del usuario de las herramientas para desarrolladores* para [crear una conexión a GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).

**nota**  
En lugar de crear o usar una conexión existente en tu cuenta, puedes usar una conexión compartida desde otra AWS cuenta. Para obtener más información, consulta [Compartir conexiones con AWS cuentas](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Paso 2: Otorgue acceso al rol de IAM del CodeBuild proyecto para usar la conexión
<a name="connections-github-role-access"></a>

Puedes conceder acceso a la función de IAM del CodeBuild proyecto para usar los GitHub tokens que vende tu conexión.

**Para conceder acceso a la función de CodeBuild IAM del proyecto**

1. Cree un rol de IAM para su CodeBuild proyecto siguiendo las instrucciones [CodeBuild Permiten interactuar con otros servicios AWS](setting-up-service-role.md) para su CodeBuild proyecto.

1. Siguiendo las instrucciones, añade la siguiente política de IAM a tu rol en el CodeBuild proyecto para conceder el acceso a la conexión.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Paso 3: CodeBuild Configúralo para usar la nueva conexión
<a name="connections-github-account-credential"></a>

Puede configurar una conexión como credencial de cuenta y usarla en un proyecto.

------
#### [ Consola de administración de AWS ]

**Para configurar una conexión como una credencial a nivel de cuenta en el Consola de administración de AWS**

1. En **Proveedor de origen**, elija **GitHub**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija **Credencial de origen predeterminada** para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no está conectado a GitHub, elija **Administrar la credencial de origen predeterminada**.

     1. **En **Tipo de credencial**, selecciona GitHub Aplicación.**

     1. En **Conexión**, elija usar una conexión existente o cree una nueva.
   + Elija **Credencial de origen personalizada** a fin de usar una credencial de este tipo para anular la configuración predeterminada de su cuenta.

     1. **En **Tipo de credencial**, elija GitHub Aplicación.**

     1. En **Conexión**, elija usar una conexión existente o cree una nueva.

------
#### [ AWS CLI ]

**Para configurar una conexión como una credencial a nivel de cuenta en el AWS CLI**
+ Abra un terminal (Linux, macOS o Unix) o un símbolo del sistema (Windows). Utilice el AWS CLI para ejecutar el **import-source-credentials** comando, especificando el `--auth-type``--server-type`, y `--token` para la conexión.

  Utilice el siguiente comando :

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>
  ```

------

También puedes configurar varios tokens para tus CodeBuild proyectos. Para obtener más información, consulte [Configuración de varios tokens como credenciales de origen](multiple-access-tokens.md#asm-source-credential).

## Solución de problemas con la GitHub aplicación
<a name="connections-github-troubleshooting"></a>

La siguiente información puede ayudarle a solucionar problemas comunes con la GitHub aplicación.

**Topics**
+ [

### Instale el AWS conector para la GitHub aplicación en una región no deseada
](#connections-github-troubleshooting.undesired-region)
+ [

### La conexión de la GitHub aplicación no tiene acceso a los repositorios
](#connections-github-troubleshooting.repo-access)
+ [

### A la función de IAM del AWS servicio le faltan los permisos de IAM necesarios.
](#connections-github-troubleshooting.iam-permissions)

### Instale el AWS conector para la GitHub aplicación en una región no deseada
<a name="connections-github-troubleshooting.undesired-region"></a>

**Problema:** instalaste el AWS conector GitHub desde GitHub Marketplace, pero la conexión se creó en una región no deseada. Si intentas volver a configurar la aplicación en el GitHub sitio web, no funcionará porque la aplicación ya está instalada en tu GitHub cuenta.

**Causa posible:** la aplicación ya está instalada en tu GitHub cuenta, por lo que solo puedes volver a configurar los permisos de la aplicación.

**Solución recomendada:** Puede crear una conexión con el ID de instalación en la región deseada.

1. Abre la CodeConnections consola en los [https://console.aws.amazon.com/codesuite/ajustes o conexiones](https://console.aws.amazon.com/codesuite/settings/connections) y navega hasta la región deseada con el selector de regiones de la barra de navegación de la AWS consola.

1. Siga las instrucciones de la *Guía del usuario de las herramientas para desarrolladores* para [crear una conexión a](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html). GitHub
**nota**  
Como ya ha instalado el AWS conector para la GitHub aplicación, puede elegirlo en lugar de instalar una aplicación nueva.

### La conexión de la GitHub aplicación no tiene acceso a los repositorios
<a name="connections-github-troubleshooting.repo-access"></a>

**Problema:** un AWS servicio que utiliza la conexión, como CodeBuild o CodePipeline, informa que no tiene acceso al repositorio o que el repositorio no existe. Estos son algunos de los posibles mensajes de error:
+ `Authentication required for primary source.`
+ `Unable to create webhook at this time. Please try again later.`
+ `Failed to create webhook. GitHub API limit reached. Please try again later.`

***Causa posible:** es posible que hayas estado usando la GitHub aplicación y no hayas concedido el alcance de los permisos del webhook.*  
**Solución recomendada:** para conceder el alcance del permiso requerido, sigue las instrucciones de [Cómo ir a la GitHub aplicación que quieras revisar o modificar](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps#navigating-to-the-github-app-you-want-to-review-or-modify) para configurar la aplicación instalada. En la sección de permisos, verá que la aplicación no tiene permisos de webhook y que hay una opción para revisar los permisos recién solicitados. Revise y acepte los nuevos permisos. Para obtener más información, consulte [Aprobar los permisos actualizados para](https://docs.github.com/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app) una aplicación. GitHub 

***Causa posible:** La conexión funcionaba según lo esperado, pero de repente no tiene acceso a los repositorios.*  
**Posible solución:** comience por revisar sus [autorizaciones](https://docs.github.com/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps) y sus [instalaciones](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) y, a continuación, compruebe que la GitHub aplicación esté autorizada e instalada. Si la instalación de la GitHub aplicación está suspendida, debe anular la suspensión. Si la GitHub aplicación no está autorizada para una conexión [UAT (token de acceso de usuario)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user) o no está instalada para una conexión [IAT (token de acceso a la instalación)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation), la conexión existente ya no se podrá utilizar y tendrá que crear una nueva conexión. Tenga en cuenta que volver a instalar la GitHub aplicación no restablecerá la conexión anterior que estaba asociada a la instalación anterior.  
**Solución posible:** si la conexión es una conexión UAT, asegúrese de que la conexión no se utilice simultáneamente, por ejemplo, si se utiliza en varias ejecuciones CodeBuild simultáneas de compilación. Esto se debe a que invalida GitHub inmediatamente un UAT emitido anteriormente si la conexión actualiza un token que está caducando. Si necesitas usar una conexión UAT para varias CodeBuild compilaciones simultáneas, puedes crear varias conexiones y usar cada conexión de forma independiente.  
**Posible solución:** si la conexión UAT no se ha utilizado en los últimos 6 meses, la conexión quedará invalidada por. GitHub Para solucionarlo, cree una conexión nueva.

***Causa posible:** Puede que haya estado usando una conexión de token de acceso de usuario sin instalar la aplicación.*  
**Solución recomendada:** aunque la creación de una conexión UAT no requiere asociar la conexión a una instalación de la GitHub aplicación, es necesaria una instalación para poder acceder al repositorio. Sigue las instrucciones para [revisar las instalaciones](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) y asegurarte de que la GitHub aplicación esté instalada. Si no está instalada, vaya a la [página de la GitHub aplicación](https://github.com/marketplace/aws-connector-for-github) para instalarla. Para obtener más información sobre el acceso de los tokens del tipo mencionado, consulte [Acerca de los tokens de acceso de usuario](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app#about-user-access-tokens).

### A la función de IAM del AWS servicio le faltan los permisos de IAM necesarios.
<a name="connections-github-troubleshooting.iam-permissions"></a>

**Problema:** Aparece alguno de los siguientes mensajes de error:
+ `Access denied to connection <connection-arn>`
+ `Failed to get access token from <connection-arn>`

**Solución recomendada:** normalmente se utiliza una conexión con un AWS servicio, como CodePipeline o. CodeBuild Cuando asignas al AWS servicio una función de IAM, el AWS servicio puede usar el permiso de la función para actuar en tu nombre. Asegúrese de que el rol de IAM tiene los permisos necesarios. Para obtener más información sobre el permiso de IAM necesario, consulte [Otorgar acceso al rol de IAM CodeBuild del proyecto para usar la conexión y la](#connections-github-role-access) [administración de identidad y acceso para AWS CodeStar las notificaciones y CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html) en la Guía del usuario de la *consola Developer Tools*.

# GitHub y un token de acceso a GitHub Enterprise Server
<a name="access-tokens-github"></a>

## Requisitos previos de los tokens de acceso
<a name="access-tokens-github-prereqs"></a>

Antes de empezar, debe añadir los ámbitos de permiso adecuados a su token de GitHub acceso. 

Pues GitHub, su token de acceso personal debe tener los siguientes ámbitos. 
+ **repo**: Concede a control total de repositorios privados. 
+ **repo:status:** otorga read/write acceso a los estados de confirmación de los repositorios públicos y privados.
+ **admin:repo\$1hook**: Concede control total de enlaces de repositorio. Este ámbito no es necesario si su token tiene el ámbito `repo`. 
+ **admin:org\$1hook**: Concede control total de los enlaces de la organización. Este ámbito solo es obligatorio si usa la característica de webhook de la organización.

Para obtener más información, consulta el artículo Cómo [entender los ámbitos de las aplicaciones en el sitio web OAuth ](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). GitHub 

Si usa tokens de acceso personal detallado puede que su token correspondiente necesite los siguientes permisos, en función de su caso de uso:
+ **Contenido: solo lectura:** concede acceso a los repositorios privados. Este permiso es obligatorio si usa repositorios privados como origen.
+ **Estados de confirmación: lectura y escritura:** concede permiso para crear estados de confirmación. Este permiso es obligatorio si su proyecto tiene webhook configurado o si tiene habilitada la característica para notificar el estado de compilación.
+ **Webhooks: lectura y escritura**: concede permiso para administrar los webhooks. Este permiso es obligatorio si su proyecto tiene webhook configurado.
+ **Solicitudes de extracción: solo lectura**: concede permiso para acceder a las solicitudes de extracción. Este permiso es obligatorio si su webhook tiene un filtro `FILE_PATH` para los eventos de solicitudes de extracción.
+ **Administración: lectura y escritura**: este permiso es necesario si utilizas la función GitHub Actions Runner autohospedada con. CodeBuild Para obtener más información, consulte [Create a registration token for a repository](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository) y [Tutorial: Configurar un ejecutor de CodeBuild Actions alojado GitHub](action-runner.md).

**nota**  
Si quiere acceder a los repositorios de la organización, asegúrese de especificar la organización como propietario del recurso del token de acceso.

Para obtener más información, consulta el artículo sobre [los permisos necesarios para los tokens de acceso personal detallados](https://docs.github.com/en/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28) en el sitio web. GitHub 

## Conéctese GitHub con un token de acceso (consola)
<a name="access-tokens-github-console"></a>

Para usar la consola para conectar tu proyecto GitHub mediante un token de acceso, haz lo siguiente al crear un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 

1. En **Proveedor de fuentes**, selecciona **GitHub**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija utilizar credenciales de cuenta para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no estás conectado a GitHub, selecciona **Administrar credenciales de cuenta**.

     1. En **Tipo de credencial**, elija **Token de acceso personal**.
   + Si ha elegido utilizar credenciales de nivel de cuenta para **Servicio**, elija qué servicio desea usar para almacenar el token y haga lo siguiente:

     1. Si decide usar **Secrets Manager**, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo y elegir **Guardar**. Para obtener más información sobre cómo crear un secreto nuevo, consulte [Creación y almacenamiento de un token en un secreto de Secrets Manager](asm-create-secret.md).

     1. Si decides utilizarla **CodeBuild**, introduce tu token de acceso GitHub personal y, a continuación, selecciona **Guardar**.
   + Seleccione **Usar credenciales de anulación solo para este proyecto** para utilizar una credencial de origen personalizada para anular la configuración de credencial de la cuenta.

     1. En la lista de credenciales rellenada, elija una de las opciones de **Token de acceso personal**.

     1. También puede crear un nuevo token de acceso personal seleccionando **crear una nueva conexión de token de acceso personal** en la descripción.

## Conéctese GitHub con un token de acceso (CLI)
<a name="access-tokens-github-cli"></a>

Siga estos pasos para usar el y AWS CLI conectar su proyecto GitHub mediante un token de acceso. Para obtener información sobre el uso del AWS CLI with AWS CodeBuild, consulta la[Referencia de la línea de comandos](cmd-ref.md). 

1. Ejecute el comando **import-source-credentials**: 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   En el resultado se muestran datos con formato JSON. Copie los datos en un archivo (por ejemplo,`import-source-credentials.json`) en una ubicación del equipo o instancia local en la que AWS CLI esté instalado. Modifique los datos copiados como se indica a continuación y guarde los resultados. 

   ```
   {
       "serverType": "server-type",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Sustituya lo siguiente: 
   + *server-type*: valor obligatorio. El proveedor de código fuente utilizado para esta credencial. Los valores válidos son GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB y GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Valor obligatorio. El tipo de autenticación que se utiliza para conectarse a un repositorio. Los valores válidos son OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS y SECRETS\$1MANAGER. Para GitHub, solo se permite PERSONAL\$1ACCESS\$1TOKEN. BASIC\$1AUTH solo está permitido con la contraseña de aplicación de Bitbucket.
   + *should-overwrite*: valor opcional. Establézcalo en `false` para impedir que se sobrescriban las credenciales de origen del repositorio. Establézcalo en `true` para sobrescribir las credenciales de origen del repositorio. El valor predeterminado es `true`.
   + *token*: Valor obligatorio. En el GitHub caso de GitHub Enterprise Server, este es el token de acceso personal. Para Bitbucket, este es el token de acceso personal o la contraseña de aplicación. Para el tipo de autenticación CODECONNECTIONS, es el ARN de la conexión. Para el tipo de autenticación SECRETS\$1MANAGER, es el ARN del secreto.
   + *username*: valor opcional. Este parámetro se omite para GitHub los proveedores de origen de GitHub Enterprise Server. 

1. Para conectar su cuenta con un token de acceso, cambie al directorio que contiene el archivo `import-source-credentials.json` que guardó en el paso 1 y vuelva a ejecutar el comando **import-source-credentials**. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   Los datos con formato JSON aparecen en el resultado con un nombre de recurso de Amazon (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**nota**  
Si ejecuta el comando **import-source-credentials** con el mismo tipo de servidor y tipo de autorización una segunda vez, se actualiza el token de acceso almacenado. 

   Una vez que tu cuenta esté conectada con un token de acceso, podrás usarlo `create-project` para crear tu CodeBuild proyecto. Para obtener más información, consulte [Crear un proyecto de compilación (AWS CLI)](create-project.md#create-project-cli). 

1. Para ver los tokens de acceso conectados, ejecute el comando **list-source-credentials**. 

   ```
   aws codebuild list-source-credentials
   ```

   Un objeto `sourceCredentialsInfos` con formato JSON aparece en el resultado: 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "server-type", 
                   "arn": "arn"
               }
           ]
       }
   ```

   El `sourceCredentialsObject` contiene una lista de información de credenciales de código fuente conectado: 
   + El `authType` es el tipo de autenticación que utilizan las credenciales. Este valor puede ser `OAUTH`, `BASIC_AUTH`, `PERSONAL_ACCESS_TOKEN`, `CODECONNECTIONS` o `SECRETS_MANAGER`. 
   + El `serverType` es el tipo de proveedor de código fuente. Este valor puede ser `GITHUB`, `GITHUB_ENTERPRISE`, `BITBUCKET`, `GITLAB` o `GITLAB_SELF_MANAGED`. 
   + El `arn` es el ARN del token. 

1. Para desconectarse de un proveedor de código fuente y eliminar sus tokens de acceso, ejecute el comando **delete-source-credentials** con su ARN. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Los datos con formato JSON se devuelven con un ARN de las credenciales eliminadas. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# Aplicación GitHub OAuth
<a name="oauth-app-github"></a>

## Conectarse GitHub mediante OAuth (consola)
<a name="oauth-app-github-console"></a>

Para usar la consola para conectar el proyecto a GitHub una OAuth aplicación, haga lo siguiente al crear un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 

1. En **Proveedor de fuentes**, selecciona **GitHub**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija utilizar credenciales de cuenta para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no estás conectado a GitHub, selecciona **Administrar credenciales de cuenta**.

     1. **En **Tipo de credencial**, selecciona OAuth aplicación.**
   + Si ha elegido utilizar credenciales de nivel de cuenta para **Servicio**, elija qué servicio desea usar para almacenar el token y haga lo siguiente:

     1. Si decide usar **Secrets Manager**, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo y elegir **Guardar**. Para obtener más información sobre cómo crear un secreto nuevo, consulte [Creación y almacenamiento de un token en un secreto de Secrets Manager](asm-create-secret.md).

     1. Si eliges usar **CodeBuild**y, a continuación, selecciona **Guardar**.
   + Seleccione **Usar credenciales de anulación solo para este proyecto** para utilizar una credencial de origen personalizada para anular la configuración de credencial de la cuenta.

     1. En la lista de credenciales rellenada, elige una de las opciones de la **OAuth aplicación**.

     1. También puedes crear un nuevo token de OAuth aplicación seleccionando **crear una nueva conexión de token de aplicación de Oauth** en la descripción.

Para revisar sus OAuth aplicaciones autorizadas, vaya a [Aplicaciones](https://github.com/settings/applications) en y compruebe que GitHub aparezca una aplicación cuyo nombre sea `AWS CodeBuild (region)` propiedad de [aws-codesuite](https://github.com/aws-codesuite).

# Acceda a Bitbucket en CodeBuild
<a name="access-tokens-bitbucket-overview"></a>

En el caso de Bitbucket, utilizas un token de acceso, una contraseña de aplicación, una OAuth aplicación o una conexión de Bitbucket para acceder al proveedor de origen.

**Topics**
+ [

# Conexiones de aplicación de Bitbucket
](connections-bitbucket-app.md)
+ [

# Contraseña de aplicación o token de acceso de Bitbucket
](access-tokens-bitbucket.md)
+ [

# Aplicación Bitbucket OAuth
](oauth-app-bitbucket.md)

# Conexiones de aplicación de Bitbucket
<a name="connections-bitbucket-app"></a>

Puedes usar Bitbucket para conectarte con. CodeBuild Se admiten las conexiones de aplicación de Bitbucket mediante [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

**nota**  
CodeConnections está disponible en menos regiones que. CodeBuild Puede utilizar conexiones entre regiones en CodeBuild. Las conexiones creadas en regiones de suscripción no se pueden usar en otras regiones. Para obtener más información, consulte [Puntos de conexión y cuotas de AWS CodeConnections](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [

## Paso 1: creación de una conexión a Bitbucket (consola)
](#connections-bitbucket-console)
+ [

## Paso 2: Otorgue acceso al rol de IAM del CodeBuild proyecto para usar la conexión
](#connections-bitbucket-role-access)
+ [

## Paso 3: CodeBuild Configúralo para usar la nueva conexión
](#connections-bitbucket-account-credential)

## Paso 1: creación de una conexión a Bitbucket (consola)
<a name="connections-bitbucket-console"></a>

Sigue estos pasos para usar la CodeBuild consola y añadir una conexión a tu proyecto en Bitbucket.

**Para crear una conexión a Bitbucket**
+ Siga las instrucciones de la *Guía del usuario de Herramientas para desarrolladores* para la [Creación de una conexión a Bitbucket](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-bitbucket.html).

**nota**  
En lugar de crear o usar una conexión existente en tu cuenta, puedes usar una conexión compartida desde otra AWS cuenta. Para obtener más información, consulta [Compartir conexiones con AWS cuentas](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Paso 2: Otorgue acceso al rol de IAM del CodeBuild proyecto para usar la conexión
<a name="connections-bitbucket-role-access"></a>

Puedes conceder acceso a la función de IAM CodeBuild del proyecto para usar los tokens de Bitbucket que vende tu conexión.

**Para conceder acceso a la función de IAM CodeBuild del proyecto**

1. Cree un rol de IAM para su CodeBuild proyecto siguiendo las instrucciones [CodeBuild Permiten interactuar con otros servicios AWS](setting-up-service-role.md) para su CodeBuild proyecto.

1. Siguiendo las instrucciones, añade la siguiente política de IAM a tu rol en el CodeBuild proyecto para conceder el acceso a la conexión.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Paso 3: CodeBuild Configúralo para usar la nueva conexión
<a name="connections-bitbucket-account-credential"></a>

Puede configurar una conexión como credencial de cuenta y usarla en un proyecto.

------
#### [ Consola de administración de AWS ]

**Para configurar una conexión como una credencial a nivel de cuenta en el Consola de administración de AWS**

1. En **Source provider (Proveedor de código fuente)**, elija **Bitbucket**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija **Credencial de origen predeterminada** para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no está conectado a Bitbucket, elija **Administrar la credencial de origen predeterminada**.

     1. En el **tipo de credencial, elija**. **CodeConnections**

     1. En **Conexión**, elija usar una conexión existente o cree una nueva.
   + Elija **Credencial de origen personalizada** a fin de usar una credencial de este tipo para anular la configuración predeterminada de su cuenta.

     1. En **Tipo de credencial, elija**. **CodeConnections**

     1. En **Conexión**, elija usar una conexión existente o cree una nueva.

------
#### [ AWS CLI ]

**Para configurar una conexión como una credencial a nivel de cuenta en el AWS CLI**
+ Abra un terminal (Linux, macOS o Unix) o un símbolo del sistema (Windows). Utilice el AWS CLI para ejecutar el **import-source-credentials** comando, especificando el `--auth-type``--server-type`, y `--token` para la conexión.

  Utilice el siguiente comando :

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type BITBUCKET --token <connection-arn>
  ```

------

Para obtener más información sobre la configuración de varios tokens en su CodeBuild proyecto, consulte[Configuración de varios tokens como credenciales de origen](multiple-access-tokens.md#asm-source-credential).

# Contraseña de aplicación o token de acceso de Bitbucket
<a name="access-tokens-bitbucket"></a>

## Requisitos previos
<a name="access-tokens-bitbucket-prerequisites"></a>

Antes de comenzar, debe agregar los ámbitos de permisos adecuados para su contraseña de aplicación o token de acceso de Bitbucket. 

Para Bitbucket, la contraseña de aplicación o el token de acceso deben tener los siguientes ámbitos. 
+ **repository:read**: Concede acceso de lectura a todos los repositorios a los que tiene acceso el usuario de autorización. 
+ **pullrequest:read**: Concede acceso de lectura a las solicitudes de extracción. Si su proyecto tiene un webhook de Bitbucket, entonces la contraseña de su aplicación o el token de acceso debe tener este ámbito. 
+ **webhook**: Concede acceso a webhooks. Si su proyecto tiene una operación de webhook, entonces la contraseña de su aplicación o el token de acceso debe tener este ámbito. 
+ **cuenta**: otorga acceso de lectura a la información de la cuenta del usuario.

Para obtener más información, consulta [Ámbitos de la API REST de Bitbucket Cloud](https://developer.atlassian.com/cloud/bitbucket/bitbucket-cloud-rest-api-scopes/) y de [Bitbucket Cloud OAuth en el sitio web de Bitbucket](https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html).

## Conectarse a Bitbucket con una contraseña de aplicación (consola)
<a name="access-tokens-bitbucket-password-console"></a>

Para utilizar la consola para conectar el proyecto a Bitbucket con una contraseña de aplicación, haga lo siguiente a la hora de crear un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 

1. En **Source provider (Proveedor de código fuente)**, elija **Bitbucket**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija utilizar credenciales de cuenta para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no está conectado a Bitbucket, elija **Administrar la credencial de cuenta**.

     1. En **Tipo de credencial**, elija **Contraseña de la aplicación**.
   + Si ha elegido utilizar credenciales de nivel de cuenta para **Servicio**, elija qué servicio desea usar para almacenar el token y haga lo siguiente:

     1. Si decide usar **Secrets Manager**, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo y elegir **Guardar**. Para obtener más información sobre cómo crear un secreto nuevo, consulte [Creación y almacenamiento de un token en un secreto de Secrets Manager](asm-create-secret.md).

     1. **Si decides utilizarla **CodeBuild**, introduce tu nombre de usuario y contraseña de la aplicación de Bitbucket y, a continuación, selecciona Guardar.**
   + Seleccione **Usar credenciales de anulación solo para este proyecto** para utilizar una credencial de origen personalizada para anular la configuración de credencial de la cuenta.

     1. En la lista de credenciales rellenada, elija una de las opciones de **Contraseña de aplicación**.

     1. También puede crear una nueva contraseña de aplicación seleccionando **crear una nueva conexión de contraseña de aplicación** en la descripción.

## Conexión de Bitbucket con un token de acceso (consola)
<a name="access-tokens-bitbucket-console"></a>

Si quiere utilizar la consola para conectar el proyecto a Bitbucket con un token de acceso, haga lo siguiente a la hora de crear un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 

1. En **Source provider (Proveedor de código fuente)**, elija **Bitbucket**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija utilizar credenciales de cuenta para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no está conectado a Bitbucket, elija **Administrar la credencial de cuenta**.

     1. En **Tipo de credencial**, elija **Token de acceso personal**.
   + Si ha elegido utilizar credenciales de nivel de cuenta para **Servicio**, elija qué servicio desea usar para almacenar el token y haga lo siguiente:

     1. Si decide usar **Secrets Manager**, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo y elegir **Guardar**. Para obtener más información sobre cómo crear un secreto nuevo, consulte [Creación y almacenamiento de un token en un secreto de Secrets Manager](asm-create-secret.md).

     1. **Si decides utilizarlos **CodeBuild**, introduce tu token de acceso personal de Bitbucket y, a continuación, selecciona Guardar.**
   + Seleccione **Usar credenciales de anulación solo para este proyecto** para utilizar una credencial de origen personalizada para anular la configuración de credencial de la cuenta.

     1. En la lista de credenciales rellenada, elija una de las opciones de **Token de acceso personal**.

     1. También puede crear un nuevo token de acceso personal seleccionando **crear una nueva conexión de token de acceso personal** en la descripción.

## Conexión de Bitbucket con una contraseña de aplicación o token de acceso (CLI)
<a name="access-tokens-bitbucket-cli"></a>

Sigue estos pasos para usar el y conectar tu proyecto AWS CLI a Bitbucket mediante una contraseña de aplicación o un token de acceso. Para obtener información sobre cómo usar el AWS CLI with AWS CodeBuild, consulta la[Referencia de la línea de comandos](cmd-ref.md). 

1. Ejecute el comando **import-source-credentials**: 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   En el resultado se muestran datos con formato JSON. Copie los datos en un archivo (por ejemplo,`import-source-credentials.json`) en una ubicación del equipo o instancia local en la que AWS CLI esté instalado. Modifique los datos copiados como se indica a continuación y guarde los resultados. 

   ```
   {
       "serverType": "BITBUCKET",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Sustituya lo siguiente: 
   + *server-type*: valor obligatorio. El proveedor de código fuente utilizado para esta credencial. Los valores válidos son GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB y GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Valor obligatorio. El tipo de autenticación que se utiliza para conectarse a un repositorio. Los valores válidos son OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS y SECRETS\$1MANAGER. Para GitHub, solo se permite PERSONAL\$1ACCESS\$1TOKEN. BASIC\$1AUTH solo está permitido con la contraseña de aplicación de Bitbucket.
   + *should-overwrite*: valor opcional. Establézcalo en `false` para impedir que se sobrescriban las credenciales de origen del repositorio. Establézcalo en `true` para sobrescribir las credenciales de origen del repositorio. El valor predeterminado es `true`.
   + *token*: Valor obligatorio. En el GitHub caso de GitHub Enterprise Server, este es el token de acceso personal. Para Bitbucket, este es el token de acceso personal o la contraseña de aplicación. Para el tipo de autenticación CODECONNECTIONS, es el ARN de la conexión. Para el tipo de autenticación SECRETS\$1MANAGER, es el ARN del secreto.
   + *username*: valor opcional. Este parámetro se omite para GitHub los proveedores de origen de GitHub Enterprise Server. 

1. Para conectar su cuenta con una contraseña de aplicación o un token de acceso, cambie al directorio que contiene el archivo `import-source-credentials.json` que ha guardado en el paso 1 y vuelva a ejecutar el comando **import-source-credentials**. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   Los datos con formato JSON aparecen en el resultado con un nombre de recurso de Amazon (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**nota**  
Si ejecuta el comando **import-source-credentials** con el mismo tipo de servidor y tipo de autorización una segunda vez, se actualiza el token de acceso almacenado. 

   Una vez que su cuenta esté conectada con una contraseña de aplicación, podrá `create-project` utilizarla para crear su CodeBuild proyecto. Para obtener más información, consulte [Crear un proyecto de compilación (AWS CLI)](create-project.md#create-project-cli). 

1. Para ver las contraseñas de aplicación o los tokens de acceso conectados, ejecute el comando **list-source-credentials**. 

   ```
   aws codebuild list-source-credentials
   ```

   Un objeto `sourceCredentialsInfos` con formato JSON aparece en el resultado: 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "BITBUCKET", 
                   "arn": "arn"
               }
           ]
       }
   ```

   El `sourceCredentialsObject` contiene una lista de información de credenciales de código fuente conectado: 
   + El `authType` es el tipo de autenticación que utilizan las credenciales. Este valor puede ser `OAUTH`, `BASIC_AUTH`, `PERSONAL_ACCESS_TOKEN`, `CODECONNECTIONS` o `SECRETS_MANAGER`. 
   + El `serverType` es el tipo de proveedor de código fuente. Este valor puede ser `GITHUB`, `GITHUB_ENTERPRISE`, `BITBUCKET`, `GITLAB` o `GITLAB_SELF_MANAGED`. 
   + El `arn` es el ARN del token. 

1. Para desconectarse de un proveedor de origen y eliminar sus tokens de acceso o contraseña de aplicación, ejecute el comando **delete-source-credentials** con su ARN. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Los datos con formato JSON se devuelven con un ARN de las credenciales eliminadas. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# Aplicación Bitbucket OAuth
<a name="oauth-app-bitbucket"></a>

## Connect Bitbucket mediante OAuth (consola)
<a name="oauth-app-bitbucket-console"></a>

Para usar la consola para conectar tu proyecto a Bitbucket mediante una OAuth aplicación, haz lo siguiente al crear un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 

1. En **Source provider (Proveedor de código fuente)**, elija **Bitbucket**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija utilizar credenciales de cuenta para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no está conectado a Bitbucket, elija **Administrar la credencial de cuenta**.

     1. **En **Tipo de credencial**, selecciona OAuth aplicación.**
   + Si ha elegido utilizar credenciales de nivel de cuenta para **Servicio**, elija qué servicio desea usar para almacenar el token y haga lo siguiente:

     1. Si decide usar **Secrets Manager**, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo y elegir **Guardar**. Para obtener más información sobre cómo crear un secreto nuevo, consulte [Creación y almacenamiento de un token en un secreto de Secrets Manager](asm-create-secret.md).

     1. Si eliges usar **CodeBuild**y, a continuación, selecciona **Guardar**.
   + Seleccione **Usar credenciales de anulación solo para este proyecto** para utilizar una credencial de origen personalizada para anular la configuración de credencial de la cuenta.

     1. En la lista de credenciales rellenada, elige una de las opciones de la **OAuth aplicación**.

     1. También puedes crear un nuevo token de OAuth aplicación seleccionando **crear una nueva conexión de token de aplicación de Oauth** en la descripción.

Para revisar tus OAuth aplicaciones autorizadas, ve a [Autorizaciones de aplicaciones](https://bitbucket.org/account/settings/app-authorizations/) en Bitbucket y comprueba que aparezca una aplicación con ese nombre. `AWS CodeBuild (region)` 

# GitLab acceder en CodeBuild
<a name="access-tokens-gitlab-overview"></a>

Para GitLab, utiliza una GitLab conexión para acceder al proveedor de origen.

**Topics**
+ [

## Conectarse CodeBuild a GitLab
](#connections-gitlab)

## Conectarse CodeBuild a GitLab
<a name="connections-gitlab"></a>

Las conexiones le permiten autorizar y establecer configuraciones que asocian a su proveedor externo con AWS los recursos que utiliza AWS CodeConnections. Para asociar su repositorio de terceros como origen del proyecto de compilación, debe usar una conexión. 

Para añadir un proveedor de fuentes GitLab autogestionado GitLab o autogestionado CodeBuild, puede elegir entre las siguientes opciones: 
+ Utilice el asistente de **creación de proyectos de compilación** de la CodeBuild consola o la página **Editar fuente** para elegir la **GitLab**opción de proveedor **GitLab autogestionado**. Consulte [Crea una conexión a GitLab (consola)](#connections-gitlab-console) para agregar el proveedor de origen. La consola le ayuda a crear un recurso de conexiones.
+ Use la CLI para crear sus recursos de conexiones; consulte [Crear una conexión a GitLab (CLI)](#connections-gitlab-cli) para crear un recurso de conexiones con la CLI.

**nota**  
También puede crear una conexión mediante la consola de Herramientas para desarrolladores, en **Configuración**. Consulte [Crear una conexión](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html).

**nota**  
Al autorizar la instalación de esta conexión GitLab, concedes a nuestro servicio permisos para procesar tus datos accediendo a tu cuenta, y puedes revocar los permisos en cualquier momento desinstalando la aplicación.

### Crea una conexión a GitLab
<a name="connections-gitlab-create"></a>

En esta sección se describe cómo conectarse GitLab a CodeBuild. Para obtener más información acerca de las conexiones de GitLab , consulte [Conectarse CodeBuild a GitLab](#connections-gitlab).

Antes de empezar:
+ Debe haber creado ya una cuenta con GitLab.
**nota**  
Las conexiones solo dan acceso a los repositorios que pertenecen a la cuenta que se utilizó para crear y autorizar la conexión. 
**nota**  
Puede crear conexiones a un repositorio en el que tenga el rol de **propietario** y GitLab, a continuación, la conexión se puede utilizar con el repositorio con recursos como CodeBuild: En el caso de los repositorios en grupos, no es necesario que sea el propietario del grupo.
+ Para especificar una fuente para su proyecto de compilación, debe haber creado ya un repositorio en él GitLab.

**Topics**
+ [

#### Crea una conexión a GitLab (consola)
](#connections-gitlab-console)
+ [

#### Crear una conexión a GitLab (CLI)
](#connections-gitlab-cli)

#### Crea una conexión a GitLab (consola)
<a name="connections-gitlab-console"></a>

Sigue estos pasos para usar la CodeBuild consola y añadir una conexión para tu proyecto (repositorio) en GitLab.

**nota**  
En lugar de crear o usar una conexión existente en tu cuenta, puedes usar una conexión compartida desde otra AWS cuenta. Para obtener más información, consulta [Compartir conexiones con AWS cuentas](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

**Para crear o editar el proyecto de compilación**

1. Inicia sesión en la CodeBuild consola.

1. Elija una de las siguientes opciones.
   + Elija crear un proyecto de compilación. Sigue los pasos que se indican [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) para completar la primera pantalla y, en la sección **Fuente**, en **Proveedor de código fuente**, selecciona **GitLab**.
   + Elija editar un proyecto de compilación existente. Elija **Editar** y, después, **Origen**. En la página **Editar fuente**, en **Proveedor de fuentes**, selecciona **GitLab**.

1. Seleccione una de las siguientes opciones:
   + En **Conexión**, elija **Conexión predeterminada**. La conexión predeterminada aplica una GitLab conexión predeterminada en todos los proyectos.
   + En **Conexión**, elija **Conexión personalizada**. La conexión personalizada aplica una GitLab conexión personalizada que anula la configuración predeterminada de tu cuenta.

1. Realice una de las siguientes acciones:
   + En **Conexión predeterminada** o **Conexión personalizada**, si aún no ha creado una conexión con su proveedor, elija **Crear una nueva GitLab conexión**. Continúe con el paso 5 para crear la conexión.
   + En **Conexión**, si ya ha creado una conexión con su proveedor, seleccione la conexión. Continúe con el paso 10.
**nota**  
Si cierras la ventana emergente antes de crear una GitLab conexión, tendrás que actualizar la página.

1. Para crear una conexión a un GitLab repositorio, en **Seleccione un proveedor**, elija **GitLab**. En **Nombre de la conexión**, introduzca el nombre de la conexión que desea crear. Elija **Connect to (Conectar a GitLab)**.  
![\[Captura de pantalla de la consola que muestra la opción de conexión seleccionada para GitLab.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/connections-create-gitlab.png)

1. Cuando aparezca la página de inicio de GitLab sesión, inicia sesión con tus credenciales y, a continuación, selecciona **Iniciar sesión**.

1. Si es la primera vez que autorizas la conexión, aparecerá una página de autorización con un mensaje solicitando la autorización de la conexión para acceder a tu GitLab cuenta.

   Seleccione **Autorizar**.  
![\[Captura de pantalla que muestra el mensaje para autorizar la conexión de tu GitLab cuenta.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/gitlab-authorization.png)

1. El navegador vuelve a la página de la consola de conexiones. En la **configuración de la GitLab conexión**, la nueva conexión se muestra en el **nombre de la conexión**.

1. Elija **Conectar**.

   Cuando la GitLab conexión se haya creado correctamente, aparecerá un cartel de éxito en la parte superior. 

1. En la página **Crear el proyecto de compilación**, en la lista desplegable **Conexión predeterminada** o **Conexión personalizada**, asegúrese de que aparezca el ARN de su conexión. De lo contrario, elija el botón de actualización para que aparezca.

1. En el **repositorio**, elige el nombre de tu proyecto GitLab especificando la ruta del proyecto con el espacio de nombres. Por ejemplo, para un repositorio de grupo, introduzca el nombre del repositorio en el siguiente formato: `group-name/repository-name`. [Para obtener más información sobre la ruta y el espacio de nombres, consulta el campo de api/projects.html\$1. `path_with_namespace` https://docs.gitlab.com/ee/ get-single-project](https://docs.gitlab.com/ee/api/projects.html#get-single-project) [Para obtener más información sobre el espacio de nombres de, consulta user/namespace/. GitLab https://docs.gitlab.com/ee/](https://docs.gitlab.com/ee/user/namespace/)
**nota**  
Para los grupos de GitLab, debe especificar manualmente la ruta del proyecto con el espacio de nombres. Por ejemplo, para un repositorio con el nombre `myrepo` en un grupo `mygroup`, introduzca lo siguiente: `mygroup/myrepo`. Puedes encontrar la ruta del proyecto con el espacio de nombres en la URL de. GitLab

   

1. En **Versión de origen (opcional)**, especifique un ID de solicitud de extracción, una ramificación, un ID de confirmación, un etiqueta o referencia y un ID de confirmación. Para obtener más información, consulte [Ejemplo de versión fuente con AWS CodeBuild](sample-source-version.md).
**nota**  
Te recomendamos que elijas nombres de rama de Git que no se parezcan a commit IDs, como `811dd1ba1aba14473856cee38308caed7190c0d` o`5392f7`. Esto ayuda a evitar que la retirada desde Git colisione con confirmaciones reales.

   

1. En **Profundidad del clon de Git (opcional)**, puede crear un clon superficial con un historial truncado en el número de confirmaciones especificado. Si desea un clon completo, elija **Completo**.

1. En **Estado de la compilación (opcional)**, seleccione **Informe acerca de los estados de compilación al proveedor de origen al inicio y al final de sus compilaciones** si quiere que se notifique el estado del inicio y finalización de la compilación al proveedor de origen.

   Para poder informar del estado de la compilación al proveedor de fuentes, el usuario asociado al proveedor de fuentes debe tener acceso de escritura al repositorio. Si el usuario no tiene acceso de escritura, no es posible actualizar el estado de compilación. Para obtener más información, consulte [Acceso al proveedor de fuentes](access-tokens.md).

#### Crear una conexión a GitLab (CLI)
<a name="connections-gitlab-cli"></a>

Puede usar AWS Command Line Interface (AWS CLI) para crear una conexión. 

Para ello, utilice el comando **create-connection**. 

**importante**  
Una conexión creada a través del AWS CLI o AWS CloudFormation está en `PENDING` estado de forma predeterminada. Después de crear una conexión con la CLI o CloudFormation, utilice la consola para editar la conexión y establecer su estado`AVAILABLE`.

**Creación de una conexión**
+ Siga las instrucciones de la *Guía del usuario de la consola Developer Tools* para [crear una conexión a GitLab (CLI)](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-gitlab.html#connections-create-gitlab-cli).

# Prevención de la sustitución confusa entre servicios
<a name="cross-service-confused-deputy-prevention"></a>

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

Se recomienda utilizar las claves de contexto de condición [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)y las claves de contexto en las políticas de recursos para limitar los permisos que se AWS CodeBuild otorgan a otro servicio al recurso. Utiliza `aws:SourceArn` si desea que solo se asocie un recurso al acceso entre servicios. Utiliza `aws:SourceAccount` si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de `aws:SourceArn` con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si está especificando varios recursos, utilice la clave de condición de contexto global `aws:SourceArn` con caracteres comodines (`*`) para las partes desconocidas del ARN. Por ejemplo, `arn:aws:codebuild:*:123456789012:*`. 

Si el valor de `aws:SourceArn` no contiene el ID de cuenta, como un ARN de bucket de Amazon S3, debe utilizar ambas claves de contexto de condición global para limitar los permisos. 

El valor de `aws:SourceArn` debe ser el ARN CodeBuild del proyecto.

El siguiente ejemplo muestra cómo puede utilizar las claves de contexto de condición `aws:SourceAccount` global `aws:SourceArn` y las claves contextuales CodeBuild para evitar el confuso problema de los diputados.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "codebuild.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:codebuild:us-east-1:111122223333:project/MyProject"
                }
            }
        }
    ]
}
```

------