説明
IMDSv1を許可すると、一部のSSRF脆弱性を通じてインスタンスのメタデータや一時認証情報にアクセスされやすくなる場合があります。IMDSv2はセッショントークンを要求し、追加の保護を提供します。
想定される影響
アプリケーションの脆弱性と組み合わさると、メタデータやインスタンスロールの認証情報が漏えいするおそれがあります。
対処方法
メタデータサービスが必要なら、MetadataOptions.HttpTokensをrequiredに設定し、アプリケーションの互換性を確認してください。不要な場合は、エンドポイントを無効にできます。
例
明示的なオプションがない場合の動作は、AMIとアカウントのデフォルト設定によって変わります。例ではインスタンスと起動テンプレートにIMDSv2を明示しています。AmiIdとホップ制限は環境に合わせて指定してください。
変更前
yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: メタデータオプションの比較例
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: !Ref AmiId
InstanceType: t3.micro
MyLaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Properties:
LaunchTemplateName: MySecureLaunchTemplate
LaunchTemplateData:
ImageId: !Ref AmiId
InstanceType: t3.micro
変更後
yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: メタデータオプションの比較例
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: !Ref AmiId
InstanceType: t3.micro
MetadataOptions:
HttpEndpoint: enabled
HttpTokens: required
HttpPutResponseHopLimit: 2
HttpProtocolIpv6: disabled
MyLaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Properties:
LaunchTemplateName: MySecureLaunchTemplate
LaunchTemplateData:
ImageId: !Ref AmiId
InstanceType: t3.micro
MetadataOptions:
HttpEndpoint: enabled
HttpTokens: required
HttpPutResponseHopLimit: 2
HttpProtocolIpv6: disabled