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:0x00007f9c8a4f2b80>
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,所以……有什么区别?