インスタンスメタデータを使用したインスタンスのタグの表示
インスタンスのメタデータからインスタンスのタグにアクセスできます。インスタンスメタデータからタグにアクセスすると、DescribeInstances
または DescribeTags
API コールを使用してタグ情報を取得する必要がなくなります。これにより、1 秒あたりの API トランザクションが削減され、制御するインスタンスの数に応じてタグ取得をスケーリングできるようになります。さらに、インスタンスで実行されているローカルプロセスは、インスタンスのメタデータからインスタンスのタグ情報を直接表示できます。
デフォルトでは、インスタンスメタデータからタグは使用できません。アクセスを明示的に許可する必要があります。インスタンスの起動時、または実行中または停止したインスタンスでの起動後にアクセスを許可できます。起動テンプレートでこれを指定することで、タグへのアクセスを許可することもできます。テンプレートを使用してインスタンスが起動されると、インスタンスメタデータ内のタグへのアクセスが許可されます。
インスタンスタグを追加または削除すると、インスタンスの実行中にインスタンスのメタデータが更新されます。インスタンスを停止して起動したりする必要はありません。
インスタンスメタデータのタグへのアクセスを許可する
デフォルトでは、インスタンスメタデータ内のインスタンスタグへのアクセス権はありません。インスタンスごとに、次のいずれかの方法を使用してアクセスを明示的に許可する必要があります。
コンソールを使用してインスタンスメタデータのタグへのアクセスを許可するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[インスタンス] を選択します。
-
インスタンスを選択し、[Actions] (アクション)、[Instance settings] (インスタンス設定)、[Allow tags in instance metadata] (インスタンスメタデータ内のタグを許可する) の順に選択します。
-
インスタンスメタデータ内のタグへのアクセスを許可するには、[Allow] (許可) チェックボックスをオンにします。
-
[Save] を選択します。
AWS CLI を使用して起動時にインスタンスメタデータのタグへのアクセスを許可するには
run-instances コマンドを使用して、InstanceMetadataTags
を enabled
に設定します。
aws ec2 run-instances \ --image-id
ami-0abcdef1234567890
\ --instance-typec3.large
\ ... --metadata-options "InstanceMetadataTags=enabled"
AWS CLI を使用して実行中または停止中のインスタンス上のインスタンスメタデータ内のタグへのアクセスを許可するには
modify-instance-metadata-options コマンドを使用して、--instance-metadata-tags
を enabled
に設定します。
aws ec2 modify-instance-metadata-options \ --instance-id
i-123456789example
\ --instance-metadata-tags enabled
インスタンスメタデータからタグを取得する
インスタンスメタデータでインスタンスタグへのアクセスを許可すると、インスタンスのメタデータから tags/instance
カテゴリにアクセスできます。詳細については、「インスタンスメタデータの取得」を参照してください。
インスタンスメタデータサービスバージョン 2
Amazon EC2 インスタンスで次の例を実行して、IMDSv2 のインスタンスメタデータを取得します。
インスタンスメタデータサービスバージョン 1
Amazon EC2 インスタンスで次の例を実行して、IMDSv1 のインスタンスメタデータを取得します。
インスタンスメタデータのタグへのアクセスを無効にする
インスタンスメタデータ内のインスタンスタグへのアクセスを無効にするには、次のいずれかの方法を使用します。インスタンスメタデータのインスタンスタグへのアクセスは、デフォルトでオフになっているため、起動時にインスタンスタグへのアクセスをオフにする必要はありません。
コンソールを使用してインスタンスメタデータのタグへのアクセスを無効にするには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[インスタンス] を選択します。
-
インスタンスを選択し、[Actions] (アクション)、[Instance settings] (インスタンス設定)、[Allow tags in instance metadata] (インスタンスメタデータ内のタグを許可する) の順に選択します。
-
インスタンスメタデータ内のタグへのアクセスを無効にするには、[Allow] (許可) チェックボックスをオフにします。
-
[Save] を選択します。
AWS CLI を使用してインスタンスメタデータのタグへのアクセスを無効にするには
modify-instance-metadata-options コマンドを使用して、--instance-metadata-tags
を disabled
に設定します。
aws ec2 modify-instance-metadata-options \ --instance-id
i-123456789example
\ --instance-metadata-tags disabled
AWS CLI を使用してインスタンスメタデータのタグへのアクセスが許可されているかどうかを確認するには
describe-instances コマンドを使用して、インスタンス ID を指定します。--query
パラメータを使用して、インスタンスメタデータオプションのみを結果に表示します。
aws ec2 describe-instances \ --instance-ids
i-1234567890abcdef0
\ --query "Reservations[*].Instances[*].MetadataOptions"
以下は出力例です。InstanceMetadataTags
の値は、インスタンスメタデータのタグへのアクセスが許可されているかどうかを示します。値が enabled
の場合、許可されています。値が disabled
の場合、許可されていません。
[
[
{
"State": "applied",
"HttpTokens": "required",
"HttpPutResponseHopLimit": 2,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "enabled"
}
]
]