Obtenção de Metadados
Cenários
Os metadados de ECS incluem informações básicas de uma ECS na plataforma de nuvem, como a ID de ECS, o nome do host e as informações da rede. Os metadados de ECS podem ser obtidos usando as API compatíveis com OpenStack e EC2, conforme mostrado na Tabela 1. A seguir, descrevemos o URI e os métodos de uso dos metadados de ECS suportados.
Notas
Se os metadados contiverem dados sensíveis, tome as medidas adequadas para proteger os dados sensíveis, por exemplo, controlar as permissões de acesso e criptografar os dados.
Execute a seguinte configuração no firewall:
- Windows
Se você precisar atribuir permissões apenas ao administrador para acessar dados personalizados, ative o firewall como administrador e execute os seguintes comandos no PowerShell:
PS C:\>$RejectPrincipal = New-Object -TypeName System.Security.Principal.NTAccount ("Everyone")
PS C:\>$RejectPrincipalSID = $RejectPrincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value
PS C:\>$ExceptPrincipal = New-Object -TypeName System.Security.Principal.NTAccount ("Administrator")
PS C:\>$ExceptPrincipalSID = $ExceptPrincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value
PS C:\>$PrincipalSDDL = "O:LSD:(D;;CC;;;$ExceptPrincipalSID)(A;;CC;;;$RejectPrincipalSID)"
PS C:\>New-NetFirewallRule -DisplayName "Reject metadata service for $($RejectPrincipal.Value), exception: $($ExceptPrincipal.Value)" -Action block -Direction out -Protocol TCP -RemoteAddress 169.254.169.254 -LocalUser $PrincipalSDDL
- Linux
Se você precisar atribuir permissões apenas ao usuário root para acessar dados personalizados, execute o seguinte comando como usuário root:
iptables --append OUTPUT --proto tcp --destination 169.254.169.254 --match owner ! --uid-owner root --jump REJECT
Tipos de Metadados de ECS
Tabela 1 não contém itens de metadados ami-id, ami-launch-index, ami-manifest-path, block-device-mapping/, instância-ação, id-instância e id-reserva. Esses itens de metadados não são compatíveis com o EC2 e não são recomendados.
Tipo de Metadados |
Item de Metadados |
Descrição |
---|---|---|
OpenStack |
/meta_data.json |
Exibe metadados de ECS. Para obter os campos-chave nos metadados do ECS, consulte Tabela 2. |
OpenStack |
/password |
Exibe a senha para efetuar login em um ECS. Esses metadados são usados pelo Cloudbase-Init para armazenar senhas de texto cifrado durante a inicialização dos ECS de Windows autenticados por pares de chaves. |
OpenStack |
/user_data |
Exibe os dados do usuário do ECS. Esses metadados permitem especificar scripts e arquivos de configuração para inicialização dos ECS. Para obter detalhes, consulte Transmissão de dados do usuário para os ECS. Para os ECS Linux autenticados por senha, esses metadados são usados para salvar scripts de injeção de senha. |
OpenStack |
/network_data.json |
Exibe informações de rede de ECS. |
OpenStack |
/securitykey |
Obtém AKs e SKs temporários. Antes de ativar um ECS para obter um AK e SK temporários, verifique se a conta op_svc_ecs foi autorizada no IAM e se os recursos de ECS desejados foram autorizados para gerenciamento. |
EC2 |
/meta-data/hostname |
Exibe o nome do host que acomoda um ECS. Para remover o sufixo .novalocal de um ECS, consulte: |
EC2 |
/meta-data/local-hostname |
O significado deste campo é o mesmo que o de hostname. |
EC2 |
/meta-data/public-hostname |
O significado deste campo é o mesmo que o de hostname. |
EC2 |
/meta-data/instance-type |
Exibe um especificação de ECS. |
EC2 |
/meta-data/local-ipv4 |
Exibe o endereço IP fixo de um ECS. Se houver as várias NIC, somente o endereço IP da NIC primária será exibido. |
EC2 |
/meta-data/placement/availability-zone |
Exibe a AZ acomodando um ECS. |
EC2 |
/meta-data/public-ipv4 |
Exibe o EIP vinculado a um ECS. Se houver as várias NIC, somente o EIP da NIC principal será exibido. |
EC2 |
/meta-data/public-keys/0/openssh-key |
Exibe a chave pública de um ECS. |
EC2 |
/user-data |
Exibe os dados do usuário do ECS. |
EC2 |
/meta-data/security-groups |
Exibe o grupo de segurança ao qual um ECS pertence. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
uuid |
String |
Especifica uma ID de ECS. |
zona_disponibilidade |
String |
Especifica a AZ onde um ECS localiza. |
meta |
Dict |
Especifica as informações de metadados, incluindo o nome da imagem, o ID da imagem e o ID da VPC. |
nome de anfitrião |
String |
Especifica o nome do host que acomoda um ECS. Para remover o sufixo .novalocal de um ECS, consulte: |
id_do_projeto_da_empresa |
String |
Especifica a ID do projeto da empresa que acomoda um ECS. |
Pré-requisitos
- O alvo ECS foi logado.
- As regras de grupo de segurança na direção de saída atendem aos seguintes requisitos:
- Protocol: TCP
- Port: 80
- Destination: 169.254.0.0/16
Se você usar as regras de grupo de segurança padrão para a direção de saída, os requisitos anteriores serão atendidos. Em seguida, os metadados podem ser acessados. As regras de grupo de segurança padrão para a direção de saída são as seguintes:
- Protocol: All
- Port: All
- Destination: 0.0.0.0/0
Metadados (API de Metadados do OpenStack)
Exibe metadados de ECS.
- URI
- Método de utilização
- Exemplo
Para usar cURL para exibir metadados de ECS de Linux, execute o seguinte comando:
curl http://169.254.169.254/openstack/latest/meta_data.json
Para usar Invoke-RestMethod para exibir metadados do Windows ECS, execute o seguinte comando:
Invoke-RestMethod http://169.254.169.254/openstack/latest/meta_data.json | ConvertTo-Json
{ "random_seed": "rEocCViRS+dNwlYdGIxJHUp+00poeUsAdBFkbPbYQTmpNwpoEb43k9z+96TyrekNKS+iLYDdRNy4kKGoNPEVBCc05Hg1TcDblAPfJwgJS1okqEtlcofUhKmL3K0fto+5KXEDU3GNuGwyZXjdVb9HQWU+E1jztAJjjqsahnU+g/tawABTVySLBKlAT8fMGax1mTGgArucn/WzDcy19DGioKPE7F8ILtSQ4Ww3VClK5VYB/h0x+4r7IVHrPmYX/bi1Yhm3Dc4rRYNaTjdOV5gUOsbO3oAeQkmKwQ/NO0N8qw5Ya4l8ZUW4tMav4mOsRySOOB35v0bvaJc6p+50DTbWNeX5A2MLiEhTP3vsPrmvk4LRF7CLz2J2TGIM14OoVBw7LARwmv9cz532zHki/c8tlhRzLmOTXh/wL36zFW10DeuReUGmxth7IGNmRMQKV6+miI78jm/KMPpgAdK3vwYF/GcelOFJD2HghMUUCeMbwYnvijLTejuBpwhJMNiHA/NvlEsxJDxqBCoss/Jfe+yCmUFyxovJ+L8oNkTzkmtCNzw3Ra0hiKchGhqK3BIeToV/kVx5DdF081xrEA+qyoM6CVyfJtEoz1zlRRyoo9bJ65Eg6JJd8dj1UCVsDqRY1pIjgzE/Mzsw6AaaCVhaMJL7u7YMVdyKzA6z65Xtvujz0Vo=", "uuid": "ca9e8b7c-f2be-4b6d-a639-f10b4d994d04", "availability_zone": "lt-test-1c", "hostname": "ecs-ddd4-l00349281.novalocal", "launch_index": 0, "meta": { "metering.image_id": "3a64bd37-955e-40cd-ab9e-129db56bc05d", "metering.imagetype": "gold", "metering.resourcespeccode": "s3.medium.1.linux", "image_name": "CentOS 7.6 64bit", "os_bit": "64", "vpc_id": "3b6c201f-aeb3-4bce-b841-64756e66cb49", "metering.resourcetype": "1", "cascaded.instance_extrainfo": "pcibridge:2", "os_type": "Linux", "enterprise_project_id" : "0", "region_id": "xxx", "instance_type": "c3.large.2", "charging_mode": "0" }, "project_id": "6e8b0c94265645f39c5abbe63c4113c6", "name": "ecs-ddd4-l00349281" }
Dados do usuário (API de metadados do OpenStack)
Exibe dados do usuário de ECS. O valor é configurado somente quando você cria um ECS. Não pode ser alterado após a configuração.
- URI
- Método de utilização
- Exemplo
curl http://169.254.169.254/openstack/latest/user_data
Windows:
Invoke-RestMethod http://169.254.169.254/openstack/latest/user_data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
Se os dados do usuário não tiverem sido passados para o ECS durante a criação de ECS, o resultado da consulta será 404.Figura 1 404 Não encontrado
Dados de rede ( API de metadados do OpenStack)
Exibe informações sobre todas as NIC conectadas a um ECS, incluindo seus endereços de servidor DNS, largura de banda de rede, IDs, endereços IP privados, os EIP e endereços MAC.
- URI
- Método de utilização
- Exemplo
instance_max_bandwidth e instance_min_bandwidth estão na unidade de Mbit/s. Se o valor for -1, a largura de banda não é limitada.
Linux:
curl http://169.254.169.254/openstack/latest/network_data.json
Windows:
Invoke-RestMethod http://169.254.169.254/openstack/latest/network_data.json | ConvertTo-Json
{ "services": [{ "type": "dns", "address": "xxx.xx.x.x" }, { "type": "dns", "address": "100.1 25.21.250" }], "networks": [{ "network_id": "67dc10ce-441f-4592-9a80-cc709f6436e7", "type": "i pv4_dhcp", "link": "tap68a9272d-71", "id": "network0" }], "links": [{ "type": "cascading", "vif_id": "68a9272d-7152-4ae7-a138-3ef53af669e7", "ethernet_mac_address": "fa:16:3e:f7:c1:47", "id": "tap68a9272d-71", "local_ipv4": "192.169.10.10", "public_ipv4": "100.100.10.10" "mtu": null }], "qos":{ "instance_max_bandwidth": 1200, "instance_min_bandwidth": 4000 } }
Chave de segurança (API de metadados do OpenStack)
Obtém AKs e SKs temporários.
- Se um ECS precisar obter um AK e SK temporários, vá para a página de detalhes do ECS e configure Agency para o ECS na área de informações de gerenciamento para que o ECS seja autorizado no IAM.
Para obter detalhes, consulte Delegação de serviço de nuvem.
- O período de validade de um AK e SK temporários é de uma hora. O AK e o SK temporários são atualizados 10 minutos antes do tempo de expiração. Durante os 10 minutos, tanto os AKs e SKs temporários novos e antigos podem ser usados.
- Ao usar AKs e SKs temporários, adicione 'X-Security-Token':{securitytoken} no cabeçalho da mensagem. securitytoken é o valor retornado quando uma chamada é feita para a API.
Dados do usuário (API compatível com EC2)
Exibe dados do usuário de ECS. O valor é configurado somente quando você cria um ECS. Não pode ser alterado após a configuração.
- URI
- Método de utilização
- Exemplo
curl http://169.254.169.254/latest/user-data
Windows:
Invoke-RestMethod http://169.254.169.254/latest/user-data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
Nome do host (API compatível com EC2)
Exibe o nome do host que acomoda um ECS. O sufixo.novalocal será adicionado mais tarde.
Tipo de instância (API compatível com EC2)
Exibe um especificação de ECS.
IPv4 local (API compatível com EC2)
Exibe o endereço IP fixo de um ECS. Se houver as várias NIC, somente o endereço IP da NIC primária será exibido.
Zona de disponibilidade (API compatível com EC2)
Exibe a AZ acomodando um ECS.
IPv4 público (API compatível com EC2)
Exibe o EIP vinculado a um ECS. Se houver as várias NIC, somente o EIP da NIC principal será exibido.
Chaves públicas (API compatível com EC2)
Exibe a chave pública de um ECS.
- URI
- Método de utilização
- Exemplo
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
Windows:
Invoke-RestMethod http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI5Fw5k8Fgzajn1zJwLoV3+wMP+6CyvsSiIc/hioggSnYu/AD0Yqm8vVO0kWlun1rFbdO+QUZKyVr/OPUjQSw4SRh4qsTKf/+eFoWTjplFvd1WCBZzS/WRenxIwR00KkczHSJro763+wYcwKieb4eKRxaQoQvoFgVjLBULXAjH4eKoKTVNtMXAvPP9aMy2SLgsJNtMb9ArfziAiblQynq7UIfLnN3VclzPeiWrqtzjyOp6CPUXnL0lVPTvbLe8sUteBsJZwlL6K4i+Y0lf3ryqnmQgC21yW4Dzu+kwk8FVT2MgWkCwiZd8gQ/+uJzrJFyMfUOBIklOBfuUENIJUhAB Generated-by-Nova