Provedor de credenciais IMDS - 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á.

Provedor de credenciais IMDS

O Serviço de metadados de instância (IMDS) fornece dados sobre sua instância que é possível usar para configurar ou gerenciar a instância em execução. Para obter mais informações sobre os dados disponíveis, consulte Metadados de instância e dados do usuário no Guia do usuário do Amazon EC2 para instâncias do Linux ou Metadados de instância e dados do usuário no Guia do usuário do Amazon EC2 para instâncias do Windows. O Amazon EC2 fornece um endpoint local disponível para instâncias que podem fornecer várias informações para a instância. Se a instância tiver uma função anexada, ela poderá fornecer um conjunto de credenciais válidas para essa função. Os SDKs podem usar esse endpoint para resolver credenciais como parte de sua cadeia de fornecedores de credenciais padrão. O Serviço de metadados de instância Versão 2 (IMDSv2), uma versão mais segura do IMDS que usa um token de sessão, é usado por padrão. Se ele falhar devido a uma condição que não pode ser repetida (códigos de erro HTTP 403, 404, 405), o IMDSv1 será usado como fallback.

Configure esta funcionalidade usando o seguinte:

AWS_EC2_METADATA_DISABLED - variável de ambiente

Deve-se ou não tentar usar o Serviço de metadados de instância (IMDS) do Amazon EC2 (IMDS) para obter credenciais.

Valor padrão: false.

Valores válidos:

  • true – Não use o IMDS para obter credenciais.

  • false – Use o IMDS para obter credenciais.

ec2_metadata_v1_disabled- configuração de AWS config arquivo compartilhado
AWS_EC2_METADATA_V1_DISABLED - variável de ambiente
aws.disableEc2MetadataV1- Propriedade do sistema JVM: somente Java/Kotlin

Se o serviço de metadados de instância versão 1 (IMDSv1) deve ser usado como alternativa se o IMDSv2 falhar.

nota

Os novos SDKs não são compatíveis com IMDSv1 e, portanto, não oferecem suporte a essa configuração. Para obter detalhes, consulte a tabela Compatibilidade com AWS SDKs.

Valor padrão: false.

Valores válidos:

  • true – Não use o IMDSv1 como alternativa.

  • false – Use o IMDSv1 como alternativa.

ec2_metadata_service_endpoint- configuração de AWS config arquivo compartilhado
AWS_EC2_METADATA_SERVICE_ENDPOINT - variável de ambiente
aws.ec2MetadataServiceEndpoint- Propriedade do sistema JVM: somente Java/Kotlin

O endpoint de IMDS.

Valor padrão: se ec2_metadata_service_endpoint_mode for igual a IPv4, o endpoint padrão será http://169.254.169.254. Se ec2_metadata_service_endpoint_mode for igual a IPv6, o endpoint padrão será http://[fd00:ec2::254].

Valores válidos: URI válido.

ec2_metadata_service_endpoint_mode- configuração de AWS config arquivo compartilhado
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE - variável de ambiente
aws.ec2MetadataServiceEndpointMode- Propriedade do sistema JVM: somente Java/Kotlin

O modo de endpoint do IMDS.

Valor padrão:IPv4.

Valores válidos: IPv4, IPv6.

nota

O provedor de credenciais do IMDS faz parte do Cadeia de fornecedores de credenciais. No entanto, o provedor de credenciais do IMDS só é verificado após vários outros provedores que estão nesta série. Portanto, se você quiser que seu programa use as credenciais desse provedor, você deve remover outros provedores de credenciais válidos da sua configuração ou usar um perfil diferente. Como alternativa, em vez de confiar na cadeia de provedores de credenciais para descobrir automaticamente qual provedor retorna credenciais válidas, especifique o uso do provedor de credenciais IMDS no código. Você pode especificar fontes de credenciais diretamente ao criar clientes de serviço.

Segurança para credenciais do IMDS

Por padrão, quando o AWS SDK não está configurado com credenciais válidas, o SDK tentará usar o Amazon EC2 Instance Metadata Service (IMDS) para recuperar as credenciais de uma função. AWS Esse comportamento pode ser desativado definindo a variável de ambiente AWS_EC2_METADATA_DISABLED como true. Isso evita atividades de rede desnecessárias e aumenta a segurança em redes não confiáveis nas quais o Serviço de Metadados de Instância da Amazon EC2 pode ser representado.

nota

AWS Clientes SDK configurados com credenciais válidas nunca usarão o IMDS para recuperar credenciais, independentemente de qualquer uma dessas configurações.

Desabilitando o uso das credenciais do Amazon EC2 IMDS

A forma como você define essa variável de ambiente depende do sistema operacional em uso, bem como se você deseja ou não que a alteração seja persistente.

Linux e macOS

Os clientes que usam Linux ou macOS podem definir essa variável de ambiente com o comando a seguir:

$ export AWS_EC2_METADATA_DISABLED=true

Se você quiser que essa configuração seja persistente em várias sessões de shell e reinicializações do sistema, você pode adicionar o comando acima ao seu arquivo de perfil de shell, como .bash_profile, .zsh_profile ou .profile.

Windows

Os clientes que usam Windows podem definir essa variável de ambiente com o comando a seguir:

$ set AWS_EC2_METADATA_DISABLED=true

Se você quiser que essa configuração seja persistente em várias sessões de shell e reinicializações do sistema, use o seguinte comando em vez disso:

$ setx AWS_EC2_METADATA_DISABLED=true
nota

O comando setx não aplica o valor à sessão atual do shell, então você precisará recarregar ou reabrir o shell para que a alteração entre em vigor.

Compatibilidade com AWS SDKs

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. Todas as configurações de propriedade do sistema JVM são suportadas pelo AWS SDK for Java e pelo AWS SDK para Kotlin único.

SDK Compatível Notas ou mais informações
AWS CLI v2 Sim
SDK para C++ Sim
SDK for Go V2 (1.x) Sim
SDK for 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 Sim
SDK para Java 1.x Sim
SDK para 3.x JavaScript Sim
SDK para 2.x JavaScript Sim
SDK for Kotlin Sim Não usa o fallback do IMDSv1.
SDK for .NET 3.x Sim
SDK for PHP 3.x Sim
SDK for Python (Boto3) Sim
SDK for Ruby 3.x Sim
SDK for Rust Sim Não usa o fallback do IMDSv1.
Ferramentas para PowerShell Sim Você pode desativar o fallback do IMDSv1 explicitamente no código usando. [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true