在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
预期的结果应该是AWS证书会话的有效的JSON
经过简短的调查:
我发现,$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
与AWS CodeBuild -v
:
> 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
结论:因为2月6日或7 2019,AWS添加了严格的检查,并打破了404请求用于双斜杠//