

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.

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