Amazon web services 如何获取访问AWS ECR的临时会话令牌?

Amazon web services 如何获取访问AWS ECR的临时会话令牌?,amazon-web-services,amazon-ecr,Amazon Web Services,Amazon Ecr,我已将图像放入AWS ECR中。我想从边缘设备中提取图像。如果我在边缘设备中使用Access/Secret key,我可以登录到存储库并访问我的图像,如下所示 步骤1:添加环境变量 export AWS_ACCESS_KEY_ID=access-key export AWS_SECRET_ACCESS_KEY=secret-key export AWS_DEFAULT_REGION=ap-southeast-1 步骤2:使用以下命令登录到弹性容器注册表 aws ecr get-login-pa

我已将图像放入AWS ECR中。我想从边缘设备中提取图像。如果我在边缘设备中使用Access/Secret key,我可以登录到存储库并访问我的图像,如下所示

步骤1:添加环境变量

export AWS_ACCESS_KEY_ID=access-key
export AWS_SECRET_ACCESS_KEY=secret-key
export AWS_DEFAULT_REGION=ap-southeast-1
步骤2:使用以下命令登录到弹性容器注册表

aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin repo-id.dkr.ecr.ap-southeast-1.amazonaws.com
步骤3:拉取图像

 docker pull repo-id.dkr.ecr.ap-southeast-1.amazonaws.com/image_name
这些步骤确保我从ECR中提取图像

现在,我不想在边缘设备上存储访问密钥/机密。我正在寻找一些会话密钥/临时密钥来访问ECR图像,而无需在边缘设备上设置访问/保密。在此流程中,我可以消除将高度机密数据存储到边缘设备的情况

任何帮助都是值得的

编辑-1:

一种可能的方法是编写Lambda函数为ECR生成密码,并在API网关中使用API密钥保护Lambda。从边缘设备,我将调用lambda函数,并获得密码拉图像


它能工作吗?

不幸的是,由于您的设备不在AWS中,它将无法获得直接连接到它的好处(这解决了非硬编码权限的问题)

但是,您可以在AWS中创建IAM角色,然后使用从另一个具有访问权限的IAM用户/角色承担该角色。当您担任该角色时,您将获得访问AWS服务的临时凭据(您可以决定临时凭据的使用期限)


如果您能找到将这些凭据复制到本地设备的方法,则可以在其生命周期内使用它们。

感谢您的回复。请看一看您的解决方案是否有效,但您希望将其真正锁定。:)