Como o AWS CodePipeline funciona com o IAM
Antes de usar o IAM para gerenciar o acesso ao CodePipeline, você precisa saber quais atributos do IAM estão disponíveis para serem usados com o CodePipeline. Para ter uma visão geral de como o CodePipeline e outros Serviços da AWS funcionam com o IAM, consulte Serviços da AWS compatíveis com o IAM, no Guia do usuário do IAM.
Tópicos
Políticas baseadas em identidade do CodePipeline
Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. O CodePipeline oferece suporte a ações, recursos e chaves de condição específicos. Para conhecer todos os elementos usados em uma política JSON, consulte Referência de elementos de política JSON do IAM no Guia do usuário do IAM.
Ações
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento Action de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.
As ações de políticas no CodePipeline usam o seguinte prefixo antes da ação: codepipeline:.
Por exemplo, para conceder a alguém permissão para exibir os pipelines existentes na conta, inclua a ação codepipeline:GetPipeline em sua política. As instruções de política devem incluir um elemento Action ou NotAction. O CodePipeline define seu próprio conjunto de ações que descrevem as tarefas que você pode executar com esse serviço.
Para especificar várias ações em uma única instrução, separe-as com vírgulas, como segue:
"Action": [ "codepipeline:action1", "codepipeline:action2"
Você também pode especificar várias ações usando caracteres curinga (*). Por exemplo, para especificar todas as ações que começam com a palavra Get, inclua a seguinte ação:
"Action": "codepipeline:Get*"
Para obter uma lista de ações do CodePipeline, consulte Ações definidas pelo AWS CodePipeline no Guia do usuário do IAM.
Recursos
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento de política JSON Resource especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Para ações que não deem suporte a permissões no nível do recurso, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.
"Resource": "*"
Recursos e operações do CodePipeline
No CodePipeline, o principal recurso é um pipeline. Em uma política, você usa um Nome de recurso da Amazon (ARN) para identificar o recurso a que a política se aplica. O CodePipeline oferece suporte a outros recursos que podem ser usados com o recurso principal, como estágios, ações e ações personalizadas. Estes são chamados de sub-recursos. Esses recursos e sub-recursos têm Nomes de recurso da Amazon (ARNs) exclusivos associados a eles. Para obter mais informações sobre ARNs, consulte Nomes de recurso da Amazon (ARN) e namespaces do AWS service (Serviço da AWS) na Referência geral da Amazon Web Services. Para obter o ARN de pipeline associado ao seu pipeline, localize o ARN do pipeline em Configurações no console. Para obter mais informações, consulte Visualizar o ARN do pipeline e o ARN do perfil de serviço (console).
| Tipo de recurso | Formato do ARN |
|---|---|
|
Pipeline |
arn:aws:codepipeline: |
| Estágio |
arn:aws:codepipeline: |
| Ação |
arn:aws:codepipeline: |
| Ação personalizada | arn:aws:codepipeline:region:account:actiontype:owner/category/provider/version |
|
Todos os recursos do CodePipeline |
arn:aws:codepipeline:* |
|
Todos os recursos do CodePipeline pertencentes à conta especificada na região especificada |
arn:aws:codepipeline: |
nota
A maioria dos serviços na AWS trata os dois pontos (:) e a barra inclinada (/) como o mesmo caractere em ARNs. No entanto, o CodePipeline usa uma correspondência exata nos padrões e regras de eventos. Use os caracteres do ARN corretos ao criar padrões de evento para que eles correspondam à sintaxe ARN no pipeline a que você quer corresponder.
No CodePipeline, há chamadas de API que dão suporte a permissões no nível do recurso. As permissões no nível do recurso indicam se uma chamada de API pode especificar um Nome de recurso da Amazon (ARN) de recurso ou se a chamada de API só pode especificar todos os recursos usando o caractere curinga. Consulte Referência de permissões do CodePipeline para obter uma descrição detalhada de permissões no nível do recurso e uma lista das chamadas de API do CodePipeline que dão suporte a permissões no nível do recurso.
Por exemplo, é possível indicar um pipeline específico (myPipeline) em sua declaração usando o ARN, conforme o seguinte:
"Resource": "arn:aws:codepipeline:us-east-2:111222333444:myPipeline"
Você também pode especificar todos os pipelines pertencentes a uma conta específica usando o caractere curinga (*), conforme o seguinte:
"Resource": "arn:aws:codepipeline:us-east-2:111222333444:*"
Para especificar todos os recursos ou se uma ação de API específica não for compatível com ARNs, use o caractere curinga (*) no elemento Resource, da seguinte maneira:
"Resource": "*"
nota
Ao criar políticas do IAM, siga as dicas de segurança padrão de concessão de privilégio mínimo, ou seja, conceda apenas as permissões necessárias para executar uma tarefa. Se uma chamada de API der suporte a Nomes de recursos da Amazon (ARNs), ela dará suporte a permissões no nível do recurso e você não precisará usar o caractere curinga (*).
Algumas chamadas de API do CodePipeline aceitam vários recursos (por exemplo, GetPipeline). Para especificar vários recursos em uma única declaração, separe seus ARNs com vírgulas, como se segue:
"Resource": ["arn1", "arn2"]
O CodePipeline fornece um conjunto de operações para funcionar com os recursos do CodePipeline. Para ver uma lista das operações disponíveis, consulte Referência de permissões do CodePipeline.
Chaves de condição
Os administradores podem usar as políticas JSON AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento Condition especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem agentes de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição globais da AWS, consulte Chaves de contexto de condição globais da AWS no Guia do usuário do IAM.
O CodePipeline define seu próprio conjunto de chaves de condição, além de oferecer suporte ao uso de algumas chaves de condição globais. Para ver todas as chaves de condição globais da AWS, consulte Chaves de contexto de condição globais da AWS no Manual do usuário do IAM.
Todas as ações do Amazon EC2 oferecem suporte às chaves de condição aws:RequestedRegion e ec2:Region. Para obter mais informações, consulte Exemplo: restrição de acesso a uma Região específica.
Para ver uma lista de chaves de condição do CodePipeline, consulte Chaves de condição do AWS CodePipeline no Guia do usuário do IAM. Para saber com quais ações e recursos você pode usar uma chave de condição, consulte Ações definidas pelo AWS CodePipeline.
Exemplos
Para visualizar exemplos de políticas baseadas em identidade do CodePipeline, consulte AWS CodePipelineExemplos de políticas baseadas em identidade do .
Políticas baseadas em recursos do CodePipeline
O CodePipeline não oferece suporte a políticas baseadas em recursos. No entanto, é fornecido um exemplo de política baseada em recursos para o serviço do S3 relacionado ao CodePipeline.
Exemplos
Para visualizar exemplos de políticas baseadas em recursos do CodePipeline, consulte AWS CodePipelineExemplos de políticas baseadas em recursos do .
Autorização baseada em tags do CodePipeline
Você pode anexar tags a recursos do CodePipeline ou transmitir tags ao CodePipeline em uma solicitação. Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as codepipeline:ResourceTag/, key-nameaws:RequestTag/ ou chaves de condição key-nameaws:TagKeys. Para obter mais informações sobre a marcação de recursos do CodePipeline, consulte Marcando atributos .
Para visualizar um exemplo de política baseada em identidade para limitar o acesso a um recurso baseado em tags desse recurso, consulte Usar tags para controlar o acesso aos recursos do CodePipeline.
Funções do IAM para CodePipeline
Um perfil do IAM é uma entidade na conta da AWS que tem permissões específicas.
Como usar credenciais temporárias com o CodePipeline
É possível usar credenciais temporárias para fazer login com federação, assumir um perfil do IAM ou assumir um perfil entre contas. As credenciais de segurança temporárias são obtidas chamando operações da API do AWS STS, como AssumeRole ou GetFederationToken.
O CodePipeline oferece suporte ao uso de credenciais temporárias.
Perfis de serviço
O CodePipeline permite que um serviço assuma um perfil de serviço em seu nome. O perfil permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. Os perfis de serviço aparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um administrador do IAM pode alterar as permissões para esse perfil. Porém, fazer isso pode alterar a funcionalidade do serviço.
O CodePipeline oferece suporte a perfis de serviço.