Uso de políticas basadas en identidades para AWS CodeBuild - AWS CodeBuild

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.

Uso de políticas basadas en identidades para AWS CodeBuild

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 consulte primero los temas de introducción en los que se explican los conceptos básicos y las opciones disponibles para administrar el acceso a su CodeBuild Recursos. Para obtener más información, consulte Información general sobre la administración de los permisos de acceso a los recursos de AWS CodeBuild.

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:

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

Permisos necesarios para usar la consola de AWS CodeBuild

Un usuario que utilice la consola de AWS CodeBuild debe tener un conjunto mínimo de permisos que le permita describir otros recursos de AWS en la cuenta de AWS. Debe tener permisos de los siguientes servicios:

  • AWS CodeBuild

  • Amazon CloudWatch

  • CodeCommit (si va a almacenar el código fuente en unAWS CodeCommitrepositorio)

  • 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

    A partir del 26 de julio de 2022, se actualizó la política de IAM predeterminada. Para obtener más información, consulte Permisos necesarios paraAWS CodeBuildpara conectarse a Amazon Container Registry.

  • 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 el mínimo de permisos necesarios, la consola no funcionará del modo esperado.

Permisos necesarios paraAWS CodeBuildpara conectarse a Amazon Container Registry

A partir del 26 de julio de 2022,AWS CodeBuildha actualizado su política de IAM predeterminada para los permisos de Amazon ECR. Se han quitado los siguientes permisos de la política predeterminada:

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

Para CodeBuild 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 acerca de la actualización de su póliza, consulteAñadirCodeBuildpermisos de acceso a un grupo de IAM o a un usuario de IAM.

Permisos necesarios para que la consola de AWS CodeBuild se conecte a los proveedores de código fuente

LaAWS CodeBuildconsole usa las siguientes acciones de API para conectarse a los proveedores de origen (por ejemplo, GitHub repositorios).

  • codebuild:ListConnectedOAuthAccounts

  • codebuild:ListRepositories

  • codebuild:PersistOAuthToken

  • codebuild:ImportSourceCredentials

Puede asociar proveedores de origen (como GitHub repositorios) con tus proyectos de compilación mediante elAWS CodeBuildConsola de. Para ello, primero debe agregar las acciones de API anteriores a las políticas de acceso de IAM asociadas con el usuario de IAM que utiliza para acceder aAWS CodeBuildConsola de.

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 API no se incluyen en la AWS CLI ni en los SDK de AWS.

Políticas administradas (predefinidas) por AWS para AWS CodeBuild

AWS aborda muchos casos de uso comunes proporcionando políticas de IAM independientes creadas y administradas por AWS. Estas políticas administradas por AWS conceden los permisos necesarios para casos de uso comunes, lo que le evita tener que investigar los permisos que se necesitan. Las políticas administradas de para CodeBuild también proporcionan permisos para realizar operaciones en otros servicios, como IAM,AWS CodeCommit, Amazon EC2, Amazon ECR, Amazon SNS y Amazon CloudWatch Eventos, según se requiera para las responsabilidades de los usuarios a los que se les ha concedido la política en cuestión. Por ejemplo, elAWSCodeBuildAdminAccesspolicy es una política de usuario de nivel administrativo que permite a los usuarios con esta política crear y administrar CloudWatchReglas de eventos para compilaciones de proyectos y temas de Amazon SNS para notificaciones sobre eventos relacionados con el proyecto (temas cuyos nombres llevan el prefijoarn:aws:codebuild:), así como administrar proyectos y grupos de informes en CodeBuild. Para más información, consulte Políticas administradas de AWS en la Guía del usuario de IAM.

Las siguientes políticas administradas por AWS, que pueden asociarse a los usuarios de la cuenta, son específicas de AWS CodeBuild:

AWSCodeBuildAdminAccess

Proporciona acceso completo a CodeBuild incluidos los permisos de administración CodeBuild proyectos de compilación.

AWSCodeBuildDeveloperAccess

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

AWSCodeBuildReadOnlyAccess

Proporciona acceso de solo lectura a CodeBuild.

Para acceder a artefactos de salida de compilación que CodeBuild crea, también debe adjuntar elAWSpolítica administrada denominadaAmazonS3ReadOnlyAccess.

Crear y administrar CodeBuild funciones de servicio, también debe adjuntar elAWSpolítica administrada denominadaIAMFullAccess.

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 IAM que requieran esos permisos.

AWSCodeBuildAdminAccess

LaAWSCodeBuildAdminAccessproporciona acceso completo a CodeBuild, incluidos los permisos para administrar CodeBuild proyectos de compilación. Aplicar esta política solo a los usuarios de nivel administrativo para otorgarles control total sobre CodeBuild proyectos, grupos de informes y recursos relacionados en suAWS, que incluye la posibilidad de eliminar proyectos y grupos de informes.

La política AWSCodeBuildAdminAccess contiene la siguiente instrucción:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codebuild:*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cloudwatch:GetMetricStatistics", "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecr:DescribeRepositories", "ecr:ListImages", "elasticfilesystem:DescribeFileSystems", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "logs:DeleteLogGroup" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*" }, { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:UpdateConnectionInstallation", "codestar-connections:TagResource", "codestar-connections:UntagResource", "codestar-connections:ListConnections", "codestar-connections:ListInstallationTargets", "codestar-connections:ListTagsForResource", "codestar-connections:GetConnection", "codestar-connections:GetIndividualAccessToken", "codestar-connections:GetInstallationUrl", "codestar-connections:PassConnection", "codestar-connections:StartOAuthHandshake", "codestar-connections:UseConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*" }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations" ], "Resource": "*" } ] }

AWSCodeBuildDeveloperAccess

LaAWSCodeBuildDeveloperAccesspermite el acceso a todas las funciones de CodeBuild y recursos relacionados con los grupos de proyectos e informes. Esta política no permite a los usuarios eliminar CodeBuild proyectos o grupos de informes, o recursos relacionados en otrosAWSservicios, como CloudWatch Eventos: . Le recomendamos que aplique esta política a la mayoría de los usuarios.

La política AWSCodeBuildDeveloperAccess contiene la siguiente instrucción:

{ "Statement": [ { "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "codebuild:RetryBuild", "codebuild:RetryBuildBatch", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*" }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations" ], "Resource": "*" } ], "Version": "2012-10-17" }

AWSCodeBuildReadOnlyAccess

LaAWSCodeBuildReadOnlyAccessconcede acceso de solo lectura a CodeBuild y recursos relacionados en otrosAWSServicios. 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.

La política AWSCodeBuildReadOnlyAccess contiene la siguiente instrucción:

{ "Statement": [ { "Action": [ "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:List*", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*" }, { "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" } ], "Version": "2012-10-17" }

CodeBuild políticas administradas y notificaciones

CodeBuild admite notificaciones, que pueden notificar a los usuarios sobre cambios importantes para crear proyectos. Políticas administradas de para CodeBuild incluir declaraciones de política para la funcionalidad de notificación. Para obtener más información, consulte ¿Qué son las notificaciones?

Permisos relacionados con las notificaciones en políticas administradas de acceso total

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

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

Permisos relacionados con las notificaciones en políticas administradas de solo lectura

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" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "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

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" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild*"} } }, { "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" ], "Resource": "*" }

Para obtener más información acerca de IAM y las notificaciones, consulteIdentity and Access Management CodeStar Notificaciones.

Ejemplos de políticas administradas por los clientes

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,AWSSDK oAWS 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 consola de AWS CodeBuild.

Puede utilizar las siguientes políticas de IAM de ejemplo para limitar CodeBuild acceso a usuarios y roles de IAM.

Temas

Permitir que un usuario obtenga información sobre los proyectos de compilación

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:

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

Permitir que un usuario obtenga información sobre los grupos de informes

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:

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

Permitir que un usuario obtenga información sobre los informes

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:

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

Permitir que un usuario pueda crear proyectos de compilación

La siguiente declaración de política de ejemplo permite a un usuario crear proyectos de compilación con cualquier nombre, pero solo en laus-east-2Región para la cuenta123456789012y solo se usa el CodeBuild Rol de servicio:

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

Permitir que un usuario pueda crear un grupo de informes

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:

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

Permitir que un usuario pueda eliminar un grupo de informes

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:

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

Permitir que un usuario pueda eliminar un informe

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:

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

Permitir que un usuario pueda eliminar proyectos de compilación

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:

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

Permitir que un usuario pueda obtener una lista con los nombres de los proyectos de compilación

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:

{ "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

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:

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

Permitir que un usuario pueda cambiar un grupo de informes

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:

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

Permitir que un usuario obtenga información sobre las compilaciones

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:

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

Permitir un usuario pueda obtener una lista con los identificadores de compilación de un proyecto de compilación

La siguiente instrucción de política de ejemplo permite a un usuario obtener una lista de identificadores de compilación 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:

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

Permitir que un usuario pueda obtener una lista de identificadores de compilación

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

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

Permitir que a un usuario pueda obtener una lista de grupos de informes

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:

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

Permitir que un usuario pueda obtener una lista de informes

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:

{ "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

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:

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

Permitir que un usuario pueda obtener una lista con los casos de prueba de un informe

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:

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

Permitir que un usuario pueda comenzar a ejecutar compilaciones

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:

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

Permitir que un usuario pueda intentar detener las compilaciones

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:

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

Permitir que un usuario pueda intentar eliminar compilaciones

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:

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

Permitir que usuario obtenga información sobre las imágenes de Docker administradas por CodeBuild

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:

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

Permitir CodeBuild Acceso aAWSservicios necesarios para crear una interfaz de red de VPC

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

{ "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:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "codebuild.amazonaws.com" }, "ArnEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:subnet/subnet-id-2" ] } } } ] }

Utilizar una instrucción de denegación para evitar que AWS CodeBuild se desconecte de los proveedores de código fuente

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 consola de AWS CodeBuild se conecte a los proveedores de código fuente.

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