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

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 sus recursos de CodeBuild. 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 un repositorio de AWS CodeCommit)

  • 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 que AWS CodeBuild se conecte a Amazon Elastic 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 los permisos mínimos necesarios, la consola no funcionará según lo previsto.

Permisos necesarios para que AWS CodeBuild se conecte a Amazon Elastic Container Registry

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

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

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

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

Para obtener más información sobre cómo actualizar sus políticas, consulte Cómo permitir que los usuarios interactúen con CodeBuild.

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

La consola de AWS CodeBuild usa las siguientes acciones API para conectar con los proveedores de código fuente (como los repositorios de GitHub).

  • codebuild:ListConnectedOAuthAccounts

  • codebuild:ListRepositories

  • codebuild:PersistOAuthToken

  • codebuild:ImportSourceCredentials

Puede asociar proveedores de código fuente (como repositorios de GitHub) a sus proyectos de compilación a través de la consola de AWS CodeBuild. Para ello, primero debe agregar las acciones de API anteriores a las políticas de acceso de IAM asociadas al usuario que utiliza para acceder a la consola de AWS CodeBuild.

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 dando 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 CodeBuild también proporcionan permisos para realizar operaciones en otros servicios, como IAM, AWS CodeCommit, Amazon EC2, Amazon ECR, Amazon SNS y Eventos de Amazon CloudWatch, según sea necesario para las responsabilidades de los usuarios a los que se conceda la política en cuestión. Por ejemplo, la política AWSCodeBuildAdminAccess es una política de usuario de nivel administrativo que permite a los usuarios con esta política crear y administrar reglas de eventos de CloudWatch para compilaciones de proyectos y temas de Amazon SNS para notificaciones sobre eventos relacionados con proyectos (temas cuyos nombres tienen 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 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 para administrar proyectos de compilación de CodeBuild.

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 tener acceso a los artefactos de salida de compilación creados por CodeBuild, debe asociar también la política administrada por AWS denominada AmazonS3ReadOnlyAccess.

Para crear y administrar los roles de servicio de AWS, debe asociar también la política administrada por denominada IAMFullAccess.

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

AWSCodeBuildAdminAccess

La política AWSCodeBuildAdminAccess proporciona acceso completo a CodeBuild incluidos los permisos para administrar proyectos de compilación de CodeBuild. Aplique esta política solo a usuarios de nivel administrativo para concederles control total sobre los proyectos de CodeBuild, grupos de informes y recursos relacionados de su cuenta de AWS, incluida la posibilidad de eliminar proyectos y grupos de informes.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSServicesAccess", "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": "*" }, { "Sid": "CWLDeleteLogGroupAccess", "Action": [ "logs:DeleteLogGroup" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*" }, { "Sid": "SSMParameterWriteAccess", "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Sid": "SSMStartSessionAccess", "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/*", "arn:aws:codeconnections:*:*: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", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ] }

AWSCodeBuildDeveloperAccess

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

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

{ "Statement": [ { "Sid": "AWSServicesAccess", "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": "*" }, { "Sid": "SSMParameterWriteAccess", "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Sid": "SSMStartSessionAccess", "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/*", "arn:aws:codeconnections:*:*: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", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ], "Version": "2012-10-17" }

AWSCodeBuildReadOnlyAccess

La política AWSCodeBuildReadOnlyAccess otorga acceso de solo lectura a CodeBuild y a los recursos relacionados en otros servicios 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.

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

{ "Statement": [ { "Sid": "AWSServicesAccess", "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/*", "arn:aws:codeconnections:*:*: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" }

Políticas administradas y notificaciones de CodeBuild

CodeBuild admite notificaciones, que pueden notificar cambios importantes en los proyectos de compilación a los usuarios. La políticas administradas de CodeBuild incluyen instrucciones de políticas 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 de los usuarios a los temas, mostrar los temas que se pueden elegir como destinos para las reglas de notificación y mostrar los clientes de AWS Chatbot 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", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "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", "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.

Actualizaciones de CodeBuild a las políticas administradas de AWS

Es posible consultar los detalles sobre las actualizaciones de las políticas administradas de AWS para CodeBuild desde que este servicio comenzó a realizar el seguimiento de estos cambios. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS en Historial de revisiones de la guía del usuario de AWS CodeBuild.

Cambio Descripción Fecha

AWSCodeBuildAdminAccess, AWSCodeBuildDeveloperAccess y AWSCodeBuildReadOnlyAccess: actualización de políticas existentes

CodeBuild ha agregado un recurso a estas políticas para respaldar el cambio de marca de AWS CodeConnections.

Las políticas AWSCodeBuildAdminAccess, AWSCodeBuildDeveloperAccess y AWSCodeBuildReadOnlyAccess se han modificado para agregar un recurso, arn:aws:codeconnections:*:*:connection/*.

18 de abril de 2024

AWSCodeBuildAdminAccess y AWSCodeBuildDeveloperAccess: actualización de políticas existentes

CodeBuild añadió un permiso a estas políticas para admitir un tipo de notificación adicional mediante AWS Chatbot.

Las políticas de AWSCodeBuildAdminAccess y AWSCodeBuildDeveloperAccess se han modificado para añadir un permiso, chatbot:ListMicrosoftTeamsChannelConfigurations.

16 de mayo de 2023

CodeBuild empezó a rastrear los cambios

CodeBuild empezó a rastrear los cambios en sus políticas administradas de AWS.

16 de mayo de 2021

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 al utilizar la API de CodePipeline, los SDK de AWS o la AWS CLI. Cuando se utiliza la consola, se deben conceder permisos adicionales específicos de la consola. Para obtener más información, consulte Permisos necesarios para usar la consola de AWS CodeBuild.

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

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

Cómo permitir a un usuario obtener información sobre las flotas

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:

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

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 instrucción de política de ejemplo permite a un usuario crear proyectos de compilación con cualquier nombre, pero solo en la región us-east-2 de la cuenta 123456789012 y solo utilizando el rol de servicio de CodeBuild especificado:

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

La siguiente instrucción de política de ejemplo permite a un usuario crear proyectos de compilación con cualquier nombre, pero solo en la región us-east-2 de la cuenta 123456789012 y solo utilizando el rol de servicio de CodeBuild especificado. También impone que el usuario solo pueda usar el rol de servicio especificado con AWS CodeBuild y ningún otro servicio de AWS.

{ "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", "Condition": { "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"} } } ] }}

Cómo permitir a un usuario crear una flota

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:

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

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/*" } ] }

Cómo permitir a un usuario eliminar una flota

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:

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

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" } ] }

Cómo permitir a un usuario cambiar una flota

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:

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

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

Cómo permitir a un usuario obtener una lista de flotas

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:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListFleets", "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": "*" } ] }

Cómo permitir a un usuario agregar una política de permisos para un rol de servicio de flota

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:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildFleetVpcCreateNI", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:security-group/security-group-id-1", "arn:aws:ec2:region:account-id: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:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id: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:

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

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

Permitir el acceso de CodeBuild a los servicios de AWS 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": "*" } ] }