【问题标题】:boto not picking up ~/.aws/config in ansible amazon.aws.ec2 moduleboto 没有在 ansible amazon.aws.ec2 模块中获取 ~/.aws/config
【发布时间】:2021-11-10 18:04:21
【问题描述】:

我需要承担来自 ec2(另一个角色)(第一个帐户)的角色,然后在所承担的角色帐户中启动实例。 (第二个帐户)

我的 ~/.aws/config 文件:

[default]
role_arn = arn:aws:iam::123:role/assume_role
credential_source = Ec2InstanceMetadata

我使用 amazon.aws.ec2 模块来启动实例。该模块使用较旧的 bo​​to 版本。

看起来 boto 没有获取 aws 配置文件并从 ec2 的角色帐户启动。

有解决此问题的想法或解决方法吗?

【问题讨论】:

    标签: ansible boto ansible-2.x


    【解决方案1】:

    这是你需要的:

    instance_profile_name:字符串

    instance_role: "{{ iam_role }}"
    

    要使用的 IAM 实例配置文件的名称(即 EC2 控制台所指的“IAM 角色”)。 Boto 库必须是 2.5.0+。

    https://docs.ansible.com/ansible/latest/collections/amazon/aws/ec2_module.html

    【讨论】:

    • 它也承担了另一个帐户的角色? (如果我显然有特权)。
    • 一个角色有一个 ARN 资源。只要设置了正确的权限,它在哪个帐户中都没有关系。 docs.aws.amazon.com/IAM/latest/UserGuide/…
    • 我将它指定为 instance_profile_name: arn:aws:iam::123:role/assume_role,但它似乎没有用。配置文件未找到它说。
    • 一个关键部分是“配置文件”直接传递给boto3库,如果你不使用“本地”,那么你需要确保配置文件在模块的任何地方都可用实际正在执行中
    • 是的!这里的问题是这个模块使用 boto,而不是 boto3。 ec2_group 或 ec2_key 等所有其他模块都使用 boto3。所以它默认选择配置文件。只有这个模块没有!
    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    相关资源
    最近更新 更多