一般に、コードがAzureまたはAmazon仮想マシンで実行されているかどうかを検出する方法はありますか?特に、ある種のWebまたはワーカーの役割については言及していません。実行可能ファイルがあれば、そのマシンをクラウドVMに解決するものはありますか。たとえば、Azureにはドメインがないため、ドメイン名に単純に依存することはできません。 。
5 に答える
AWS
ゲストがネットワークを構築している場合は、http: //169.254.169.254にアクセスしてインスタンス メタデータをプローブできます。
例えば:
$ curl http://169.254.169.254/1.0/meta-data/instance-id
i-87dc2f76
ただし、ネットワークへのアクセスはかなり重いです。
AWS では、dmidecode を見て確認することもできます。
$ /usr/sbin/dmidecode -s bios-version | tr "[:upper:]" "[:lower:]" | grep -q "amazon"
dmidecode は、ゲスト OS のメモリにのみヒットするため軽量です。ただし、以前の回答で指摘したように、Amazon がバージョン文字列に「amazon」という単語を含め続けていることに依存しています。
アズール
Azure では、ハイパーバイザーの詳細を検出できますが、これでは Azure と HyperV を区別することはできません。シナリオによっては、これは必要ない場合があります。
dmidecode を使用して Azure/HyperV を検出するには、次の文字列を確認します。
$ /usr/sbin/dmidecode -s system-manufacturer | tr "[:upper:]" "[:lower:]" | grep -q "microsoft corporation"
$ /usr/sbin/dmidecode -s system-product-name | tr "[:upper:]" "[:lower:]" | grep -q "virtual machine"
マシンの IP アドレスを見て、それが特定のクラウドの IP アドレス ブロックにあるかどうかを判断できます。
Azure の場合、各サブリージョンの公開された IP アドレス範囲のリストは、次の xml ファイルにあります。
Amazon は、新しい範囲を追加するときにブログ エントリを投稿します。現在、それらは次のとおりです。
米国東部 (バージニア北部):
- 72.44.32.0/19 (72.44.32.0 - 72.44.63.255)
- 67.202.0.0/18 (67.202.0.0 - 67.202.63.255)
- 75.101.128.0/17 (75.101.128.0 - 75.101.255.255)
- 174.129.0.0/16 (174.129.0.0 - 174.129.255.255)
- 204.236.192.0/18 (204.236.192.0 - 204.236.255.255)
- 184.73.0.0/16 (184.73.0.0 – 184.73.255.255)
- 184.72.128.0/17 (184.72.128.0 - 184.72.255.255)
- 184.72.64.0/18 (184.72.64.0 - 184.72.127.255)
- 50.16.0.0/15 (50.16.0.0 - 50.17.255.255)
- 50.19.0.0/16 (50.19.0.0 - 50.19.255.255)
- 107.20.0.0/14 (107.20.0.0 - 107.23.255.255)
- 23.20.0.0/14 (23.20.0.0 – 23.23.255.255)
- 54.242.0.0/15 (54.242.0.0 – 54.243.255.255)
- 54.234.0.0/15 (54.234.0.0 – 54.235.255.255) 新規
- 54.236.0.0/15 (54.236.0.0 – 54.237.255.255) 新規
米国西部 (オレゴン):
- 50.112.0.0/16 (50.112.0.0 - 50.112.255.255)
- 54.245.0.0/16 (54.245.0.0 – 54.245.255.255)
米国西部 (北カリフォルニア):
- 204.236.128.0/18 (204.236.128.0 - 204.236.191.255)
- 184.72.0.0/18 (184.72.0.0 – 184.72.63.255)
- 50.18.0.0/16 (50.18.0.0 - 50.18.255.255)
- 184.169.128.0/17 (184.169.128.0 - 184.169.255.255)
- 54.241.0.0/16 (54.241.0.0 – 54.241.255.255)
EU (アイルランド):
- 79.125.0.0/17 (79.125.0.0 - 79.125.127.255)
- 46.51.128.0/18 (46.51.128.0 - 46.51.191.255)
- 46.51.192.0/20 (46.51.192.0 - 46.51.207.255)
- 46.137.0.0/17 (46.137.0.0 - 46.137.127.255)
- 46.137.128.0/18 (46.137.128.0 - 46.137.191.255)
- 176.34.128.0/17 (176.34.128.0 - 176.34.255.255)
- 176.34.64.0/18 (176.34.64.0 – 176.34.127.255)
- 54.247.0.0/16 (54.247.0.0 – 54.247.255.255)
- 54.246.0.0/16 (54.246.0.0 – 54.246.255.255) 新規
アジアパシフィック (シンガポール)
- 175.41.128.0/18 (175.41.128.0 - 175.41.191.255)
- 122.248.192.0/18 (122.248.192.0 - 122.248.255.255)
- 46.137.192.0/18 (46.137.192.0 - 46.137.255.255)
- 46.51.216.0/21 (46.51.216.0 - 46.51.223.255)
- 54.251.0.0/16 (54.251.0.0 – 54.251.255.255)
アジアパシフィック (東京)
- 175.41.192.0/18 (175.41.192.0 - 175.41.255.255)
- 46.51.224.0/19 (46.51.224.0 - 46.51.255.255)
- 176.32.64.0/19 (176.32.64.0 - 176.32.95.255)
- 103.4.8.0/21 (103.4.8.0 - 103.4.15.255)
- 176.34.0.0/18 (176.34.0.0 - 176.34.63.255)
- 54.248.0.0/15 (54.248.0.0 - 54.249.255.255)
南米(サンパウロ)
- 177.71.128.0/17 (177.71.128.0 - 177.71.255.255)
- 54.232.0.0/16 (54.232.0.0 – 54.232.255.255) 新規