【问题标题】:Passing IAM role to a Docker on EC2将 IAM 角色传递给 EC2 上的 Docker
【发布时间】:2019-10-20 07:41:31
【问题描述】:

将 IAM 角色传递给 EC2 上的 Docker 容器的建议方法是什么?

我有一个在 EC2 上的 docker 环境中运行的 mlflow 项目。 python代码需要从S3读写。 以下是错误(有时其他类型的错误也表明没有从容器访问 s3,例如 s3 resource not found 错误)

botocore.exceptions.ProfileNotFound: The config profile (xxx) could not be found

为了解决 s3 访问问题,我已经创建了一个允许访问存储桶的 IAM 角色。

将这个角色赋予 Docker 容器的最佳方法是什么? 是否可以在Dockerfile中定义角色名称?

谢谢

【问题讨论】:

  • 您的 EC2 可以在没有 docker 的情况下连接到存储桶吗?您是否编辑了您的 EC2 实例(实例设置 -> 附加/替换 IAM 角色)?

标签: amazon-web-services docker amazon-s3 amazon-ec2 amazon-iam


【解决方案1】:

如果您使用 ECS 在您的 EC2 实例上运行容器,您可以在任务定义中设置 taskRoleArn。如果您在没有 ECS 的情况下在 EC2 上运行 docker,您可以为实例指定角色并使用 --net host,并且容器应该使用 ec2 实例的角色。

【讨论】:

  • 你能告诉我该怎么做吗?请问有什么例子吗?
【解决方案2】:

我在 EC2 上使用 docker,我刚刚创建了一个实例配置文件。

如果你使用控制台:

Instances -> CHOOSE YOUR INSTANCE -> Actions -> Instance Settings -> Attach/Replace IAM Role

如果您使用 CloudFormation:

EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      IamInstanceProfile: !Ref EC2InstanceIAMInstanceProfile
      ...

【讨论】:

    猜你喜欢
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2018-11-10
    • 2014-11-12
    • 2018-01-07
    • 2014-03-18
    • 2016-11-01
    相关资源
    最近更新 更多