Exemplos de políticas baseadas em identidade (IAM) - AWS CodePipeline

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á.

Exemplos de políticas baseadas em identidade (IAM)

Você pode anexar políticas às IAM identidades. Por exemplo, você pode fazer o seguinte:

  • Anexe uma política de permissões a um usuário ou grupo em sua conta — Para conceder a um usuário permissões para visualizar pipelines no CodePipeline console, você pode anexar uma política de permissões a um usuário ou grupo ao qual o usuário pertence.

  • Anexar uma política de permissões a uma função (conceder permissões entre contas) — Você pode anexar uma política de permissões baseada em identidade a uma IAM função para conceder permissões entre contas. Por exemplo, o administrador na Conta A pode criar uma função para conceder permissões entre contas para outra AWS conta (por exemplo, Conta B) ou da AWS service (Serviço da AWS) seguinte forma:

    1. O administrador da Conta A cria uma IAM função e anexa uma política de permissões à função que concede permissões sobre recursos na Conta A.

    2. Um administrador da Conta A anexa uma política de confiança à função identificando a Conta B como a entidade principal, que pode assumir a função.

    3. O administrador da Conta B pode então delegar permissões para assumir a função a qualquer usuário na Conta B. Isso permite que os usuários da Conta B criem ou acessem recursos na Conta A. O principal na política de confiança também pode ser um AWS service (Serviço da AWS) diretor se você quiser conceder AWS service (Serviço da AWS) permissões para assumir a função.

    Para obter mais informações sobre IAM como delegar permissões, consulte Gerenciamento de acesso no Guia do IAM usuário.

O exemplo a seguir mostra um exemplo de política de permissões que permite que um usuário desabilite e habilite transições entre todos os estágios no pipeline MyFirstPipeline na us-west-2 region:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codepipeline:EnableStageTransition", "codepipeline:DisableStageTransition" ], "Resource" : [ "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/*" ] } ] }

O exemplo a seguir mostra uma política na conta 111222333444 que permite que os usuários visualizem, mas não alterem, o pipeline nomeado no console. MyFirstPipeline CodePipeline Essa política é baseada na política gerenciada AWSCodePipeline_ReadOnlyAccess, mas, como ela é específica ao pipeline MyFirstPipeline, a política gerenciada não pode ser usada diretamente. Se você não quiser restringir a política a um pipeline específico, considere usar uma das políticas gerenciadas criadas e mantidas pela CodePipeline. Para obter mais informações, consulte Como trabalhar com políticas gerenciadas. Você deve anexar essa política a uma IAM função criada para acesso, por exemplo, uma função chamadaCrossAccountPipelineViewers:

{ "Statement": [ { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:ListAllMyBuckets", "codecommit:ListRepositories", "codedeploy:ListApplications", "lambda:ListFunctions", "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Effect": "Allow", "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline" }, { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListBucket", "codecommit:ListBranches", "codedeploy:GetApplication", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "lambda:GetFunctionConfiguration", "opsworks:DescribeApps", "opsworks:DescribeLayers", "opsworks:DescribeStacks" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarNotificationsReadOnlyAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codepipeline:*" } } } ], "Version": "2012-10-17" }

Depois de criar essa política, crie a IAM função na conta 111222333444 e anexe a política a essa função. Nas relações de confiança da função, você deve adicionar a AWS conta que assumirá essa função. O exemplo a seguir mostra uma política que permite aos usuários do 111111111111 AWS conta para assumir as funções definidas na conta 111222333444:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:root" }, "Action": "sts:AssumeRole" } ] }

O exemplo a seguir mostra uma política criada no 111111111111 AWS conta que permite que os usuários assumam a função chamada CrossAccountPipelineViewers na conta 111222333444:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111222333444:role/CrossAccountPipelineViewers" } ] }

Você pode criar IAM políticas para restringir as chamadas e os recursos aos quais os usuários da sua conta têm acesso e, em seguida, anexar essas políticas ao seu usuário administrativo. Para obter mais informações sobre como criar IAM funções e explorar exemplos de declarações IAM de política para CodePipeline, consulteExemplos de política gerenciada pelo cliente.