【问题标题】:How to get temporary session token for accessing AWS ECR?如何获取访问 AWS ECR 的临时会话令牌?
【发布时间】:2020-08-20 15:47:54
【问题描述】:

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

步骤一:添加环境变量

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

第三步:拉取图片

 docker pull repo-id.dkr.ecr.ap-southeast-1.amazonaws.com/image_name

这些步骤确保我从 ECR 中提取图像。

现在,我不想在边缘设备上存储访问密钥/秘密。我正在寻找一些会话密钥/临时密钥来访问 ECR 图像,而无需在边缘设备上搜索访问/秘密。在这个流程中,我可以避免将高度机密的数据存储到边缘设备。

任何帮助都将不胜感激。

编辑- 1:

一种可能的方法是编写一个 Lambda 函数来为 ECR 生成密码并使用 API Gateway 中的 API 密钥保护 lambda。从 Edge Device 我将调用 lambda 函数并获取密码以提取图像。

会有用吗?

【问题讨论】:

    标签: amazon-web-services amazon-ecr


    【解决方案1】:

    很遗憾,由于您的设备不在 AWS 中,因此无法获得直接附加 IAM role 的好处(这解决了非硬编码权限的问题)。

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

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

    【讨论】:

    • 感谢您的回复。请查看更新的问题
    • 您的解决方案会起作用,但您希望将其真正锁定。 :)
    猜你喜欢
    • 2016-11-29
    • 2021-02-16
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2012-02-15
    相关资源
    最近更新 更多