Obtención de metadatos
Casos
Los metadatos de ECS incluyen información básica de un ECS en una plataforma en la nube, como el ID de ECS, el nombre de host y la información de red. Los metadatos de ECS se pueden obtener utilizando API compatibles con OpenStack o EC2, como se muestra en Tabla 1. A continuación se describe el URI y los métodos de uso de los metadatos admitidos de ECS.
Notas
Si los metadatos contienen datos confidenciales, tome las medidas adecuadas para proteger los datos confidenciales, por ejemplo, controlando los permisos de acceso y cifrando los datos.
Realice la siguiente configuración en el firewall:
- Windows
Si necesita asignar permisos solo al administrador para acceder a datos personalizados, habilite el firewall como administrador y ejecute los siguientes comandos de 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
Si necesita asignar permisos solo a usuario root para acceder a datos personalizados, ejecute el siguiente comando como usuario root:
iptables --append OUTPUT --proto tcp --destination 169.254.169.254 --match owner ! --uid-owner root --jump REJECT
Tipos de metadatos de ECS
Tabla 1 no contiene elementos de metadatos ami-id, ami-launch-index, ami-manifest-path, block-device-mapping/, instance-action, instance-id y reservation-id. Estos elementos de metadatos no son compatibles con EC2 y no se recomiendan.
Tipo de metadatos |
Elemento de metadatos |
Descripción |
---|---|---|
OpenStack |
/meta_data.json |
Muestra metadatos de ECS. Para ver los campos clave en los metadatos de ECS, consulte Tabla 2. |
OpenStack |
/password |
Muestra la contraseña para iniciar sesión en un ECS. Cloudbase-Init utiliza estos metadatos para almacenar contraseñas de texto cifrado durante la inicialización de ECS de Windows autenticados por pares de claves. |
OpenStack |
/user_data |
Muestra los datos de usuario de ECS. Estos metadatos le permiten especificar secuencias de comandos y archivos de configuración para inicializar los ECS. Para más detalles, consulte Transferencia de los datos de usuario a ECS. Para los ECS de Linux autenticados con contraseña, estos metadatos se utilizan para guardar scripts de inyección de contraseña. |
OpenStack |
/network_data.json |
Muestra información de red de ECS. |
OpenStack |
/securitykey |
Obtiene AKs y SKs temporales. Antes de activar un ECS a obtener un AK y SK temporales, asegúrese de que la cuenta op_svc_ecs ha sido autorizada en IAM y que los recursos deseados de ECS han sido autorizados para la gestión. |
EC2 |
/meta-data/hostname |
Muestra el nombre del host que aloja un ECS. Para eliminar el sufijo.novalocal desde un ECS, consulte: |
EC2 |
/meta-data/local-hostname |
El significado de este campo es el mismo que el de hostname. |
EC2 |
/meta-data/public-hostname |
El significado de este campo es el mismo que el de hostname. |
EC2 |
/meta-data/instance-type |
Muestra una variante de ECS. |
EC2 |
/meta-data/local-ipv4 |
Muestra la dirección IP fija de un ECS. Si hay varias NIC, solo se muestra la dirección IP de la NIC principal. |
EC2 |
/meta-data/placement/availability-zone |
Muestra el AZ que alberga un ECS. |
EC2 |
/meta-data/public-ipv4 |
Muestra el EIP enlazado a un ECS. Si hay varias NIC, solo se muestra el EIP de la NIC principal. |
EC2 |
/meta-data/public-keys/0/openssh-key |
Muestra la clave pública de un ECS. |
EC2 |
/user-data |
Muestra los datos de usuario de ECS. |
EC2 |
/meta-data/security-groups |
Muestra el grupo de seguridad al que pertenece un ECS. |
Parámetro |
Tipo |
Descripción |
---|---|---|
uuid |
String |
Especifica un ID de ECS. |
availability_zone |
String |
Especifica la AZ donde se encuentra un ECS. |
meta |
Dict |
Especifica la información de metadatos, incluido el nombre de la imagen, el ID de imagen y el ID de VPC. |
hostname |
String |
Especifica el nombre del host que alberga un ECS. Para eliminar el sufijo.novalocal desde un ECS, consulte: |
enterprise_project_id |
String |
Especifica el ID del proyecto de empresa que alberga un ECS. |
Prerrequisitos:
- El ECS de destino ha sido conectado.
- Las reglas de grupo de seguridad en la dirección de salida cumplen los siguientes requisitos:
- Protocolo: TCP
- Puerto: 80
- Destino: 169.254.0.0/16
Si utiliza las reglas de grupo de seguridad predeterminadas para la dirección de salida, se cumplen los requisitos anteriores. A continuación, se puede acceder a los metadatos. Las reglas de grupo de seguridad predeterminadas para la dirección de salida son las siguientes:
- Protocolo: Todos
- Puerto: Todos
- Destino: 0.0.0.0/0
Metadatos (API de metadatos de OpenStack)
Muestra metadatos de ECS.
- Identificador URI
- Método de uso
- Ejemplo
Para usar cURL para ver metadatos de ECS de Linux, ejecute el siguiente comando:
curl http://169.254.169.254/openstack/latest/meta_data.json
Para usar Invoke-RestMethod para ver metadatos de ECS de Windows, ejecute el siguiente 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" }
Datos de usuario (API de metadatos de OpenStack)
Muestra los datos de usuario de ECS. El valor se configura solo cuando se crea un ECS. No se puede cambiar después de la configuración.
- Identificador URI
- Método de uso
- Ejemplo
curl http://169.254.169.254/openstack/latest/user_data
Windows:
Invoke-RestMethod http://169.254.169.254/openstack/latest/user_data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
Si los datos de usuario no se pasaron al ECS durante la creación de ECS, el resultado de la consulta es 404.Figura 1 404 No se encontró la página
Datos de red (API de metadatos de OpenStack)
Muestra información sobre todas las NIC conectadas a un ECS, incluidas sus direcciones de servidor DNS, ancho de banda de red, ID, direcciones IP privadas, EIP y direcciones MAC.
- Identificador URI
- Método de uso
- Ejemplo
instance_max_bandwidth e instance_min_bandwidth están en la unidad de Mbit/s. Si el valor es -1, el ancho de banda no está limitado.
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 } }
Clave de seguridad (API de metadatos de OpenStack)
Obtiene AKs y SKs temporales.
- Si un ECS necesita obtener un AK y SK temporales, vaya a la página de detalles de ECS y configure Agency para el ECS en el área de Management Information de modo que el ECS esté autorizado en IAM.
Para obtener más información, consulte Delegación de servicios en la nube.
- El período de validez de un AK y SK temporal es de una hora. El AK y el SK temporales se actualizan 10 minutos antes del tiempo de expiración. Durante los 10 minutos, se pueden utilizar tanto los nuevos como los antiguos AK temporales y SK.
- Cuando use AK y SK temporales, agregue 'X-Security-Token':{securitytoken} en el encabezado del mensaje. securitytoken es el valor devuelto cuando se realiza una llamada a la API.
Datos de usuario (API compatible con EC2)
Muestra los datos de usuario de ECS. El valor se configura solo cuando se crea un ECS. No se puede cambiar después de la configuración.
- Identificador URI
- Método de uso
- Ejemplo
curl http://169.254.169.254/latest/user-data
Windows:
Invoke-RestMethod http://169.254.169.254/latest/user-data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
Nombre de host (API compatible con EC2)
Muestra el nombre del host que aloja un ECS. El sufijo .novalocal se agregará más adelante.
Tipo de instancia (API compatible con EC2)
Muestra una variante de ECS.
Local IPv4 (EC2 Compatible API)
Muestra la dirección IP fija de un ECS. Si hay varias NIC, solo se muestra la dirección IP de la NIC principal.
Zona de disponibilidad (API compatible con EC2)
Muestra el AZ que alberga un ECS.
IPv4 público (API compatible con EC2)
Muestra el EIP enlazado a un ECS. Si hay varias NIC, solo se muestra el EIP de la NIC principal.
Claves públicas (API compatible con EC2)
Muestra la clave pública de un ECS.
- Identificador URI
- Método de uso
- Ejemplo
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