Usar políticas baseadas em identidade para o 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 identidades do IAM (ou seja, usuários, grupos e funções) e, assim, conceder permissões para realizar operações em recursos do AWS CodeBuild.
Importante
Recomendamos que você analise primeiramente os tópicos introdutórios que explicam os conceitos básicos e as opções disponíveis para gerenciar o acesso aos recursos do CodeBuild. Para obter mais informações, consulte Visão geral do gerenciamento de permissões de acesso aos recursos do AWS CodeBuild.
Tópicos
- Permissões necessárias para usar o console do AWS CodeBuild
- Permissões necessárias ao AWS CodeBuild para se conectar ao Amazon Elastic Container Registry
- Permissões necessárias para o console do AWS CodeBuild se conectar a provedores de origem
- Políticas gerenciadas pela AWS (predefinidas) para o AWS CodeBuild
- Notificações e políticas gerenciadas do CodeBuild
- Atualizações do CodeBuild para políticas gerenciadas da AWS.
- Exemplos de política gerenciada pelo cliente
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 console do AWS CodeBuild deve ter um conjunto mínimo de permissões que lhe permita descrever outros recursos da AWS para a conta da AWS. Você deve ter permissões dos seguintes serviços:
-
AWS CodeBuild
-
Amazon CloudWatch
-
CodeCommit (se estiver armazenando o código-fonte em um repositório do AWS CodeCommit)
-
Amazon Elastic Container Registry (Amazon ECR) (se você estiver usando um ambiente de compilação que dependa de uma imagem do Docker em um repositório do Amazon ECR)
nota
Desde 26 de julho de 2022, a política padrão do IAM vem sendo atualizada. Para obter mais informações, consulte Permissões necessárias ao AWS CodeBuild para se conectar ao Amazon Elastic Container Registry.
-
Amazon Elastic Container Service (Amazon ECS) (se você estiver usando um ambiente de compilação que dependa de uma imagem do Docker em um repositório do Amazon ECR)
-
AWS Identity and Access Management (IAM)
-
AWS Key Management Service (AWS KMS)
-
Amazon Simple Storage Service (Amazon S3)
Se você criar uma política do IAM mais restritiva do que as permissões mínimas necessárias, o console não funcionará como pretendido.
Permissões necessárias ao AWS CodeBuild para se conectar ao Amazon Elastic Container Registry
Em 26 de julho de 2022, o AWS CodeBuild atualizou a política padrão do IAM para a permissão do Amazon ECR. As seguintes permissões foram removidas da política padrão:
"ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload"
Para projetos do CodeBuild criados antes de 26 de julho de 2022, recomendamos que você atualize a política com a seguinte política do Amazon ECR:
"Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ]
Para obter mais informações sobre a atualização da política, consulte Permitir que os usuários interajam com o CodeBuild.
Permissões necessárias para o console do AWS CodeBuild se conectar a provedores de origem
O console do AWS CodeBuild usa as ações de API a seguir para se conectar a provedores de origem (por exemplo, repositórios do GitHub).
-
codebuild:ListConnectedOAuthAccounts
-
codebuild:ListRepositories
-
codebuild:PersistOAuthToken
-
codebuild:ImportSourceCredentials
É possível associar provedores de origem (como repositórios do GitHub) a seus projetos de compilação usando o console do AWS CodeBuild. Para isso, é necessário primeiramente adicionar as ações da API anteriores às políticas de acesso do IAM associadas ao usuário utilizado para acessar o console do AWS CodeBuild.
As ações de API ListConnectedOAuthAccounts
, ListRepositories
e PersistOAuthToken
não devem ser chamadas pelo código. Por isso, essas ações de API não são incluídas na AWS CLI e nos SDKs da AWS.
Políticas gerenciadas pela AWS (predefinidas) para o AWS CodeBuild
A AWS aborda muitos casos de uso comuns fornecendo políticas autônomas do IAM que são criadas e administradas pela AWS. Essas políticas gerenciadas da AWS concedem permissões necessárias para casos de uso comuns, de modo que você possa evitar a necessidade de investigar quais permissões são necessárias. As políticas gerenciadas para o CodeBuild também fornecem permissões para realizar operações em outros serviços, como o IAM, o AWS CodeCommit, o Amazon EC2, o Amazon ECR, o Amazon SNS e o Amazon CloudWatch Events, conforme necessário para as responsabilidades dos usuários que receberam a política em questão. Por exemplo, a política AWSCodeBuildAdminAccess
é uma política de usuário de nível administrativo que permite que os usuários com essa política criem e gerenciem regras do CloudWatch Events para compilações de projetos e tópicos do Amazon SNS para notificações sobre eventos relacionados ao projeto (tópicos que tenham nomes prefixados com arn:aws:codebuild:
), bem como administrar projetos e grupos de relatórios no CodeBuild. Para obter mais informações, consulte Políticas gerenciadas pela AWS no Guia do usuário do IAM.
As políticas gerenciadas pela AWS a seguir, que você pode anexar a usuários em sua conta, são específicas do AWS CodeBuild.
- AWSCodeBuildAdminAccess
-
Concede acesso completo ao CodeBuild, incluindo permissões para administrar projetos de compilação do CodeBuild.
- AWSCodeBuildDeveloperAccess
-
Concede acesso ao CodeBuild, mas não permite a administração de projetos de compilação.
- AWSCodeBuildReadOnlyAccess
-
Concede acesso somente leitura ao CodeBuild.
Para acessar artefatos de saída da compilação que o CodeBuild criar, anexe a política gerenciada da AWS chamada AmazonS3ReadOnlyAccess
.
Para criar e gerenciar perfis de serviço do CodeBuild, também é necessário anexar a política gerenciada da AWS chamada IAMFullAccess
.
Também é possível criar as próprias políticas do IAM personalizadas a fim de conceder permissões para ações e recursos do CodeBuild. Você pode anexar essas políticas personalizadas a usuários ou grupos do que exijam essas permissões.
AWSCodeBuildAdminAccess
A política AWSCodeBuildAdminAccess
fornece acesso completo ao CodeBuild, incluindo permissões para administrar projetos de compilação do CodeBuild. Aplique esta política somente a usuários de nível administrativo para conceder a eles controle total sobre projetos do CodeBuild, grupos de relatórios e recursos relacionados na conta da AWS, incluindo a possibilidade 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 política AWSCodeBuildDeveloperAccess
permite o acesso a todas as funcionalidades do CodeBuild e a recursos relacionados ao projeto e ao grupo de relatórios. Essa política não permite que os usuários excluam projetos do CodeBuild, grupos de relatórios ou recursos relacionados em outros serviços da AWS, como o CloudWatch Events. 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 política AWSCodeBuildReadOnlyAccess
concede acesso somente leitura ao CodeBuild e a recursos relacionados em outros serviços da AWS. 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"
}
Notificações e políticas gerenciadas do CodeBuild
O CodeBuild é compatível com notificações, que podem notificar os usuários sobre alterações importantes nos projetos de compilação. As políticas gerenciadas para o CodeBuild incluem declarações de políticas para a 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 tópicos do Amazon SNS para notificações, assinar e cancelar a assinatura de usuários aos tópicos, listar tópicos a serem escolhidos como destinos para regras de notificação e listar clientes do AWS Chatbot configurados no 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 sobre o IAM e notificações, consulte Identity and Access Management for AWS CodeStar Notifications.
Atualizações do CodeBuild para políticas gerenciadas da AWS.
Visualize detalhes sobre atualizações em políticas gerenciadas da AWS para o CodeBuild desde que esse serviço começou a monitorar essas alterações. Para obter alertas automáticos sobre alterações feitas nesta página, assine o feed RSS em Histórico de documentação do Guia do usuário do AWS CodeBuild.
Alteração | Descrição | Data |
---|---|---|
|
O CodeBuild adicionou um recurso a essas políticas para apoiar o rebranding do Conexões de código da AWS. As políticas |
18 de abril de 2024 |
|
O CodeBuild adicionou uma permissão a essas políticas para oferecer compatibilidade com um tipo de notificação adicional usando AWS Chatbot. As políticas |
16 de maio de 2023 |
O CodeBuild começou a monitorar as alterações |
O CodeBuild começou a monitorar as alterações nas políticas gerenciadas da AWS. |
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 a API do CodeBuild, os AWS SDKs ou a AWS CLI. Ao usar o console, é necessário conceder permissões adicionais específicas e ele. Para obter mais informações, consulte Permissões necessárias para usar o console do AWS CodeBuild.
É possível usar os seguintes exemplos de política do IAM para limitar o acesso ao CodeBuild para os usuários e os perfis.
Tópicos
- Permitir que um usuário obtenha informações sobre projetos de compilação
- Permitir que um usuário obtenha informações sobre frotas
- Permitir que um usuário obtenha informações sobre grupos de relatórios
- Permitir que um usuário obtenha informações sobre relatórios
- Permitir que um usuário crie projetos de compilação
- Permitir que um usuário crie uma frota
- Permitir que um usuário crie um grupo de relatórios
- Permitir que um usuário exclua uma frota
- Permitir que um usuário exclua um grupo de relatórios
- Permitir que um usuário exclua um relatório
- Permitir que um usuário exclua projetos de compilação
- Permitir que um usuário obtenha uma lista de nomes de projetos de compilação
- Permitir que um usuário altere informações sobre projetos de compilação
- Permitir que um usuário altere uma frota
- Permitir que um usuário altere um grupo de relatórios
- Permitir que um usuário obtenha informações sobre compilações
- Permitir que um usuário obtenha uma lista de IDs de compilações de um projeto de compilação
- Permitir que um usuário obtenha uma lista de IDs de compilações
- Permitir que um usuário obtenha uma lista de frotas
- Permitir que um usuário obtenha uma lista de grupos de relatórios
- Permitir que um usuário obtenha uma lista de relatórios
- Permitir que um usuário obtenha uma lista de relatórios para um grupo de relatórios
- Permitir que um usuário obtenha uma lista de casos de teste para um relatório
- Permitir que um usuário comece a executar compilações
- Permitir que um usuário tente parar compilações
- Permitir que um usuário tente excluir compilações
- Permitir que um usuário obtenha informações sobre imagens do Docker que são gerenciadas pelo CodeBuild
- Permitir que um usuário adicione uma política de permissão para um perfil de serviço de frota
- Permitir que o CodeBuild acesse os serviços da AWS necessários para criar uma interface de rede da VPC
- Usar uma instrução de negação para impedir que o AWS CodeBuild se desconecte dos provedores de origem
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 seguinte exemplo de declaração de políticas permite que um usuário obtenha informações sobre frotas na região us-east-2
, para a conta 123456789012
:
{ "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 compilação com qualquer nome, porém somente na região us-east-2
, para a conta 123456789012
, e somente para o perfil de serviço especificado do CodeBuild.
{ "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 compilação com qualquer nome, porém somente na região us-east-2
, para a conta 123456789012
, e somente para o perfil de serviço especificado do CodeBuild. Também impõe que o usuário só possa usar o perfil de serviço especificado com AWS CodeBuild e não com outros serviços da 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"} } } ] }}
Permitir que um usuário crie uma frota
O seguinte exemplo de declaração de políticas permite que um usuário crie uma frota na região us-east-2
, para a conta 123456789012
:
{ "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 seguinte exemplo de declaração de políticas permite que um usuário exclua uma frota na região us-east-2
, para a conta 123456789012
:
{ "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 seguinte exemplo de declaração de políticas permite que um usuário altere uma frota na região us-east-2
, para a conta 123456789012
:
{ "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 IDs de compilações de um projeto de compilação
O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de IDs de compilação na região us-east-2
, para a conta 123456789012
, para os projetos de compilação denominados my-build-project
e 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 um usuário obtenha uma lista de IDs de compilações
O seguinte exemplo de declaração de política permite que um usuário obtenha uma lista de todas as IDs de build para a mesma conta:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuilds", "Resource": "*" } ] }
Permitir que um usuário obtenha uma lista de frotas
O seguinte exemplo de declaração de políticas permite que um usuário obtenha uma lista de frotas na região us-east-2
, para a conta 123456789012
:
{ "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 seguinte exemplo de declaração de política permite que um usuário obtenha informações sobre todas as imagens do Docker gerenciadas pelo 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 um perfil 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 permissão da VPC para um perfil 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 um perfil 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 a um usuário adicionar uma política de permissão para um perfil 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 que o CodeBuild acesse os serviços da AWS necessários para criar uma interface de rede da VPC
O seguinte exemplo de declaração de política concede ao 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" ] } } } ] }
Usar uma instrução de negação para impedir que o AWS CodeBuild se desconecte 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 o console do AWS CodeBuild se conectar a provedores de origem.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codebuild:DeleteOAuthToken", "Resource": "*" } ] }