É 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.
Por padrão, não há acesso a tags de instância nos metadados da instância. Para cada instância, é necessário habilitar o acesso explicitamente.
Se você permitir o acesso a tags nos metadados da instância, as chaves da tag da instância estarão sujeitas a restrições específicas. A falta de conformidade resultará em falha na execução de novas instâncias ou em um erro para as instâncias existentes. As restrições são:
-
Só pode incluir letras (a-z, A-Z), números (0-9) e os seguintes caracteres:+ - = . , _
: @.
-
Não pode conter espaços ou /.
-
Não pode consistir apenas em . (um ponto), .. (dois pontos) ou _index.
Para obter mais informações, consulte Restrições de tags.
- Console
-
Para habilitar o acesso a tags nos metadados da instância após a inicialização de instância
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione sua instância e selecione Ações, Configurações da instância, Permitir tags em metadados de instância.
-
Para permitir o acesso a tags nos metadados da instância, marque a caixa de seleção Permitir.
-
Escolha Salvar.
- AWS CLI
-
Para habilitar o acesso a tags nos metadados da instância durante a inicialização de instância
Use o comando run-instances e inclua a seguinte opção --metadata-options.
--metadata-options "InstanceMetadataTags=enabled"
Para habilitar o acesso a tags nos metadados da instância após a inicialização de instância
Use o seguinte comando modify-instance-metadata-options.
aws ec2 modify-instance-metadata-options \
--instance-id i-1234567890abcdef0 \
--instance-metadata-tags enabled
Para verificar se o acesso a tags em metadados de instância está habilitado
Utilize o comando describe-instances e verifique o valor de InstanceMetadataTags.
aws ec2 describe-instances \
--instance-ids i-1234567890abcdef0 \
--query "Reservations[*].Instances[].MetadataOptions[].InstanceMetadataTags"
O seguinte é um exemplo de saída. O valor é enabled ou disabled.
[
"enabled"
]
- PowerShell
-
Para habilitar o acesso a tags nos metadados da instância durante a inicialização de instância
Use o cmdlet New-EC2Instance e inclua o seguinte parâmetro -MetadataOptions_InstanceMetadataTags.
-MetadataOptions_InstanceMetadataTags enabled
Para habilitar o acesso a tags nos metadados da instância após a inicialização de instância
Use o cmdlet Edit-EC2InstanceMetadataOption.
Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567890abcdef0 `
-InstanceMetadataTags enabled
Para verificar se o acesso a tags em metadados de instância está habilitado
Use o cmdlet Get-EC2Instance e verifique o valor de InstanceMetadataTags.
(Get-EC2Instance `
-InstanceId i-1234567890abcdef0).Instances.MetadataOptions.InstanceMetadataTags.Value
O seguinte é um exemplo de saída. O valor é enabled ou disabled.
enabled
Depois de permitir acesso às tags da instância nos metadados da instância, será possível acessar a categoria tags/instance com base nos metadados da instância. Para obter mais informações, consulte Acessar metadados de instância para uma instância do EC2.
- IMDSv2
-
Linux
Execute o comando a seguir na sua instância Linux para listar todas as chaves de tag da instância.
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
O exemplo a seguir obtém o valor de uma chave 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.
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/tag-key
Windows
Execute o cmdlet a seguir na sua instância Windows para listar todas as chaves de tag da instância.
$token = Invoke-RestMethod `
-Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
-Method PUT -Uri http://169.254.169.254/latest/api/token
Invoke-RestMethod `
-Headers @{"X-aws-ec2-metadata-token" = $token} `
-Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance
O exemplo a seguir obtém o valor de uma chave 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.
Invoke-RestMethod `
-Headers @{"X-aws-ec2-metadata-token" = $token} `
-Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance/tag-key
- IMDSv1
-
Linux
Execute o comando a seguir na sua instância Linux para listar todas as chaves de tag da instância.
curl http://169.254.169.254/latest/meta-data/tags/instance
O exemplo a seguir obtém o valor de uma chave obtida no exemplo anterior.
curl http://169.254.169.254/latest/meta-data/tags/instance/tag-key
Windows
Execute o cmdlet a seguir na sua instância Windows para listar todas as chaves de tag da instância.
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/tags/instance
O exemplo a seguir obtém o valor de uma chave obtida no exemplo anterior.
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/tags/instance/tag-key
É possível desabilitar o acesso a tags de instância nos metadados da instância. Você não precisa desabilitar o acesso a tags de instância nos metadados da instância no início, pois ele está desativado por padrão.
- Console
-
Para desabilitar o acesso a tags em metadados da instância
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
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).
-
Para desativar o acesso a tags nos metadados da instância, limpe a caixa de seleção Permitir.
-
Escolha Salvar.
- AWS CLI
-
Para desabilitar o acesso a tags em metadados da instância
Use o seguinte comando modify-instance-metadata-options.
aws ec2 modify-instance-metadata-options \
--instance-id i-1234567890abcdef0 \
--instance-metadata-tags disabled
- PowerShell
-
Para desabilitar o acesso a tags em metadados da instância
Use o cmdlet Edit-EC2InstanceMetadataOption.
Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567890abcdef0 `
-InstanceMetadataTag disabled