如何给AWS CLI启用MFA

因为AWS CLI不存在控制台直接打开MFA功能,然后生活中遇见了,那么就记录一下吧

给IAM用户开启MFA

首先需要在IAM用户-安全证书,点击开启MFA
在这里插入图片描述

这里选择虚拟MFA应用程序,需要在手机上安装相应的软件。这里我选择了Authenticator,其他的可以去AWS文档查看。
打开软件,选择添加账户,选择其他账号,扫描二维码,然后就可以将虚拟MFA应用程序和该用户绑定了。然后输入软件中两个连续的认证代码即可激活该MFA功能。
在这里插入图片描述

这时候打开一个无痕浏览器验证一下,进入登陆页面
在这里插入图片描述

可以发现出现了MFA代码输入框,只有输入提交MFA代码,才能够正常登录。
在这里插入图片描述

做到这里,已经成功实现了MFA控制aws控制台登录的功能。

AWS CLI开启MFA

回到IAM的用户界面,选择权限,点击添加权限。
在这里插入图片描述

选择直接附加现有策略下的创建策略
在这里插入图片描述

将相关的策略填入json下即可
在这里插入图片描述

其中arn:aws:iam::需要替换成符合中国区规范的arn地址 arn:aws-cn:iam::

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": "iam:ListVirtualMFADevices",
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice",
                "iam:DeleteVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
            }
        }
    ]
}

或者也可以通过可视化编辑器编辑策略。然后将创建好的策略附加给用户即可。
在这里插入图片描述

这时候登录到安装了AWS CLI以及配置好AWS configure的服务器上,这时候使用aws s3 ls命令会发现是没有权限来列出S3中的内容的。
在这里插入图片描述

运行下方命令来获取临时凭证,然后export导入即可

aws sts get-session-token --serial-number 用户ARN --token-code MFA码

export AWS_ACCESS_KEY_ID=333
export AWS_SECRET_ACCESS_KEY=222
export AWS_SESSION_TOKEN=111

在这里插入图片描述

这时候再aws s3 ls即可获取到相应的桶列表了
在这里插入图片描述

如果想取消凭证可以unset配置,想要重新配置凭证,也需要unset配置

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN

在这里插入图片描述

GitHub @ndmiao  · 
BiliBili @南岛鹋  · 
知乎 @南岛鹋  · 
CSDN @南岛鹋  · 
博客园 @南岛鹋  · 
个人站点 @南岛鹋

打赏

支付宝微信
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NDMIAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值