【问题标题】:Switch aws cli to cross account with mfa enabled将 aws cli 切换到启用 mfa 的跨帐户
【发布时间】:2020-05-20 14:39:17
【问题描述】:

有没有办法从启用了 mfa 的 aws 凭证访问跨账户?

我可以从 aws 管理控制台切换帐户,我想从 cli 做同样的事情。

尝试按照以下链接更新 .aws/config 文件。

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-cli.html

出现错误:找不到配置文件 (CrossAccountSignin)。请指教。

【问题讨论】:

    标签: amazon-web-services aws-cli


    【解决方案1】:

    这有两个部分 - ~/.aws/credentials 文件和 ~/.aws/config 文件。

    假设您在账户 987654321098 中有一个 IAM 用户 my-user-id,并希望在账户 0123456789012 中担任一个名为 my-assumed-role 的角色

    ~/.aws/credentials 文件包含一个配置文件,其中包含来自my-user-id 的 IAM 命令行用户凭证 - 访问密钥 ID 和秘密访问密钥。例如:

    [default]
    aws_access_key_id=AKIAABCDEFGHIJKLMNOPQR
    aws_secret_access_key=SeCrEtKeY
    region=ap-southeast-2
    output=json
    

    ~/.aws/config 文件包含一个配置文件,其中包含跨账户角色的 ARN 和 IAM 用户的 MFA 序列号,以及任何其他会话选项。例如:

    [profile cross-account-role]
    role_arn = arn:aws:iam::123456789012:role/my-assumed-role
    source_profile = default
    mfa_serial = arn:aws:iam::987654321098:mfa/my-user-id
    region=ap-southeast-2
    s3 = 
        signature_version = s3v4
    role_session_name = my-session
    

    为了使用 CLI 承担跨账户角色,我们从 ~/.aws/config 附加角色的配置文件,例如--profile cross-account-role 到命令。

    由于source_profile 是默认值,它将使用来自账户987654321098 的具有MFA 的IAM 用户my-user-id 的凭证来承担目标账户中的my-assumed-role 角色0123456789012

    例如

    myuser@myost:~$ aws sts get-caller-identity --profile cross-account-role
    Enter MFA code for arn:aws:iam::987654321098:mfa/my-user-id:
    {
        "UserId": "AROAABCDEFGHIJKLMNOPQR:my-user-id",
        "Account": "0123456789012",
        "Arn": "arn:aws:sts::0123456789012:assumed-role/my-assumed-role/my-session"
    }
    

    CLI 将提示您输入 MFA 代码,然后提供输出。默认情况下,会话将持续 60 分钟并被缓存。在此期间,任何进一步的 CLI 命令都不需要再次提示输入 MFA 代码。

    【讨论】:

      猜你喜欢
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      相关资源
      最近更新 更多