- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 EC2 可以通过配置文件定期访问 S3:
aws s3 ls --profile myprofile s3://
~./aws/config
文件内容与主机 ec2 上的内容相同,但来自 docker 容器的此命令现在给出错误:
aws s3 ls --profile myprofile s3://
Error when retrieving credentials from Ec2InstanceMetadata: No credentials found in credential_source referenced in profile myprofile
最佳答案
有几个选项可以做到这一点,并且根据您对可能的安全风险的风险偏好将有助于确定要走的路。
您可以走创建 credentials
的路线使用静态凭据在外部归档并将其复制到 ~/.aws/
在构建期间。您甚至可以在文件中使用变量并通过 ENV
传递它们或 ARG
.
如果您使用 docker-compose
然后 .env
文件开始发挥作用,与上面的想法几乎相同。
您可以调用 EC2 的元数据服务来检索临时凭证,我没有太多 cURL 的经验,但这里有一些信息:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-retrieval
你也可以cat > ~/.aws
输出文件,虽然那会很痛苦,并在 CLI 级别或使用 .env、ENV 或 ARG 做一些 ENV 变量的变体
如果您使用 ECS 在 EC2 之上运行容器,那么您可以将变量作为 valueFrom
传递在任务定义/容器定义中从 Systems Manager Parameter Store(明文)中获取它们,或者您可以使用 KMS key 加密您的参数或使用 Secrets Manager 中的明文 secret 并将它们注入(inject)您的变量。
有了以上,你可以COPY
变量化 credentials
文件,并传递 ENV
变量为 $(keys)
在您的 Dockerfile 中,然后从 Secrets Manager 或 Parameter Store 中注入(inject)它们以提供一些额外的安全性。
关于amazon-web-services - 如何在 EC2 上的 docker 内使用 AWS 凭证运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56807513/
我是一名优秀的程序员,十分优秀!