Identificadores do IAM - AWS Identity and Access Management

Identificadores do IAM

O IAM usa alguns identificadores diferentes para usuários, grupos de usuários, funções, políticas e certificados de servidor. Esta seção descreve os identificadores e quando usar cada um deles.

Nomes amigáveis e caminhos

Ao criar um usuário, uma função, um grupo de usuários ou uma política, ou ao fazer upload de um certificado de servidor, você atribui a ele um nome amigável. Exemplos incluem Bob, TestApp1, Desenvolvedores, ManageCredentialsPermissions ou ProdServerCert.

Se estiver usando a API do IAM ou a AWS Command Line Interface (AWS CLI) para criar recursos do IAM, você também poderá adicionar recursos um caminho opcional. Você pode usar um único caminho ou aninhar vários caminhos como uma estrutura de pasta. Por exemplo, você pode usar o caminho aninhado /division_abc/subdivision_xyz/product_1234/engineering/ de acordo com a estrutura organizacional da empresa. Em seguida, você pode criar uma política para permitir que todos os usuários no caminho acessem a API do simulador de políticas. Para exibir esta política, consulte: IAM: acessar a API simuladora de políticas com base no caminho do usuário. Para obter informações sobre como especificar um nome simples, consulte a documentação da API do usuário. Para obter mais exemplos de como você pode usar caminhos, consulte ARNs do IAM.

Ao usar o AWS CloudFormation para criar recursos, você pode especificar um caminho para usuários, grupos de usuários e funções, além de políticas gerenciadas do cliente.

Se você tem um usuário e um grupo de usuários no mesmo caminho, o IAM não coloca o usuário automaticamente nesse grupo de usuários. Por exemplo, você pode criar um grupo de usuários desenvolvedores e especificar o caminho como /division_abc/subdivision_xyz/product_1234/engineering/. Se você criar um usuário chamado Bob e atribuir a ele o mesmo caminho, isso não coloca Bob no grupo de usuários Desenvolvedores automaticamente. O IAM não impõe qualquer limite entre usuários ou grupos de usuários com base em seus caminhos. Usuários com caminhos diferentes podem usar os mesmos recursos se tiverem recebido permissão para esses recursos. O número e o tamanho dos recursos do IAM em uma conta da AWS são limitados. Para obter mais informações, consulte IAM e AWS STS cotas.

ARNs do IAM

A maioria dos recursos tem um nome amigável (por exemplo, um usuário chamado Bob ou um grupo de usuários chamado Developers). No entanto, a linguagem da política de permissões exige que você especifique o recurso ou recursos usando o seguinte formato de nome de recurso da Amazon (ARN).

arn:partition:service:region:account:resource

Onde:

  • partition identifica a partição referente ao recurso. Para Regiões padrão da AWS a partição é aws. Se você tem recursos em outras partições, a partição é aws-partitionname. Por exemplo, a partição para recursos na região China (Pequim) é aws-cn. Não é possível delegar acesso entre contas em partições diferentes.

  • service identifica o produto da AWS. Os recursos do IAM sempre usam iam.

  • region identifica a região do recurso. Para recursos do IAM, ela é sempre deixada em branco.

  • account especifica o ID da conta da AWS sem hifens ou o alias da conta da AWS.

  • resource identifica o recurso específico por nome.

Você pode especificar ARNs do IAM e do AWS STS usando a seguinte sintaxe. A porção da região do ARN está em branco porque os recursos do IAM são globais.

Sintaxe:

arn:aws:iam::account:root arn:aws:iam::account:user/user-name-with-path arn:aws:iam::account:group/group-name-with-path arn:aws:iam::account:role/role-name-with-path arn:aws:iam::account:policy/policy-name-with-path arn:aws:iam::account:instance-profile/instance-profile-name-with-path arn:aws:sts::account:federated-user/user-name arn:aws:sts::account:assumed-role/role-name/role-session-name arn:aws:iam::account:mfa/virtual-device-name-with-path arn:aws:iam::account:u2f/u2f-token-id arn:aws:iam::account:server-certificate/certificate-name-with-path arn:aws:iam::account:saml-provider/provider-name arn:aws:iam::account:oidc-provider/provider-name

Muitos dos seguintes exemplos incluem caminhos na parte de recurso do ARN. Caminhos não podem ser criados ou manipulados no AWS Management Console. Para usar caminhos, você deve trabalhar com o recurso usando a API da AWS, a AWS CLI ou o Tools for Windows PowerShell.

Exemplos:

arn:aws:iam::123456789012:root arn:aws:iam::123456789012:user/JohnDoe arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe arn:aws:iam::123456789012:group/Developers arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers arn:aws:iam::123456789012:role/S3Access arn:aws:iam::123456789012:role/application_abc/component_xyz/RDSAccess arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer arn:aws:iam::123456789012:role/service-role/QuickSightAction arn:aws:iam::123456789012:policy/UsersManageOwnCredentials arn:aws:iam::123456789012:policy/division_abc/subdivision_xyz/UsersManageOwnCredentials arn:aws:iam::123456789012:instance-profile/Webserver arn:aws:sts::123456789012:federated-user/JohnDoe arn:aws:sts::123456789012:assumed-role/Accounting-Role/JaneDoe arn:aws:iam::123456789012:mfa/JaneDoeMFA arn:aws:iam::123456789012:u2f/user/JohnDoe/default (U2F security key) arn:aws:iam::123456789012:server-certificate/ProdServerCert arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert arn:aws:iam::123456789012:saml-provider/ADFSProvider arn:aws:iam::123456789012:oidc-provider/GoogleProvider

Os exemplos a seguir fornecem mais detalhes para ajudá-lo a entender o formato do ARN para diferentes tipos de IAM e recursos do AWS STS.

  • Um usuário do IAM na conta:

    nota

    Cada nome de usuário do IAM é exclusivo e não diferencia maiúsculas e minúsculas.

    arn:aws:iam::123456789012:user/JohnDoe
  • Outro usuário com um caminho que reflete um gráfico da organização:

    arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe
  • Um grupo de usuários do IAM:

    arn:aws:iam::123456789012:group/Developers
  • Um grupo de usuários do IAM com um caminho:

    arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers
  • Uma função do IAM:

    arn:aws:iam::123456789012:role/S3Access
  • Uma função vinculada a serviços:

    arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer
  • Uma função de serviço:

    arn:aws:iam::123456789012:role/service-role/QuickSightAction
  • Uma política gerenciada:

    arn:aws:iam::123456789012:policy/ManageCredentialsPermissions
  • Um perfil de instância que pode ser associado à uma instância do EC2:

    arn:aws:iam::123456789012:instance-profile/Webserver
  • Um usuário federado identificado no IAM como "Paulo":

    arn:aws:sts::123456789012:federated-user/Paulo
  • A sessão ativa de alguém assumindo a função de "Accounting-Role", com um nome de sessão de função "Mary":

    arn:aws:sts::123456789012:assumed-role/Accounting-Role/Mary
  • O dispositivo de autenticação multifator atribuído ao usuário chamado Jorge:

    arn:aws:iam::123456789012:mfa/Jorge
  • Um certificado de servidor:

    arn:aws:iam::123456789012:server-certificate/ProdServerCert
  • Um certificado de servidor com um caminho que reflete um gráfico da organização:

    arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert
  • Provedores de identidade (SAML e OIDC):

    arn:aws:iam::123456789012:saml-provider/ADFSProvider arn:aws:iam::123456789012:oidc-provider/GoogleProvider

Outro ARN importante é o ARN de usuário raiz. Embora esse não seja um recurso do IAM, você deve estar familiarizado com o formato desse ARN. Ele costuma ser usado no elemento Principal de uma política.

  • A conta da AWS exibe o seguinte:

    arn:aws:iam::123456789012:root

O exemplo a seguir mostra uma política que você poderia atribuir a Richard para permitir que ele gerencie suas chaves de acesso. Observe que o recurso é o usuário do IAM Richard.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageRichardAccessKeys", "Effect": "Allow", "Action": [ "iam:*AccessKey*", "iam:GetUser" ], "Resource": "arn:aws:iam::*:user/division_abc/subdivision_xyz/Richard" }, { "Sid": "ListForConsole", "Effect": "Allow", "Action": "iam:ListUsers", "Resource": "*" } ] }
nota

Ao usar ARNs para identificar recursos em uma política do IAM, você pode incluir variáveis de política. As variáveis de política podem incluir espaços reservados para informações de tempo de execução (como o nome do usuário) como parte do ARN. Para obter mais informações, consulte Elementos de política do IAM: variáveis e tags

Uso de curingas e caminhos em ARNs

Você pode usar caracteres curinga na parte de recurso do ARN para especificar vários usuários, grupos de usuários ou políticas. Por exemplo, para especificar todos os usuários trabalhando em product_1234, você usaria:

arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/*

Vamos supor que você tenha usuários cujos nomes começam com a string app_. Você pode referir-se a todos eles com o seguinte ARN.

arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/app_*

Para especificar todos os usuários, grupos de usuários ou políticas em sua conta da AWS, use um caractere curinga após a parte user/, group/ ou policy/ do ARN, respectivamente.

arn:aws:iam::123456789012:user/* arn:aws:iam::123456789012:group/* arn:aws:iam::123456789012:policy/*

Se você especificar o seguinte ARN para um usuário arn:aws:iam::111122223333:user/*, ele corresponderá a ambos os exemplos a seguir.

arn:aws:iam::111122223333:user/JohnDoe arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe

Mas, se você especificar o seguinte ARN para um usuário arn:aws:iam::111122223333:user/division_abc*, ele corresponderá ao segundo exemplo, mas não ao primeiro.

arn:aws:iam::111122223333:user/JohnDoe arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe

Não use um curinga na parte user/, group/ ou policy/ do ARN. Por exemplo, o seguinte não é permitido:

arn:aws:iam::123456789012:u*

exemplo Exemplo de uso de caminhos e ARNs para um grupo de usuários baseado em projeto

Caminhos não podem ser criados ou manipulados no AWS Management Console. Para usar caminhos, você deve trabalhar com o recurso usando a API da AWS, a AWS CLI ou o Tools for Windows PowerShell.

Neste exemplo, Jules do grupo de usuários Marketing_Admin cria um grupo baseado em projeto no caminho /marketing/. Jules atribui ao grupo usuários de diferentes partes da empresa. Este exemplo mostra que o caminho de um usuário não está relacionado aos grupos nos quais ele está.

O grupo de marketing tem um novo produto para lançamento; por isso, Jules cria um novo grupo de usuários no caminho /marketing/ chamado Widget_Launch. Jules então atribui a seguinte política ao grupo de usuários, que fornece ao grupo acesso a objetos na parte do example_bucket designada a essa execução em particular.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::example_bucket/marketing/newproductlaunch/widget/*" }, { "Effect": "Allow", "Action": "s3:ListBucket*", "Resource": "arn:aws:s3:::example_bucket", "Condition": {"StringLike": {"s3:prefix": "marketing/newproductlaunch/widget/*"}} } ] }

Jules então atribui ao grupo os usuários que estão trabalhando nessa execução. Isso inclui Patrícia e Eli do caminho /marketing/. E também inclui Chris e Chloe do caminho /sales/ e Alice e Jim do caminho /legal/.

Identificadores exclusivos

Quando o IAM cria um usuário, um grupo de usuários, uma função, uma política, um perfil de instância ou um certificado de servidor, ele atribui a cada recurso um ID exclusivo semelhante a este:

AIDAJQABLZS4A3QDU576Q

Na maioria dos casos, use nomes e ARNs amigáveis ao trabalhar com recursos do IAM. Dessa forma, você não precisa saber o ID exclusivo de um recurso específico. No entanto, o ID exclusivo às vezes pode ser útil quando não é prático usar nomes amigáveis.

Um exemplo reutiliza nomes amigáveis em sua conta da AWS. Em sua conta, um nome amigável de usuário, grupo de usuários ou política deve ser exclusivo. Por exemplo, você pode criar um usuário do IAM chamado David. Sua empresa usa o Amazon S3 e tem um bucket com pastas para cada funcionário. O bucket tem uma política baseada em recursos (uma política de bucket) que permite que os usuários acessem apenas suas próprias pastas no bucket. Suponha que o funcionário chamado David deixe sua empresa e você exclua o usuário do IAM correspondente. Mas posteriormente, outro funcionário chamado David começa a trabalhar e você cria um novo usuário do IAM chamado David. Se a política de bucket especificar o usuário do IAM David, a política permitirá que o novo David acesse informações deixadas pelo antigo David.

No entanto, todo usuário do IAM tem um ID exclusivo, mesmo se você criar um novo usuário do IAM que reutiliza um nome amigável que você excluiu antes. No exemplo, o antigo usuário do IAM e o novo usuário do IAM David têm IDs exclusivos diferentes. Você pode criar políticas baseadas em recursos para buckets que concedem acesso pelo ID exclusivo, e não apenas por nome de usuário. Isso reduz a chance de você, inadvertidamente, conceder acesso a informações que um funcionário não deve ter.

Outro exemplo em que IDs de usuário podem ser úteis é se você manter seu próprio banco de dados (ou outro armazenamento) de informações de usuário do IAM. O ID exclusivo pode fornecer um identificador exclusivo para cada usuário do IAM criado. Isso acontece quando você tem usuários do IAM que reutilizam um nome, como no exemplo anterior.

Noções básicas sobre prefixos exclusivos de IDs

O IAM usa os seguintes prefixos para indicar o tipo de recurso ao qual cada ID exclusivo se aplica.

Prefixo Tipo de recurso
ABIA Token de portador de serviço do AWS STS
ACCA Credencial específica de contexto

AGPA

Grupo de usuários

AIDA

Usuário IAM

AIPA Perfil da instância Amazon EC2
AKIA Chave de acesso
ANPA

Política gerenciada

ANVA

Versão em uma política gerenciada

APKA Chave pública
AROA Função
ASCA Certificado

ASIA

IDs de chave de acesso temporárias (AWS STS) usam esse prefixo, mas são exclusivas somente em combinação com a chave de acesso secreta e o token da sessão.

Obter o identificador exclusivo

O ID exclusivo para uma recurso do IAM não está disponível no console do IAM. Para obter o ID exclusivo, você pode usar os seguintes comandos da AWS CLI ou chamadas de API do IAM.

AWS CLI:

API do IAM: