Instance Metadata Service Version 2 (IMDSv2) を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからインスタンスメタデータにアクセスしようと考えています。Amazon EC2 インスタンスに IMDSv2 を強制するにはどうすればよいですか?
簡単な説明
デフォルトでは、次の方法のいずれかまたは両方を使用して、実行中の Amazon EC2 インスタンスからインスタンスメタデータを取得できます。
- Instance Metadata Service Version 1 (IMDSv1) – リクエスト/レスポンスメソッド
- Instance Metadata Service Version 2 (IMDSv2) – セッション指向のメソッド
インスタンスで IMDSv2 の使用を要求するには、AWS Systems Manager AWSSupport-ConfigureEC2Metadata オートメーションドキュメントを実行できます。
重要: IMDSv2 を強制すると、IMDSv1 は動作しなくなり、IMDSv1 を使用するアプリケーションが正しく機能しない可能性があります。IMDSv2 を強制する前に、Amazon EC2 メタデータを使用するアプリケーションが IMDSv2 をサポートするバージョンにアップグレードされていることを確認します。インスタンスメタデータの詳細については、「インスタンスメタデータサービスの設定」を参照してください。
解決方法
前提条件
オートメーションを実行して出力を読み取るには、ssm:StartAutomationExecution および ssm:GetAutomationExecution アクセス許可が必要です。
AWSSupport-ConfigureEC2Metadata のオートメーションドキュメントを実行する
- Systems Manager コンソールを開き、ナビゲーションペインから [オートメーション] を選択します。
- [オートメーションの実行] を選択します。
- [Amazon 所有] タブの [オートメーションドキュメント] に「AWSSupport-ConfigureEC2Metadata」と入力し、Enter キーを押します。
- AWSSupport-ConfigureEC2Metadata ドキュメントのラジオボタンを選択し、[次へ] を選択します。
- [自動化ドキュメントの実行]で [シンプルな実行] を選択します。
注: 複数のターゲットでオートメーションを実行する必要がある場合は、[レート制御] を選択します。
- [入力パラメータ] セクションで、以下のパラメータを指定します。
InstanceId: メタデータ設定を構成する Amazon EC2 インスタンスの ID を入力します。
HttpPutResponseHopLimit: 0 のままにして現在の値を保持するか、希望する値 (1~64) を入力します。
EnforceIMDSv2: [必須] を選択します。
MetadataAccess [有効] を選択します。
- (オプション)AutomationAssumeRole で、ロールを選択します。ロールが指定されていない場合、Systems Manager Automation はドキュメントを実行するユーザーのアクセス許可を使用します。
注: ターゲットの Amazon EC2 インスタンスを変更するには、AutomationAssumeRole またはユーザーロールに ec2:ModifyInstanceMetadataOptions および ec2:DescribeInstances アクセス許可が必要です。Systems Manager Automation の引き受けロールの作成の詳細については、「Automation のサービスロールを作成する」を参照してください。
- [実行] を選択します。
AWSSupport-ConfigureEC2Metadata ドキュメントを使用して、他の Amazon EC2 インスタンスメタデータを変更することもできます。例えば、メタデータをオフにしたり、HttpPutResponseHopLimit 属性の値を変更したりすることができます。詳細については、「AWSSupport-ConfigureEC2Metadata」を参照してください。
関連情報
インスタンスメタデータの取得