Docker R 脚本的 AWS 密钥和秘密,使用部署在 ECR 中的羽毛

AWS key and secret for Docker R script using feather deployed in ECR

所以在我的本地机器上,像这样的东西工作正常:

library(arrow)
library(aws.s3)

Sys.setenv(
    "AWS_ACCESS_KEY_ID" = Sys.getenv("awsaccesskey"),
    "AWS_SECRET_ACCESS_KEY" = Sys.getenv("awssecret"),
    "AWS_DEFAULT_REGION" = "eu-west-2"
)

feather_data <- s3read_using(read_feather, bucket = "amazingbucket", object = "somefile.feather")

如果我将其包装到 docker 图像中,并且我想避免硬编码 AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY,它们来自 Windows 环境变量,如何ECR 获取此信息?

当你在 AWS 中 运行 this 时,有一个 IAM role 的概念,你可以附加到你的执行环境。如果您 运行 在 ECS 上安装您的容器,您将 attach to your task an IAM role. If you are running your container in EKS you will use this method.

长话短说,AWS 将动态注入这些值(并且它会轮换临时凭证)并且 AWS SDK 将能够自动获取该信息。