Gerenciamento de Identidade e Acesso e Amazon CodeCatalyst
No Amazon CodeCatalyst, você cria e usa um ID do builder AWS para fazer login e acessar seus espaços e projetos. Um ID do builder AWS não é uma identidade no AWS Identity and Access Management (IAM) e não existe em uma Conta da AWS. No entanto, o CodeCatalyst se integra ao IAM ao verificar um espaço para fins de faturamento e quando conectado a uma Conta da AWS para criar e usar recursos nessa Conta da AWS.
AWS Identity and Access Management (IAM) é um serviço da AWS service (Serviço da AWS) que ajuda o administrador no controle de segurança de acesso aos recursos da AWS de forma segura. Os administradores do IAM controlam quem pode ser autenticado (fazer login) e autorizado (ter permissões) para usar os recursos. O IAM é um AWS service (Serviço da AWS) que pode ser usado sem custo adicional.
Ao criar um espaço no Amazon CodeCatalyst, você deve conectar uma Conta da AWS como conta de faturamento do seu espaço. Você deve ter permissões de administrador na Conta da AWS para verificar o espaço do CodeCatalyst ou ter a permissão. Você também tem a opção de adicionar um perfil do IAM ao seu espaço que o CodeCatalyst pode usar para criar e acessar recursos nessa Conta da AWS conectada. Chamamos isso de um perfil de serviço. Você pode optar por criar conexões com mais de uma Conta da AWS e criar perfis de serviço para o CodeCatalyst em cada uma dessas contas.
nota
O faturamento do CodeCatalyst ocorre na Conta da AWS designada como a conta de faturamento. No entanto, se você criar um perfil de serviço do CodeCatalyst nessa Conta da AWS ou em qualquer outra Conta da AWS conectada, os recursos criados e usados pelo perfil de serviço do CodeCatalyst serão cobrados nessa Conta da AWS conectada. Para ter mais informações, consulte Managing billing no Guia do administrador do Amazon CodeCatalyst.
Tópicos
- Políticas baseadas em identidade no IAM
- Ações das políticas no IAM
- Recursos de políticas no IAM
- Chaves de condição de políticas no IAM
- Exemplos de políticas baseadas em identidade para conexões do CodeCatalyst
- Uso de tags para controlar o acesso a recursos de conexão de conta
- Referência de permissões do CodeCatalyst
- Uso de perfis vinculados a serviço para o CodeCatalyst
- Políticas gerenciadas pela AWS para o Amazon CodeCatalyst
- Conceder acesso aos recursos da AWS do projeto com perfis do IAM
Políticas baseadas em identidade no IAM
As políticas baseadas em identidade são documentos JSON de políticas de permissões que você pode anexar a uma entidade. Essa identidade pode ser um usuário, um grupo de usuários ou um perfil. Essas políticas controlam quais ações os usuários e perfis podem realizar, em quais recursos e em que condições. Para saber como criar uma política baseada em identidade, consulte Criando políticas do IAM no Guia do Usuário do IAM.
Com as políticas baseadas em identidade do IAM, é possível especificar ações ou recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Você não pode especificar a entidade principal em uma política baseada em identidade porque ela se aplica ao usuário ou perfil ao qual ela está anexada. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte Referência de elementos da política JSON do IAM no Guia do Usuário do IAM.
Exemplos de políticas baseadas em identidade para o CodeCatalyst
Para visualizar exemplos de políticas baseadas em identidade do CodeCatalyst, consulte Exemplos de políticas baseadas em identidade para conexões do CodeCatalyst.
Ações das políticas no IAM
Os administradores podem usar AWS as políticas JSON 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 você pode usar para permitir ou negar acesso em uma política. As ações de políticas geralmente têm o mesmo nome que a operação de API da AWS associada. Existem algumas exceções, como ações somente de permissão, que não têm uma operação de API correspondente. Algumas operações também exigem várias ações em uma política. Essas ações adicionais são chamadas de ações dependentes.
Para especificar várias ações em uma única instrução, separe-as com vírgulas.
"Action": [ "prefix:
action1
", "prefix:action2
" ]
Recursos de políticas no IAM
Os administradores podem usar AWS as políticas JSON 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. As instruções devem incluir um elemento Resource
ou NotResource
. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Isso pode ser feito para ações que oferecem compatibilidade com um tipo de recurso específico, conhecido como permissões em nível de recurso.
Para ações que não oferecem compatibilidade com permissões em nível de recurso, como operações de listagem, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.
"Resource": "*"
Chaves de condição de políticas no IAM
Os administradores podem usar AWS as políticas JSON 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
(ou bloco Condition
) permite que você especifique condições nas quais uma instrução estiver em vigor. O elemento Condition
é opcional. É 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.
Se você especificar vários elementos Condition
em uma instrução ou várias chaves em um único Condition
elemento, a AWS os avaliará usando uma operação lógica AND
. Se você especificar vários valores para uma única chave de condição, a AWS avaliará a condição usando uma operação lógica OR
. Todas as condições devem ser atendidas antes que as permissões da instrução sejam concedidas.
Você também pode usar variáveis de espaço reservado ao especificar condições. Para obter mais informações, consulte Elementos da política do IAM: variáveis e tags no Guia do usuário do IAM.
A AWS oferece compatibilidade com chaves de condição globais e chaves de condição específicas do serviç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.
Exemplos de políticas baseadas em identidade para conexões do CodeCatalyst
No CodeCatalyst, Contas da AWS são necessárias para gerenciar o faturamento de um espaço e acessar recursos nos fluxos de trabalho do projeto. Uma conexão de conta é usada para autorizar a adição de Contas da AWS a um espaço. Políticas baseadas em identidade são usadas nas Contas da AWS conectadas.
Por padrão, usuários e perfis não têm permissão para criar ou modificar recursos do CodeCatalyst. Eles também não podem executar tarefas usando o AWS Management Console, a AWS Command Line Interface (AWS CLI) ou a AWS API. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e funções permissão para executar ações nos recursos de que precisem. Por isso, o administrador precisa anexar essas políticas para os usuários que precisem delas.
Os exemplos de políticas do IAM a seguir concedem permissões para ações relacionadas às conexões de contas. Use-os para limitar o acesso para conectar contas ao CodeCatalyst.
Exemplo 1: permitir que um usuário aceite solicitações de conexão em uma única Região da AWS
A política de permissões a seguir só permite que os usuários visualizem e aceitem solicitações de conexões entre o CodeCatalyst e Contas da AWS. Além disso, a política usa uma condição para permitir somente as ações na região us-west-2 e não de outras Regiões da AWS. Para visualizar e aprovar a solicitação, o usuário faz login no AWS Management Console com a mesma conta especificada na solicitação.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:AcceptConnection", "codecatalyst:GetPendingConnection" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } } ] }
Exemplo 2: permitir o gerenciamento de conexões no console para uma única Região da AWS
A política de permissões a seguir permite que os usuários gerenciem conexões entre o CodeCatalyst e Contas da AWS em uma única Região. A política usa uma condição para permitir somente as ações na região us-west-2 e não de outras Regiões da AWS. Depois de criar uma conexão, você pode criar o perfil CodeCatalystWorkflowDevelopmentRole-spaceName
escolhendo a opção no AWS Management Console. Na política de exemplo, a condição para a ação iam:PassRole
inclui as entidades principais do serviço CodeCatalyst. Somente perfis com esse acesso serão criados no AWS Management Console.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "codecatalyst.amazonaws.com", "codecatalyst-runner.amazonaws.com" ] } } } ] }
Exemplo 3: negar o gerenciamento de conexões
A política de permissões a seguir não permite que os usuários gerenciem conexões entre o CodeCatalyst e Contas da AWS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecatalyst:*" ], "Resource": "*" } ] }
Referência de permissões do CodeCatalyst
Esta seção fornece uma referência de permissões para ações usadas com o recurso de conexão de conta para Contas da AWS que estão conectadas ao CodeCatalyst. A seção a seguir descreve ações somente com permissões relacionadas à conexão de contas.
Permissões necessárias para conexões de contas
As permissões a seguir são necessárias para trabalhar com conexões de contas.
Permissões do CodeCatalyst para conexões de contas | Permissões obrigatórias | Recursos |
---|---|---|
AcceptConnection | Necessário para aceitar uma solicitação de conexão dessa conta a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. |
Compatível apenas com um caractere curinga (*) no elemento de política |
AssociateIamRoleToConnection | Necessário para associar um perfil do IAM a uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
DeleteConnection | Necessário para excluir uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
DisassociateIamRoleFromConnection | Necessário para desassociar um perfil do IAM a uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
GetBillingAuthorization | Necessário para descrever a autorização de faturamento para uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
GetConnection | Necessário para ter uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
GetPendingConnection | Necessário para ter uma solicitação pendente de conexão dessa conta a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. |
Compatível apenas com um caractere curinga (*) no elemento de política |
ListConnections | Necessário para listar conexões de contas que não estejam pendentes. Esta é apenas uma permissão de política do IAM, e não uma ação de API. |
Compatível apenas com um caractere curinga (*) no elemento de política |
ListIamRolesForConnection | Necessário para listar perfis do IAM associados a uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
ListTagsForResource | Necessário para listar tags associadas a uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
PutBillingAuthorization | Necessário para criar ou atualizar a autorização de faturamento para uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
RejectConnection | Necessário para rejeitar uma solicitação de conexão dessa conta a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. |
Compatível apenas com um caractere curinga (*) no elemento de política |
TagResource | Necessário para criar ou editar tags associadas a uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
UntagResource | Necessário para remover tags associadas a uma conexão de conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
Permissões necessárias para aplicações do Centro de Identidade do IAM
As permissões a seguir são necessárias para trabalhar com aplicações do Centro de Identidade do IAM.
Permissões do CodeCatalyst para aplicações do Centro de Identidade do IAM | Permissões obrigatórias | Recursos |
---|---|---|
AssociateIdentityCenterApplicationToSpace | Necessário para associar uma aplicação do Centro de Identidade do IAM a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
AssociateIdentityToIdentityCenterApplication | Necessário para associar uma identidade a uma aplicação do Centro de Identidade do IAM a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
BatchAssociateIdentitiesToIdentityCenterApplication | Necessário para associar várias identidades a uma aplicação do Centro de Identidade do IAM a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
BatchDisassociateIdentitiesFromIdentityCenterApplication | Necessário para desassociar várias identidades de uma aplicação do Centro de Identidade do IAM a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
CreateIdentityCenterApplication | Necessário para criar uma aplicação do Centro de Identidade do IAM. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
CreateSpaceAdminRoleAssignment | Necessário para criar uma atribuição de perfil de administrador para um determinado espaço do CodeCatalyst e aplicação do Centro de Identidade do IAM. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
DeleteIdentityCenterApplication | Necessário para excluir uma aplicação do Centro de Identidade do IAM. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
DisassociateIdentityCenterApplicationFromSpace | Necessário para desassociar uma aplicação do Centro de Identidade do IAM a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
DisassociateIdentityFromIdentityCenterApplication | Necessário para desassociar uma identidade de uma aplicação do Centro de Identidade do IAM a um espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
GetIdentityCenterApplication | Necessário para ter informações sobre uma aplicação do Centro de Identidade do IAM. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
ListIdentityCenterApplications | Necessário para visualizar uma lista de todas as aplicações do Centro de Identidade do IAM na conta. Esta é apenas uma permissão de política do IAM, e não uma ação de API. |
Compatível apenas com um caractere curinga (*) no elemento de política |
ListIdentityCenterApplicationsForSpace | Necessário para visualizar uma lista de aplicações do Centro de Identidade do IAM por espaço do CodeCatalyst. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
ListSpacesForIdentityCenterApplication | Necessário para visualizar uma lista de espaços do CodeCatalyst por uma aplicação do Centro de Identidade do IAM. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
SynchronizeIdentityCenterApplication | Necessário para sincronizar uma aplicação do Centro de Identidade do IAM com o repositório de identidades de apoio. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |
UpdateIdentityCenterApplication | Necessário para atualizar uma aplicação do Centro de Identidade do IAM. Esta é apenas uma permissão de política do IAM, e não uma ação de API. | arn:aws:codecatalyst:region: |