IMDSv2 サポート

これは知っておくべき素晴らしい情報です!

そして、これが他の人にも当てはまることを願っています。

しかし、なぜこれが私たちにとっては問題にならないのか疑問に思います。私たちはこれを1に設定していますが、それでも動作しますか?

discourse(prod)> ENV['AWS_EC2_METADATA_V1_DISABLED'] = 'true'
=> "true"
discourse(prod)> c = Aws::S3::Client.new(region: ENV['DISCOURSE_S3_REGION'])
=> #<Aws::S3::Client: ...>
discourse(prod)> c.config.credentials.disable_imds_v1
=> true
discourse(prod)> c.list_objects_v2(bucket: ENV['DISCOURSE_S3_BUCKET']).contents.count
=> 1000

そして、そのインスタンスは同じクエリコマンドによると、このメタデータを持っています。

{
    "State": "applied",
    "HttpTokens": "optional",
    "HttpPutResponseHopLimit": 1,
    "HttpEndpoint": "enabled",
    "HttpProtocolIpv6": "disabled",
    "InstanceMetadataTags": "disabled"
}

私たちは他の人たちと同じように、EC2上のDockerコンテナでDiscourseを実行していますが…何が違うのでしょうか?