Usando políticas baseadas em identidade para AWS CodeBuild - AWS CodeBuild

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando políticas baseadas em identidade para AWS CodeBuild

Este tópico fornece exemplos de políticas baseadas em identidade que demonstram como um administrador de conta pode anexar políticas de permissões a IAM identidades (ou seja, usuários, grupos e funções) e, assim, conceder permissões para realizar operações em recursos. AWS CodeBuild

Importante

Recomendamos que você primeiro analise os tópicos introdutórios que explicam os conceitos básicos e as opções disponíveis para gerenciar o acesso aos seus CodeBuild recursos. Para obter mais informações, consulte Visão geral do gerenciamento de permissões de acesso aos seus AWS CodeBuild recursos.

O exemplo a seguir mostra uma política de permissões que permite que um usuário obtenha informações sobre projetos de build somente na região us-east-2, para a conta 123456789012, para qualquer projeto de build que comece com o nome my:

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

Permissões necessárias para usar o console do AWS CodeBuild

Um usuário que usa o AWS CodeBuild console deve ter um conjunto mínimo de permissões que permita ao usuário descrever outros AWS recursos para a AWS conta. Você deve ter permissões dos seguintes serviços:

  • AWS CodeBuild

  • Amazon CloudWatch

  • CodeCommit (se você estiver armazenando seu código-fonte em um AWS CodeCommit repositório)

  • Amazon Elastic Container Registry (AmazonECR) (se você estiver usando um ambiente de construção que depende de uma imagem do Docker em um repositório da AmazonECR)

    nota

    Em 26 de julho de 2022, a IAM política padrão foi atualizada. Para obter mais informações, consulte Permissões necessárias para se conectar AWS CodeBuild ao Amazon Elastic Container Registry.

  • Amazon Elastic Container Service (AmazonECS) (se você estiver usando um ambiente de construção que depende de uma imagem do Docker em um repositório da AmazonECR)

  • AWS Identity and Access Management (IAM)

  • AWS Key Management Service (AWS KMS)

  • Amazon Simple Storage Service (Amazon S3)

Se você criar uma IAM política mais restritiva do que as permissões mínimas exigidas, o console não funcionará conforme o esperado.

Permissões necessárias para se conectar AWS CodeBuild ao Amazon Elastic Container Registry

Em 26 de julho de 2022, AWS CodeBuild atualizou sua IAM política padrão de ECR permissão da Amazon. As seguintes permissões foram removidas da política padrão:

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

Para CodeBuild projetos criados antes de 26 de julho de 2022, recomendamos que você atualize sua política com a seguinte ECR política da Amazon:

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

Para obter mais informações sobre a atualização da política, consulte Permita que os usuários interajam com CodeBuild.

Permissões necessárias para que o AWS CodeBuild console se conecte aos provedores de origem

O AWS CodeBuild console usa as seguintes API ações para se conectar aos provedores de origem (por exemplo, GitHub repositórios).

  • codebuild:ListConnectedOAuthAccounts

  • codebuild:ListRepositories

  • codebuild:PersistOAuthToken

  • codebuild:ImportSourceCredentials

Você pode associar provedores de origem (como GitHub repositórios) aos seus projetos de compilação usando o AWS CodeBuild console. Para fazer isso, você deve primeiro adicionar as API ações anteriores para IAM acessar as políticas associadas ao usuário que você usa para acessar o AWS CodeBuild console.

As PersistOAuthToken API ações ListConnectedOAuthAccountsListRepositories,, e não devem ser chamadas pelo seu código. Portanto, essas API ações não estão incluídas no AWS CLI AWS SDKs e.

AWS políticas gerenciadas (predefinidas) para AWS CodeBuild

AWS aborda muitos casos de uso comuns fornecendo IAM políticas autônomas que são criadas e administradas pela AWS. Essas políticas AWS gerenciadas concedem as permissões necessárias para casos de uso comuns, para que você não precise investigar quais permissões são necessárias. As políticas gerenciadas CodeBuild também fornecem permissões para realizar operações em outros serviçosIAM, como AWS CodeCommit, AmazonEC2, Amazon ECRSNS, Amazon e Amazon CloudWatch Events, conforme exigido pelas responsabilidades dos usuários que receberam a política em questão. Por exemplo, a AWSCodeBuildAdminAccess política é uma política de usuário de nível administrativo que permite aos usuários com essa política criar e gerenciar regras de CloudWatch eventos para compilações de projetos e tópicos da SNS Amazon para notificações sobre eventos relacionados a projetos (tópicos cujos nomes são prefixados arn:aws:codebuild: com), bem como administrar projetos e grupos de relatórios em. CodeBuild Para obter mais informações, consulte Políticas AWS gerenciadas no Guia IAM do usuário.

As políticas AWS gerenciadas a seguir, que você pode anexar aos usuários em sua conta, são específicas de AWS CodeBuild.

AWSCodeBuildAdminAccess

Fornece acesso total à CodeBuild inclusão de permissões para administrar projetos de CodeBuild compilação.

AWSCodeBuildDeveloperAccess

Fornece acesso CodeBuild , mas não permite, a administração do projeto de compilação.

AWSCodeBuildReadOnlyAccess

Fornece acesso somente para leitura a. CodeBuild

Para acessar os artefatos de saída de compilação CodeBuild criados, você também deve anexar a política AWS gerenciada chamadaAmazonS3ReadOnlyAccess.

Para criar e gerenciar funções CodeBuild de serviço, você também deve anexar a política AWS gerenciada chamadaIAMFullAccess.

Você também pode criar suas próprias IAM políticas personalizadas para permitir permissões para CodeBuild ações e recursos. Você pode anexar essas políticas personalizadas a usuários ou grupos do que exijam essas permissões.

AWSCodeBuildAdminAccess

A AWSCodeBuildAdminAccess política fornece acesso total a CodeBuild, incluindo permissões para administrar projetos de CodeBuild compilação. Aplique essa política somente a usuários de nível administrativo para conceder a eles controle total sobre CodeBuild projetos, grupos de relatórios e recursos relacionados em sua AWS conta, incluindo a capacidade de excluir projetos e grupos de relatórios.

A política AWSCodeBuildAdminAccess contém a seguinte declaração:

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

A AWSCodeBuildDeveloperAccess política permite acesso a todas as funcionalidades e recursos relacionados ao projeto CodeBuild e ao grupo de relatórios. Essa política não permite que os usuários excluam CodeBuild projetos, grupos de relatórios ou recursos relacionados em outros AWS serviços, como CloudWatch Eventos. Recomendamos que você aplique essa política à maioria dos usuários.

A política AWSCodeBuildDeveloperAccess contém a seguinte declaração:

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

A AWSCodeBuildReadOnlyAccess política concede acesso somente para leitura CodeBuild e recursos relacionados em outros AWS serviços. Aplique esta política a usuários que possam visualizar e executar compilações, visualizar projetos e grupos de relatórios, mas que não possam fazer alterações neles.

A política AWSCodeBuildReadOnlyAccess contém a seguinte declaração:

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

CodeBuild políticas e notificações gerenciadas

CodeBuild suporta notificações, que podem notificar os usuários sobre mudanças importantes na criação de projetos. Políticas gerenciadas para CodeBuild incluir declarações de política para funcionalidade de notificação. Para obter mais informações, consulte O que são notificações?.

Permissões relacionadas a notificações em políticas gerenciadas de acesso total

A política gerenciada AWSCodeBuildFullAccess inclui as declarações a seguir para permitir acesso total às notificações. Os usuários com essa política gerenciada aplicada também podem criar e gerenciar SNS tópicos da Amazon para notificações, inscrever e cancelar a inscrição de usuários em tópicos, listar tópicos a serem escolhidos como alvos para as regras de notificação e listar AWS Chatbot clientes configurados para o 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": "*" }

Permissões relacionadas a notificações em políticas gerenciadas somente leitura

A política gerenciada AWSCodeBuildReadOnlyAccess inclui as instruções a seguir para permitir acesso somente leitura às notificações. Os usuários com essa política gerenciada aplicada podem visualizar notificações de recursos, mas não podem criá-los, gerenciá-los ou assiná-los.

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

Permissões relacionadas a notificações em outras políticas gerenciadas

A política gerenciada AWSCodeBuildDeveloperAccess inclui as instruções a seguir para permitir que os usuários criem, editem e assinem notificações. Os usuários não podem excluir regras de notificação nem gerenciar tags de 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 obter mais informações IAM e notificações, consulte Identity and Access Management for AWS CodeStar Notificações.

CodeBuild atualizações nas políticas AWS gerenciadas

Veja detalhes sobre as atualizações das políticas AWS gerenciadas CodeBuild desde que esse serviço começou a rastrear essas alterações. Para receber alertas automáticos sobre alterações nesta página, assine o RSS feed emAWS CodeBuild Histórico do documento do Guia do Usuário .

Alteração Descrição Data

AWSCodeBuildAdminAccess,AWSCodeBuildDeveloperAccess, e AWSCodeBuildReadOnlyAccess — Atualização das políticas existentes

CodeBuild adicionou um recurso a essas políticas para apoiar o Conexões de código da AWS rebranding.

As AWSCodeBuildReadOnlyAccess políticas AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccess,, e foram alteradas para adicionar um recurso,arn:aws:codeconnections:*:*:connection/*.

18 de abril de 2024

AWSCodeBuildAdminAccess e AWSCodeBuildDeveloperAccess: atualização em políticas existentes

CodeBuild adicionou uma permissão a essas políticas para oferecer suporte a um tipo de notificação adicional usando AWS Chatbot.

As políticas AWSCodeBuildAdminAccess e AWSCodeBuildDeveloperAccess foram alteradas para adicionar uma permissão, chatbot:ListMicrosoftTeamsChannelConfigurations.

16 de maio de 2023

CodeBuild começou a rastrear alterações

CodeBuild começou a rastrear as mudanças em suas políticas AWS gerenciadas.

16 de maio de 2021

Exemplos de política gerenciada pelo cliente

Nesta seção, você pode encontrar exemplos de políticas de usuário que concedem permissões para ações do AWS CodeBuild . Essas políticas funcionam quando você está usando o CodeBuild API, AWS SDKs, ou AWS CLI. Ao usar o console, é necessário conceder permissões adicionais específicas e ele. Para ter mais informações, consulte Permissões necessárias para usar o console do AWS CodeBuild.

Você pode usar os exemplos de IAM políticas a seguir para limitar o CodeBuild acesso de seus usuários e funções.

Tópicos

Permitir que um usuário obtenha informações sobre projetos de compilação

O seguinte exemplo de declaração de política permite que um usuário obtenha informações sobre projetos de compilação na região us-east-2, para a conta 123456789012, para qualquer projeto de compilação que comece com o nome my:

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

Permitir que um usuário obtenha informações sobre frotas

O exemplo de declaração de política a seguir permite que um usuário obtenha informações sobre frotas na us-east-2 região para fins de conta123456789012:

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

Permitir que um usuário obtenha informações sobre grupos de relatórios

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre grupos de relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário obtenha informações sobre relatórios

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário crie projetos de compilação

O exemplo de declaração de política a seguir permite que um usuário crie projetos de construção com qualquer nome, mas somente na us-east-2 Região para a conta 123456789012 e usando somente a função CodeBuild de serviço especificada:

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

O exemplo de declaração de política a seguir permite que um usuário crie projetos de construção com qualquer nome, mas somente na us-east-2 Região para a conta 123456789012 e usando somente a função CodeBuild de serviço especificada. Também impõe que o usuário só possa usar a função de serviço especificada com AWS CodeBuild e não com nenhum outro AWS serviço.

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

Permitir que um usuário crie uma frota

O exemplo de declaração de política a seguir permite que um usuário crie uma frota na us-east-2 região para uma conta123456789012:

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

Permitir que um usuário crie um grupo de relatórios

O exemplo de declaração de política a seguir permite que um usuário crie um grupo de relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário exclua uma frota

O exemplo de declaração de política a seguir permite que um usuário exclua uma frota na us-east-2 região por conta123456789012:

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

Permitir que um usuário exclua um grupo de relatórios

O seguinte exemplo de declaração de políticas permite que um usuário exclua um grupo de relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário exclua um relatório

O seguinte exemplo de declaração de políticas permite que um usuário exclua um relatório na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário exclua projetos de compilação

O seguinte exemplo de declaração de política permite que um usuário exclua projetos de compilação na região us-east-2, para a conta 123456789012, para qualquer projeto de compilação que comece com o nome my:

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

Permitir que um usuário obtenha uma lista de nomes de projetos de compilação

O seguinte exemplo de declaração de política permite que um usuário obtenha uma lista de nomes de projeto de build para a mesma conta:

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

Permitir que um usuário altere informações sobre projetos de compilação

O seguinte exemplo de declaração de política permite que um usuário altere informações sobre projetos de compilação com qualquer nome, porém somente na região us-east-2, para a conta 123456789012, e somente para a função de serviço AWS CodeBuild especificada:

{ "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 um usuário altere uma frota

O exemplo de declaração de política a seguir permite que um usuário altere uma frota na us-east-2 região por conta123456789012:

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

Permitir que um usuário altere um grupo de relatórios

O seguinte exemplo de declaração de políticas permite que um usuário altere um grupo de relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário obtenha informações sobre compilações

O seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre compilações na região us-east-2, para a conta 123456789012, para projetos de compilação denominados my-build-project e 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 que um usuário obtenha uma lista de compilações IDs para um projeto de construção

O exemplo de declaração de política a seguir permite que um usuário obtenha uma lista de construções IDs na us-east-2 região 123456789012 para considerar os projetos de construção chamados my-build-project emy-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 um usuário obtenha uma lista de construções IDs

O exemplo de declaração de política a seguir permite que um usuário obtenha uma lista de todas IDs as versões da mesma conta:

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

Permitir que um usuário obtenha uma lista de frotas

O exemplo de declaração de política a seguir permite que um usuário obtenha uma lista de frotas na us-east-2 região por conta123456789012:

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

Permitir que um usuário obtenha uma lista de grupos de relatórios

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de grupos de relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário obtenha uma lista de relatórios

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário obtenha uma lista de relatórios para um grupo de relatórios

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de relatórios para um grupo de relatórios na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário obtenha uma lista de casos de teste para um relatório

O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de casos de teste para um relatório na região us-east-2, para a conta 123456789012:

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

Permitir que um usuário comece a executar compilações

O seguinte exemplo de declaração de políticas permite que um usuário execute compilações na região us-east-2, para a conta 123456789012 para um projeto de compilação que comece com o nome my:

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

Permitir que um usuário tente parar compilações

O seguinte exemplo de declaração de política permite que um usuário tente parar a execução de builds somente na região us-east-2, para a conta 123456789012, para qualquer projeto de build que comece com o nome my:

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

Permitir que um usuário tente excluir compilações

Ao seguinte exemplo de declaração de política permite que um usuário tente excluir compilações somente na região us-east-2 da conta 123456789012 de qualquer projeto de compilação que comece com o nome my:

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

Permitir que um usuário obtenha informações sobre imagens do Docker que são gerenciadas pelo CodeBuild

O exemplo de declaração de política a seguir permite que um usuário obtenha informações sobre todas as imagens do Docker que são gerenciadas por CodeBuild:

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

Permitir que um usuário adicione uma política de permissão para uma função de serviço de frota

O exemplo de declaração de política de recursos a seguir permite que um usuário adicione uma política de VPC permissão para uma função de serviço de frota:

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

O exemplo de declaração de política de recursos a seguir permite que um usuário adicione uma política de permissão personalizada da Amazon Managed Image (AMI) para uma função de serviço de frota:

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

O exemplo de declaração de política de confiança a seguir permite que um usuário adicione uma política de permissão para uma função de serviço de frota:

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

Permitir CodeBuild acesso aos AWS serviços necessários para criar uma interface VPC de rede

O exemplo de declaração de política a seguir concede AWS CodeBuild permissão para criar uma interface de rede em uma VPC com duas sub-redes:

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

Use uma declaração de negação para AWS CodeBuild evitar a desconexão dos provedores de origem

O exemplo de declaração de política a seguir usa uma instrução de negação para impedir que o AWS CodeBuild se desconecte dos provedores de origem. Ele usa codebuild:DeleteOAuthToken, que é o inverso de codebuild:PersistOAuthToken e codebuild:ImportSourceCredentials, para se conectar com os provedores de origem. Para obter mais informações, consulte Permissões necessárias para que o AWS CodeBuild console se conecte aos provedores de origem.

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