docker 使用AWS ECR进行身份验证,无需aws cli

u1ehiz5o  于 2023-03-22  发布在  Docker
关注(0)|答案(1)|浏览(155)

我见过的使用ECR仓库(用于docker)进行身份验证的规范方法是使用aws ecr get-login-password命令https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html#registry-auth-token
我在一个无法安装aws cli命令的环境中。有人知道通过API(如HTTP或SDK)生成此密码的方法吗?我假设由于它是通过AWS CLI完成的,因此它背后有一个API。但是我似乎找不到任何指南或文档。

bkhjykvo

bkhjykvo1#

几乎每个Amazon文档都指向我们使用CLI或SDK,但也可以只使用API调用。
进行直接API调用有两个主要挑战:

  1. Signing AWS API requests
    curl 7.75.0中,我们使用--aws-sigv 4选项来很好地处理这个问题。
    它需要区域和服务代码,以及--user参数的值,其中区域和服务代码需要匹配API URL,而user的值取决于您的身份验证方法。
    示例:curl --url 'https://api.ecr.us-east-1.amazonaws.com' --aws-sigv4 "aws:amz:us-east-1:ecr" --user "<user>:<pass>"
    ECR publicprivate终点有详细记录。
  2. API文档缺少一些细节
  • 所有操作似乎都是POST
  • 所有请求至少需要一个空的JSON对象{}
  • Action在特殊头'x-amz-target: SpencerFrontendService.<Action>中传递
  • 使用Content-Type: application/x-amz-json-1.1

相关问题