Visualizar tags para as instâncias do EC2 usando os metadados de instância - Amazon Elastic Compute Cloud

Visualizar tags para as instâncias do EC2 usando os metadados de instância

É possível acessar as tags de uma instância a partir dos metadados da instância. Ao acessar tags dos metadados da instância, não é mais necessário usar chamadas de API DescribeInstances ou DescribeTags para recuperar informações de tags, o que reduz suas transações de API por segundo e permite que as recuperações de tags sejam escaladas com o número de instâncias que você controla. Além disso, os processos locais que estão sendo executados em uma instância podem visualizar as informações de tag da instância diretamente dos metadados da instância.

Por padrão, as tags não estão disponíveis a partir dos metadados da instância; permita explicitamente o acesso. É possível permitir o acesso no início da instância ou após o início em uma instância em execução ou parada. Também é possível permitir o acesso a tags especificando isso em um modelo de execução. As instâncias iniciadas usando o modelo permitem acesso a tags nos metadados da instância.

Se você adicionar ou remover uma tag de instância, os metadados da instância serão atualizados enquanto a instância estiver em execução, sem precisar interromper e iniciar a instância.

Permitir acesso a tags em metadados de instância

Por padrão, não há acesso a tags de instância nos metadados da instância. Para cada instância, permita explicitamente o acesso usando um dos métodos a seguir.

Para permitir acesso a tags em metadados de instância usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione uma instância e escolha Actions (Ações), Instance settings (Configurações da instância), Allow tags in instance metadata (Permitir tags em metadados de instância).

  4. Para permitir o acesso a tags nos metadados da instância, marque a caixa de seleção Allow (Permitir).

  5. Escolha Salvar.

Para permitir acesso a tags em metadados de instância no início usando a AWS CLI

Use o comando run-instances e defina InstanceMetadataTags como enabled.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c3.large \ ... --metadata-options "InstanceMetadataTags=enabled"
Para permitir o acesso a tags em metadados de instância em uma instância em execução ou parada usando a AWS CLI

Use o comando modify-instance-metadata-options e defina --instance-metadata-tags como enabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-123456789example \ --instance-metadata-tags enabled

Recuperar tags dos metadados da instância

Depois de permitir acesso às tags da instância nos metadados da instância, você poderá acessar a categoria tags/instance com base nos metadados da instância. Para ter mais informações, consulte Acessar metadados de instância para uma instância do EC2.

Serviço de metadados da instância versão 2

Execute os exemplos a seguir na sua instância do Amazon EC2 para recuperar os metadados da instância para o IMDSv2.

cURL

Este exemplo obtém todas as chaves de tag para uma instância.

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance Name Environment

O exemplo a seguir obtém o valor da chave Name que foi obtida no exemplo anterior. A solicitação de IMDSv2 usa o token armazenado que foi criado com o comando no exemplo anterior. O token não pode estar expirado.

[ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/Name MyInstance
PowerShell

Este exemplo obtém todas as chaves de tag para uma instância.

PS C:\> $token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance Name Environment

O exemplo a seguir obtém o valor da chave Name que foi obtida no exemplo anterior. A solicitação de IMDSv2 usa o token armazenado que foi criado com o comando no exemplo anterior. O token não pode estar expirado.

PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance/Name MyInstance
Serviço de metadados da instância versão 1

Execute os exemplos a seguir na sua instância do Amazon EC2 para recuperar os metadados da instância para o IMDSv1.

cURL

Este exemplo obtém todas as chaves de tag para uma instância.

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/tags/instance Name Environment

O exemplo a seguir obtém o valor da chave Name que foi obtida no exemplo anterior.

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/tags/instance/Name MyInstance
PowerShell

Este exemplo obtém todas as chaves de tag para uma instância.

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/tags/instance Name Environment

O exemplo a seguir obtém o valor da chave Name que foi obtida no exemplo anterior.

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/tags/instance/Name MyInstance

Desativar o acesso a tags em metadados de instância

Para desativar o acesso a tags de instância nos metadados da instância, use um dos métodos a seguir. Você não precisa desativar o acesso a tags de instância nos metadados da instância no início, pois ele está desativado por padrão.

Para desativas o acesso a tags em metadados de instância usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione uma instância e escolha Actions (Ações), Instance settings (Configurações da instância), Allow tags in instance metadata (Permitir tags em metadados de instância).

  4. Para desativar o acesso a tags nos metadados da instância, limpe a caixa de seleção Allow (Permitir).

  5. Escolha Salvar.

Para desativar o acesso a tags em metadados de instância usando a AWS CLI

Use o comando modify-instance-metadata-options e defina --instance-metadata-tags como disabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-123456789example \ --instance-metadata-tags disabled
Visualizar se o acesso a tags nos metadados da instância é permitido usando a AWS CLI

Use o comando describe-instances e especifique o ID da instância. Use o parâmetro --query para exibir somente as opções de metadados da instância nos resultados.

aws ec2 describe-instances \ --instance-ids i-1234567890abcdef0 \ --query "Reservations[*].Instances[*].MetadataOptions"

O seguinte é um exemplo de saída. O valor de InstanceMetadataTags indica se o acesso às tags nos metadados da instância é permitido. Se o valor for enabled, ele será permitido. Se o valor for disabled, ele não será permitido.

[ [ { "State": "applied", "HttpTokens": "required", "HttpPutResponseHopLimit": 2, "HttpEndpoint": "enabled", "HttpProtocolIpv6": "disabled", "InstanceMetadataTags": "enabled" } ] ]