Получить идентификационный документ виртуальной машины
При создании виртуальной машины формируется идентификационный документ (identity document), в котором хранятся сведения об этой ВМ: идентификаторы ВМ, продукта Marketplace, образа диска и т.д.
Чтобы запросить идентификационный документ:
-
Подключитесь к ВМ:
ssh <IP-адрес_ВМ> -
Выполните команду, чтобы получить идентификационный документ в формате Google Compute Engine:
curl \ --header Metadata-Flavor:Google 169.254.169.254/computeMetadata/v1/instance/vendor/identity/documentПример ответа:
{"instanceId":"fhmm5252k8vl********","productCodes":null,"imageId":"fd8evlqsgg4e********","productIds":["f2e3ia802lab********"],"createdAt":"2023-05-29T09:46:59Z","version":"2023-03-01"}
Примечание
Если ВМ была создана до 09.06.2023 и вы не можете получить идентификационный документ, остановите и снова запустите ВМ.
Проверить подпись идентификационного документа
Сервис метаданных виртуальной машины кроме самого идентификационного документа предоставляет его криптографические подписи.
Вы можете использовать эти подписи для проверки происхождения, подлинности и целостности документа. Для этого:
-
Подключитесь к ВМ:
ssh <IP-адрес_ВМ> -
Получите RSA-подпись из метаданных ВМ и сохраните ее в файл
rsa2048:curl \ --header Metadata-Flavor:Google 169.254.169.254/computeMetadata/v1/instance/vendor/identity/rsa > rsa2048 -
Создайте файл
certificateи добавьте в него публичный сертификат:-----BEGIN CERTIFICATE----- MIIDbTCCAlWgAwIBAgIUYxxDYt/4YKuabUadOe76BKPDm5IwDQYJKoZIhvcNAQEL BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yNDA1MTcwNzMwMDJaGA8yMTI0 MDQyMzA3MzAwMlowRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAMN7SpdCijGFqhIxYJ/WH+JCOJ3EzTDxj9rcLZcj slurCfeAsaQcf1N7lrGA2qc93aGDYsQgRDiv8HjTnVXmORNv/wenK3xlRzbSVTF/ GiKEDzcqKnG6SZEXs3iCq89Y3xO/SeuYSAbKN9nSWemdpYFqzEyvcgtu4fictU2/ tDBKUY4viIJ475XtnHOqxHvVPnpmW8EXq6/B/X4UgTis1C9lOwmtBgo+dGugPKLK iHsNeYmJSfCQwUysNVdFRkEdMn6jPejhjLBQKbzo5xiDY3cERmC856MkaRpLUtJ+ a4s8eQFNhOH37wdPjoCoE9WpTyPz3aMTwAOMOOJbj0eyFQsCAwEAAaNTMFEwHQYD VR0OBBYEFKm8P5NNXwS7TkDQykbbrSudXiUYMB8GA1UdIwQYMBaAFKm8P5NNXwS7 TkDQykbbrSudXiUYMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB ADXIYY3rpfj2EDAZKul3aobpMpnhPLyOb0Lsp1tJUwY2uvDlYMkd7dxZ6pXizmXx GFpuLLL6PLPgBEcQiISi+dK4uulc7oATk9A+frYEnsSP6tSdaQybVMAp7Uz3aZco hv5+ayA0u3oEoX49zKxaSCIppbqOZ5M8wA++zxVsFGSdMT43GglAeLb6oN1RaZMj V5rQsWXVXqa3owoFWGunVXslngp4kOJDP7cAdWz182n9x90reOQgi2EqC9UEMKfT e+LTayMRIXbZusHLz5hMFCB202bNLCZVvWJvouvseSbNMqAh1kB9FL+2u3OSYwXS w4iCV/tX2Ww47IMob6GD1TY= -----END CERTIFICATE----- -
Проверьте подпись и сохраните содержимое документа в файл
document:openssl smime -verify -in rsa2048 -inform PEM -certfile certificate -noverify | tee documentЕсли подпись верна, появится сообщение
Verification successful.
-
Подключитесь к ВМ:
ssh <IP-адрес_ВМ> -
Получите dsa2048-подпись из метаданных ВМ и сохраните ее в файл
dsa2048:curl \ --header Metadata-Flavor:Google 169.254.169.254/computeMetadata/v1/instance/vendor/identity/dsa > dsa2048 -
Создайте файл
certificateи сохраните в него публичный сертификат:-----BEGIN CERTIFICATE----- MIIE0zCCBHmgAwIBAgIUN2CH+VDvBPp734rF72KOttCt57AwCwYJYIZIAWUDBAMC MEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjQwNTE3MDcyODUyWhgPMjEyNDA0 MjMwNzI4NTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggNIMIICOgYHKoZIzjgE ATCCAi0CggEBAO+gwmA1NySKpgiZVLm+dPN1R5JfBvrMhiPWnKm3TCHytb0lnFnb /t5rvmFCViVzCu2hp+qSBNMttmFUGX9vUJN7DA8VHQS+pN1/tkclCXTz5sqTkiI/ uJKGFwWYJoHlHMywtPDsReIKLbnrvC5TuxfDNrU4aSxqEOoKOKlav6rL5g+0TEtl 6z9b8J0Ww6G4q5Bz3aW6Zntv0Q49YssQqFDn93EhnF9rzFcyOl1eB73CrKYtKt1o bF1OEGhJNGF3Q782F7PoFKnK7GXpAuCqhZn3Ls5+n0RHcj84KB2HLTuTbht40A75 OKP7u+Mrx4kOI/ECnUc3E1qbMqGBMuT0NPUCIQCdS0+A+Ma1nDghbhmtfrW/glsZ TT0JZEkwDTegv4YjJQKCAQEA1RfHWJDXwpAupFGYjOfRNlPqqpOk0wkeEPtQUllH cnyQ1r6JOot8qog6eHN7hS7A2EJTJU61FXMD2Hcb5gpgcPoPQehjAucMVX9ZrdTB 52ESbeXtlqscllDgtiGM1+UDA15oVSUC9KXz3ub0M1gir3JwinHDPRbJfPhhXOH5 X0egj52ueLwsct3779yHE1Qxz+eUeafjBVWIEn+wKQ8NaZLcewdXn9oL4FErYriW pf/BfomKyjRjJ/Axuqzf3XvfmCXD5NOqP9zu4GJOFr1sksowFbyFm8/lWo+Qv7uQ DhBNFA/ICOr6q8ejRXM6OO2YlHWfbUhIyBgRCoH2TDWfJAOCAQYAAoIBAQCcrqYv jkkrmi/anmoHHBGEqO+2Xld1DY5R9AXsNBUDxiThTzBIOPP67TJ3bHJbkwEMSZqx Q3Ubde8HaSgmo1CIvMobRgL2Q3YC2tY7ybH7zotWMOPX+p+lC5QmsBxkQ6M/ea3r Jfpe7pEUlBMTWS2BvozDooAL6cruP4NqTyw9Dq0pox7Lg3zxeFrHmtG4wgOSKyLg XFtKOSlmTeEAT8fG2Xb/MZnQHWFcoUh37sFrbRIW1ydYdKBRua25laMca9ExHSss UVf2d7rB4USymcDLGWdLEjO0jMFRTY8M5Ig8uENEfRMD/klMvDg1ZeK5Ze9fMh+l IM4c57p977EPoDRGo1MwUTAdBgNVHQ4EFgQUeL8k82WV59MQtuitLyLnFifDcdkw HwYDVR0jBBgwFoAUeL8k82WV59MQtuitLyLnFifDcdkwDwYDVR0TAQH/BAUwAwEB /zALBglghkgBZQMEAwIDRwAwRAIgdeGjw97PE5ok2YYomfaEiqeX4E1nbwZyZcTV 2g707loCIGQGeeHSKxWghybC/fAzultcLVNKvjBllZeBadCSDvtG -----END CERTIFICATE----- -
Проверьте подпись и сохраните содержимое документа в файл
document:openssl smime -verify -in dsa2048 -inform PEM -certfile certificate -noverify | tee documentЕсли подпись верна, появится сообщение
Verification successful.
-
Подключитесь к ВМ:
ssh <IP-адрес_ВМ> -
Получите base64-подпись из метаданных ВМ и сохраните ее в файл
signature:curl \ --header Metadata-Flavor:Google 169.254.169.254/computeMetadata/v1/instance/vendor/identity/base64 | \ base64 -d > signature -
Получите идентификационный документ и сохраните его в файл
document:curl \ --header Metadata-Flavor:Google 169.254.169.254/computeMetadata/v1/instance/vendor/identity/document > document -
Создайте файл
certificateи сохраните в него публичный сертификат:-----BEGIN CERTIFICATE----- MIIC4TCCAcmgAwIBAgIUP0zcGO1MeRwze8VdSMEt/OdBXoIwDQYJKoZIhvcNAQEL BQAwADAeFw0yMzA2MDcwNjU4MTBaFw0zMzA2MDQwNjU4MTBaMAAwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDw6TvAvrbJvY4tzIIuDnLEVfRUW4BZJD3y K8fyyxXrYDvC69RKCKk9+TQhnUOLhZNlDST4HFfSPlakOjXUduyJE5M1EmoLAstN 81aP3TejseDavxmaNijXRsa9E731T5H+zo44PgAHfQJmiD7rtcr+QOIosKUB2dwp F2acp9hLKd389BfNctziG0Oxq7hlISTDBnhzBg7eKuqWtShjVW5RqQvp3bARfUPa RWdYjmZvR+AnmozV1SGnpAnatzhnF6tNAb5XSEw49tumsX1D4A11J6mtrafO6bsP wdIPwy9W15iCszUNlFcdBaZhESc34VbyCyLMvA5T0Uj1FJHz1RFlAgMBAAGjUzBR MB0GA1UdDgQWBBQq0z6Vcmjcn8wnRTwKGSm5YGas9TAfBgNVHSMEGDAWgBQq0z6V cmjcn8wnRTwKGSm5YGas9TAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA A4IBAQBplippQ/Pxn7AkuwOTSwSTeJ7S+rMSb6iSL9chNHetanft0Ikr5BDsSrd6 TeHV0sEMilDIjX0EjSNHwYtYrDPk6cGjkzDTYb6/U10c5Xhwi0g7/lMH/RPihPz5 co80VEqXWlgfgHuE7/cAiTJ61PiFD9oI494bQcIISQNDfbUUiYfn32+8nK20rn8C w7PbGoIv6zz6A0c6DJT7yXJF5sAHgX4M03Oi9edzQ077ZOboXSuUKe4VfHIpjTjZ 0sM/NbG5BFstyetVc3FZOGWGukTRb0C0GSASOm6hCyh5ctmpwlS4menc/OAx9BYO r9ZBjEa0oLFVV0pP5Tj4Gf1DDpuJ -----END CERTIFICATE----- -
Извлеките из сертификата публичный ключ и сохраните его в файл
key:openssl x509 -pubkey -noout -in certificate > key -
Проверьте подпись и сохраните содержимое документа в файл
document:openssl dgst -sha256 -verify key -signature signature documentЕсли подпись верна, появится сообщение
Verified OK.
Сопоставьте идентификационный документ из метаданных ВМ с документом, сохраненным в файле:
curl http://169.254.169.254/latest/vendor/instance-identity/document | \
openssl dgst -sha256
openssl dgst -sha256 < document
Если хеш совпадает, идентификационный документ, сохраненный в файле, соответствует документу в метаданных ВМ.