

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

# AWS CodePipeline exemplos de políticas baseadas em identidade
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, os usuários e os perfis do IAM não têm permissão para criar ou modificar recursos do CodePipeline . Eles também não podem realizar tarefas usando a AWS API Console de gerenciamento da AWS AWS CLI, ou. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e perfis permissão para executarem operações de API específicas nos recursos especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões.

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documentos de política JSON, consulte [Criar políticas na guia JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) no *Manual do usuário do IAM*.

Para saber como criar um pipeline que usa recursos de outra conta e para conferir exemplos de políticas relacionados, consulte [Crie um pipeline CodePipeline que use recursos de outra AWS conta](pipelines-create-cross-account.md).

**Topics**
+ [Práticas recomendadas de política](security_iam_service-with-iam-policy-best-practices.md)
+ [Visualizar recursos no console](security-iam-resources-console.md)
+ [Permitir que os usuários visualizem suas próprias permissões](security_iam_id-based-policy-examples-view-own-permissions.md)
+ [Exemplos de políticas baseadas em identidade (IAM)](security-iam-id-policies-examples.md)
+ [Usando tags para controlar o acesso aos CodePipeline recursos](tag-based-access-control.md)
+ [Permissões necessárias para usar o console](security-iam-permissions-console.md)
+ [Permissões necessárias para visualizar registros computacionais no console](security-iam-permissions-console-logs.md)
+ [AWS políticas gerenciadas para AWS CodePipeline](managed-policies.md)
+ [Exemplos de política gerenciada pelo cliente](#customer-managed-policies)

## Exemplos de política gerenciada pelo cliente
<a name="customer-managed-policies"></a>

Nesta seção, você encontrará exemplos de políticas de usuário que concedem permissões para diversas ações do . Essas políticas funcionam quando você está usando a API AWS SDKs,, ou AWS CLI a. Ao usar o console, você deve conceder permissões adicionais específicas para o console. Para obter mais informações, consulte [Permissões necessárias para usar o console](security-iam-permissions-console.md).

**nota**  
Todos os exemplos usam a região Oeste dos EUA (Oregon) (`us-west-2`) e contêm uma conta fictícia. IDs

**Exemplos**
+ [Exemplo 1: conceder permissões para obter o estado de um pipeline](#identity-based-policies-example-1)
+ [Exemplo 2: conceder permissões para habilitar e desabilitar transições entre estágios](#identity-based-policies-example-2)
+ [Exemplo 3: conceder permissões para obter uma lista de todos os tipos de ação disponíveis](#identity-based-policies-example-3)
+ [Exemplo 4: conceder permissões para aprovar ou rejeitar ações de aprovação manual](#identity-based-policies-example-4)
+ [Exemplo 5: conceder permissões para pesquisar por trabalhos para uma ação personalizada](#identity-based-policies-example-5)
+ [Exemplo 6: anexar ou editar uma política para integração do Jenkins com AWS CodePipeline](#identity-based-policies-example-6)
+ [Exemplo 7: configurar o acesso entre contas em um pipeline](#identity-based-policies-example-7)

### Exemplo 1: conceder permissões para obter o estado de um pipeline
<a name="identity-based-policies-example-1"></a>

O exemplo a seguir concede permissões para obter o estado do pipeline chamado `MyFirstPipeline`:

------
#### [ JSON ]

****  

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

------

### Exemplo 2: conceder permissões para habilitar e desabilitar transições entre estágios
<a name="identity-based-policies-example-2"></a>

O exemplo a seguir concede permissões para permitir e desativar transições entre todos os estágios no pipeline chamado `MyFirstPipeline`:

------
#### [ JSON ]

****  

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

------

Para permitir que o usuário permita ou desative transições de um único estágio em um pipeline, você deve especificar o estágio. Por exemplo, para permitir que o usuário habilite e desabilite transições de um estágio chamado `Staging` em um pipeline chamado `MyFirstPipeline`:

```
"Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/Staging"
```

### Exemplo 3: conceder permissões para obter uma lista de todos os tipos de ação disponíveis
<a name="identity-based-policies-example-3"></a>

O exemplo a seguir concede permissões para obter uma lista de todos os tipos de ação disponíveis para os pipelines na região `us-west-2`:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:ListActionTypes"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:actiontype:*"
        }
    ]
}
```

------

### Exemplo 4: conceder permissões para aprovar ou rejeitar ações de aprovação manual
<a name="identity-based-policies-example-4"></a>

O exemplo a seguir concede permissões para aprovar ou rejeitar ações de aprovação manual em um estágio chamado `Staging` em um pipeline chamado `MyFirstPipeline`: 

------
#### [ JSON ]

****  

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

------

### Exemplo 5: conceder permissões para pesquisar por trabalhos para uma ação personalizada
<a name="identity-based-policies-example-5"></a>

O exemplo a seguir concede permissões para pesquisar por trabalhos para a ação personalizada chamada `TestProvider`, que é um tipo de ação de `Test` na primeira versão, em todos os pipelines: 

**nota**  
O operador de trabalho de uma ação personalizada pode ser configurado em outra conta da AWS ou exigir um perfil do IAM específica para funcionar.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:PollForJobs"
            ],
            "Resource": [
                "arn:aws:codepipeline:us-west-2:111222333444:actionType:{{Custom}}/{{Test}}/{{TestProvider}}/{{1}}"
            ]
        }
    ]
}
```

------

### Exemplo 6: anexar ou editar uma política para integração do Jenkins com AWS CodePipeline
<a name="identity-based-policies-example-6"></a>

Se você configurar um pipeline para usar o Jenkins para criar ou testar, crie uma identidade separada para essa integração e anexe uma política do IAM que tenha as permissões mínimas necessárias para a integração entre Jenkins e. Essa política é a mesma da política gerenciada `AWSCodePipelineCustomActionAccess`. O exemplo a seguir mostra uma política para integração do Jenkins:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:AcknowledgeJob",
                "codepipeline:GetJobDetails",
                "codepipeline:PollForJobs",
                "codepipeline:PutJobFailureResult",
                "codepipeline:PutJobSuccessResult"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### Exemplo 7: configurar o acesso entre contas em um pipeline
<a name="identity-based-policies-example-7"></a>

Você pode configurar o acesso a pipelines para usuários e grupos em outra conta do AWS . A maneira recomendada é criar uma função na conta onde o pipeline foi criado. A função deve permitir que os usuários da outra AWS conta assumam essa função e acessem o pipeline. Para obter mais informações, consulte [Passo a passo: acesso entre contas usando funções](https://docs.aws.amazon.com/IAM/latest/UserGuide/walkthru_cross-account-with-roles.html).

O exemplo a seguir mostra uma política na conta 80398EXAMPLE que permite que os usuários visualizem, mas não alterem, o pipeline nomeado `MyFirstPipeline` no console. 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 desejar restringir a política a um pipeline específico, leve em consideração usar uma das políticas gerenciadas criadas e mantidas pelo . Para obter mais informações, consulte [Como trabalhar com políticas gerenciadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html). Você deve anexar essa política a um perfil do IAM criado para acesso, por exemplo, a um perfil chamado `CrossAccountPipelineViewers`:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:GetPipeline",
                "codepipeline:GetPipelineState",
                "codepipeline:ListActionTypes",
                "codepipeline:ListPipelines",
                "iam:ListRoles",
                "s3:GetBucketPolicy",
                "s3:GetObject",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "codedeploy:GetApplication",
                "codedeploy:GetDeploymentGroup",
                "codedeploy:ListApplications",
                "codedeploy:ListDeploymentGroups",
                "elasticbeanstalk:DescribeApplications",
                "elasticbeanstalk:DescribeEnvironments",
                "lambda:GetFunctionConfiguration",
                "lambda:ListFunctions"
            ],
            "Resource": "arn:aws:codepipeline:us-east-2:{{111122223333}}:MyFirstPipeline"
        }
    ]
}
```

------

Após criar essa política, crie o perfil do IAM na conta 80398EXAMPLE e anexe a política a esse perfil. Nas relações de confiança da função, você deve adicionar a AWS conta que assume essa função.

O exemplo a seguir mostra uma política criada na {{111111111111}} AWS conta que permite que os usuários assumam a função nomeada `CrossAccountPipelineViewers` na conta 80398EXAMPLE:

------
#### [ JSON ]

****  

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

------