Assuma o perfil de provedor de credenciais - AWS SDKs e ferramentas

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

Assuma o perfil de provedor de credenciais

nota

Para obter ajuda em compreender o layout das páginas de configurações ou interpretar a tabela Compatibilidade com SDKs e ferramentas da AWS a seguir, consulte Entender as páginas de configurações deste guia.

Assumir um perfil envolve o uso de um conjunto de credenciais temporárias de segurança para acessar recursos da AWS aos quais você talvez não tenha acesso de outra forma. Essas credenciais de segurança temporárias consistem em um ID de chave de acesso, uma chave de acesso secreta e um token de segurança.

Para configurar seu SDK ou ferramenta para assumir um perfil, você deve primeiro criar ou identificar um perfil específico a ser assumido. Os perfis do IAM são identificados exclusivamente por um perfil do nome do recurso da Amazon (ARN). Os perfis estabelecem as relações de confiança com uma outra entidade. A entidade confiada que usa o perfil pode ser um AWS service (Serviço da AWS), outra Conta da AWS, um provedor de identidade da web ou OIDC, ou uma federação SAML.

Depois que perfil do IAM for identificado, se você tiver a confiança desse perfil, poderá configurar seu SDK ou ferramenta para usar as permissões concedidas pelo perfil. Para fazer isso, execute as configurações a seguir.

Para obter orientação sobre como começar a usar essas configurações, consulte este guia Assumir um perfil com credenciais da AWS para autenticar SDKs e ferramentas da AWS.

Assuma as configurações do provedor de credenciais do perfil

Configure essa funcionalidade usando o seguinte:

credential_source: configuração de arquivo config da AWS compartilhado

Usado em instâncias ou contêineres do Amazon EC2 ou Amazon Elastic Container Service para especificar onde o SDK ou ferramenta pode encontrar credenciais que tem permissão para assumir o perfil que você especificar com o parâmetro role_arn.

Valor padrão: nenhum

Valores válidos:

Não é possível especificar credential_source e source_profile no mesmo perfil.

Exemplo de configuração em um arquivo config para indicar que as credenciais devem ser provenientes do Amazon EC2:

credential_source = Ec2InstanceMetadata role_arn = arn:aws:iam::123456789012:role/my-role-name
duration_seconds: configuração de arquivo config da AWS compartilhado

Especifica a duração máxima da sessão da função, em segundos.

Esta configuração se aplica somente quando o perfil especifica assumir uma função.

Valor padrão: 3.600 segundos (uma hora)

Valores válidos: o valor pode variar de 900 segundos (15 minutos) até o valor configurado de duração máxima da sessão para o perfil (que pode ser até 43200, ou 12 horas). Para obter mais informações, consulte Exibir a configuração de duração máxima da sessão para um perfil no Guia do usuário do IAM.

Exemplo de configuração em um arquivo config:

duration_seconds = 43200
external_id: configuração de arquivo config da AWS compartilhado

Especifica um identificador exclusivo que é usado por terceiros para assumir uma função em suas contas de clientes.

Esta configuração se aplica somente quando o perfil especifica assumir uma função e a política de confiança do perfil exige um valor para ExternalId. O valor é mapeado para o parâmetro ExternalId que é passado para a operação AssumeRole quando o perfil especifica uma função.

Valor padrão: nenhum.

Valores válidos: consulte Como usar um ID externo ao conceder acesso aos seus recursos da AWS a terceiros no Guia do usuário do IAM.

Exemplo de configuração em um arquivo config:

external_id = unique_value_assigned_by_3rd_party
mfa_serial: configuração de arquivo config da AWS compartilhado

Especifica a identificação ou o número de série de um dispositivo de autenticação multifator (MFA) que o usuário deve usar ao assumir um perfil.

Obrigatório ao assumir um perfil em que a política de confiança para o perfil inclui uma condição que exige autenticação de MFA. Para obter mais informações sobre MFA, consulte Código da autenticação multifator no IAM da AWS no Guia do usuário do IAM.

Valor padrão: nenhum.

Valores válidos: o valor pode ser um número de série de um dispositivo de hardware (como GAHT12345678) ou um nome do recurso da Amazon (ARN) de um dispositivo MFA virtual. O formato do ARN é: arn:aws:iam::account-id:mfa/mfa-device-name

Exemplo de configuração em um arquivo config:

Este exemplo pressupõe um dispositivo virtual de MFA, denominado MyMFADevice, que foi criado para a conta e habilitado para um usuário.

mfa_serial = arn:aws:iam::123456789012:mfa/MyMFADevice
role_arn: configuração de arquivo config da AWS compartilhado
AWS_ROLE_ARN: variável de ambiente
aws.roleArn: propriedade do sistema de JVM: apenas Java/Kotlin

Especifica o nome do recurso da Amazon (ARN) de um perfil do IAM que você deseja usar para realizar operações solicitadas usando esse perfil.

Valor padrão: nenhum.

Valores válidos: o valor deve ser o ARN de um perfil do IAM, formatado da seguinte forma: arn:aws:iam::account-id:role/role-name

Além disso, você também deve especificar uma das seguintes configurações:

  • source_profile: identificar outro perfil a ser usado para encontrar credenciais que tenham permissão para assumir a função nesse perfil.

  • credential_source: usar credenciais identificadas pelas variáveis de ambiente atuais ou credenciais anexadas a um perfil de instância do Amazon EC2 ou a uma instância de contêiner do Amazon ECS.

  • web_identity_token_file: usar provedores de identidades públicas ou qualquer provedor de identidades compatível com OpenID Connect (OIDC) para usuários que foram autenticados em um aplicativo móvel ou aplicativo web.

role_session_name: configuração de arquivo config da AWS compartilhado
AWS_ROLE_SESSION_NAME: variável de ambiente
aws.roleSessionName: propriedade do sistema de JVM: apenas Java/Kotlin

Especifica o nome a ser associado à sessão da função. Este nome aparece nos logs do AWS CloudTrail para entradas associadas a esta sessão, que pode ser útil em uma auditoria. Para obter detalhes, consulte CloudTrail userIdentity element no AWS CloudTrail User Guide.

Valor padrão: um parâmetro opcional. Se você não fornecer este valor, um nome de sessão será gerado automaticamente se o perfil assumir uma função.

Valores válidos: fornecidos ao parâmetro RoleSessionName quando a API da AWS CLI ou da AWS chama a operação AssumeRole (ou operações como a operação AssumeRoleWithWebIdentity) para você. O valor se torna parte do nome do recurso da Amazon (ARN) do perfil do usuário assumido que você pode consultar e aparece como parte das entradas de log do CloudTrail para operações invocadas por esse perfil.

arn:aws:sts::123456789012:assumed-role/my-role-name/my-role_session_name.

Exemplo de configuração em um arquivo config:

role_session_name = my-role-session-name
source_profile: configuração de arquivo config da AWS compartilhado

Especifica outro perfil cujas credenciais são usadas para assumir o perfil especificado pela configuração role_arn no perfil original. Para entender como os perfis são usados nos arquivos compartilhados config e credentials da AWS, consulte Arquivos config e credentials compartilhados.

Se você especificar um perfil que também seja um perfil de assumir função, cada perfil será assumido em ordem sequencial para resolver totalmente as credenciais. Essa cadeia é interrompida quando o SDK encontra um perfil com credenciais. O encadeamento de funções limita a sessão do perfil da AWS CLI ou API da AWS em um máximo de uma hora e não pode ser aumentado. Para obter mais informações, consulte Termos e conceitos de funções no Guia do usuário do IAM.

Valor padrão: nenhum.

Valores válidos: um string de texto que consiste no nome de um perfil definido nos arquivos config e credentials. Você também deve especificar um valor para role_arn no perfil atual.

Não é possível especificar credential_source e source_profile no mesmo perfil.

Exemplo de definição em um arquivo de configuração:

[profile A] source_profile = B role_arn = arn:aws:iam::123456789012:role/RoleA role_session_name = ProfileARoleSession [profile B] credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID

No exemplo anterior, o perfil A instrui o SDK ou a ferramenta a pesquisar automaticamente as credenciais do perfil B vinculado. Nesse caso, o perfil B usa a ferramenta assistente de credenciais fornecida por Usar IAM Roles Anywhere para autenticar SDKs e ferramentas da AWS para obter credenciais para o SDK da AWS. Essas credenciais temporárias são então usadas pelo código para acessar recursos da AWS. A função especificada deve ter políticas de permissão do IAM associadas que permitam a execução do código solicitado, como o comando AWS service (Serviço da AWS) ou o método do API. Cada ação realizada pelo perfil A tem o nome de sessão do perfil incluído nos logs do CloudTrail.

Como um segundo exemplo de encadeamento de perfis, a configuração a seguir pode ser usada se você tiver uma aplicação em uma instância do Amazon Elastic Compute Cloud e quiser que ela assuma outro perfil.

[profile A] source_profile = B role_arn = arn:aws:iam::123456789012:role/RoleA role_session_name = ProfileARoleSession [profile B] credential_source=Ec2InstanceMetadata

O perfil A usará as credenciais de instância do Amazon EC2 para assumir o perfil especificado e renovará as credenciais automaticamente.

web_identity_token_file: configuração de arquivo config da AWS compartilhado
AWS_WEB_IDENTITY_TOKEN_FILE: variável de ambiente
aws.webIdentityTokenFile: propriedade do sistema de JVM: apenas Java/Kotlin

Especifica o caminho para um arquivo que contém um token de acesso de um provedor OAuth 2.0 suportado ou provedor de identidade de ID OpenID Connect.

Esta configuração permite a autenticação usando provedores de federação de identidade da web, como Google, Facebook e Amazon, entre muitos outros. O SDK ou a ferramenta do desenvolvedor carrega o conteúdo deste arquivo e o transmite como argumento WebIdentityToken quando chama a operação AssumeRoleWithWebIdentity em seu nome.

Valor padrão: nenhum.

Valores válidos: este valor deve ser um nome de caminho e de arquivo. O arquivo deve conter um token de acesso OAuth 2.0 ou token de OpenID Connect fornecido por um provedor de identidade a você. Os caminhos relativos são tratados como relativos ao diretório de trabalho do processo.

Compatibilidade com SDKs e ferramentas da AWS

Os SDKs a seguir são compatíveis com os recursos e configurações descritos neste tópico. Quaisquer exceções parciais estão anotadas. As configurações de propriedade do sistema de JVM são compatíveis apenas como o AWS SDK para Java e o AWS SDK para Kotlin.

SDK Compatível Notas ou mais informações
AWS CLI v2 da2 Sim
SDK para C++ Parcial credential_source não suportado. duration_seconds não suportado. mfa_serial não suportado.
SDK para Go V2 (1.x) Sim
SDK para Go 1.x (V1) Sim Para usar as configurações do arquivo config compartilhado, você deve ativar o carregamento do arquivo de configuração; consulte Sessões.
SDK para Java 2.x Parcial mfa_serial não compatível. duration_seconds não compatível.
SDK para Java 1.x Parcial credential_source não compatível. mfa_serial não compatível. Propriedades do sistema JVM não compatíveis.
SDK para JavaScript 3.x Sim
SDK para JavaScript 2.x Parcial credential_source incompatível.
SDK para Kotlin Sim
SDK para .NET 4.x Sim
SDK para .NET 3.x Sim
SDK para PHP 3.x Sim
SDK para Python (Boto3) Sim
SDK para Ruby 3.x Sim
SDK para Rust Sim
SDK para Swift Sim
Ferramentas para PowerShell V5 Sim
Ferramentas para PowerShell V4 Sim