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.
Tópicos
- Permissões necessárias para usar o console do AWS CodeBuild
- Permissões necessárias para se conectar AWS CodeBuild ao Amazon Elastic Container Registry
- Permissões necessárias para que o AWS CodeBuild console se conecte aos provedores de origem
- AWS políticas gerenciadas (predefinidas) para AWS CodeBuild
- CodeBuild políticas e notificações gerenciadas
- CodeBuild atualizações nas políticas AWS gerenciadas
- 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 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 ListConnectedOAuthAccounts
ListRepositories
,, 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 |
---|---|---|
|
CodeBuild adicionou um recurso a essas políticas para apoiar o Conexões de código da AWS rebranding. As |
18 de abril de 2024 |
|
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 |
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
- 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 compilações IDs para um projeto de construção
- Permitir que um usuário obtenha uma lista de construções IDs
- 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 uma função de serviço de frota
- Permitir CodeBuild acesso aos AWS serviços necessários para criar uma interface VPC de rede
- Use uma declaração de negação para AWS CodeBuild evitar a desconexão 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 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": "*" } ] }