从 http://169.254.170.2/$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 得到 404

Got 404 from http://169.254.170.2/$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

在 AWS ECS 或 AWS CodeBuild 等上,当尝试使用以下方式检索凭证时: http://169.254.170.2/$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

自 2019 年 2 月 7 日起突然出现 - 我找不到 404!

curl -qL -o aws_credentials.json http://169.254.170.2/$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

预期结果应该是有效的 json AWS 凭证会话

经过简短调查:

我发现 $AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 已经以斜线开头 '/'

[e.g AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=/v2/credentials/xxxx-xxxx-xxxx-xxxx-xxxxx]

解决方法:去掉IP后面的斜杠即可*

e.g http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

TL;DR;

我 运行 curl-v 在 AWS CodeBuild 上:

> GET //v2/credentials/xxxx-xxxx-xxxx-xxxx-xxxxx HTTP/1.1
> Host: 169.254.170.2
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 404 Not Found

结论:自2019 年 2 月 6 日或 7 日,AWS 添加严格检查并破坏 带有 404 的请求 双斜杠 //