跳转到主要内容

用于管理AWS CLI凭据的MFA(多因素认证)的命令行工具

项目描述

IAM MFA

此命令行工具可帮助您使用MFA(多因素认证)管理AWS CLI凭据。

此工具旨在与要求在所有位置使用MFA的IAM策略配合使用,包括API访问。本readme中包含这样一个策略。

该工具接受源IAM配置文件(应存储您的永久凭据)和MFA代码,并将API AWS凭据输出到目标IAM配置文件。输出凭据有效期为24小时,并带有MFA(因此可用于需要MFA的API)。

安装

这是一个pip库,通过pip install iam-mfa安装。

它需要AWS CLI:[https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)

使用方法

iam-mfa <source_profile> <dest_profile> <username>

参数

  • source_profile:用于调用sts get-session-token的配置文件;此配置文件应包含您的永久AWS API凭据
  • dest_profile:保存临时凭据的配置文件;请注意,此配置文件将被覆盖
  • username:拥有源_profile凭据的IAM用户名

MFA代码作为脚本的输入提供,以便不会存储在bash历史记录中。

AWS IAM策略

建议您在AWS账户上有一个IAM策略,强制所有访问使用多因素认证。

以下是一个执行以下操作的策略

  • 允许用户更改自己的密码
  • 允许用户查看和编辑自己的多因素认证设备(这是强制他们使用多因素认证的必要组件)
  • 如果用户未使用多因素认证登录到控制台,则防止用户进行大多数操作
  • 即使用户未使用多因素认证登录,也允许他们设置多因素认证
  • 强制执行控制台和API访问的这些规则

最好将其创建为IAM策略,然后将其附加到任何包含人类用户的用户组。您也可以直接将策略附加到用户,但这更难管理。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ResyncMFADevice",
                "iam:DeleteVirtualMFADevice",
                "iam:DeactivateMFADevice",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ListAccessKeys",
                "iam:GetAccessKeyLastUsed",
                "iam:GetUser"
            ],
            "Resource": [
                "arn:aws:iam::*:mfa/${aws:username}",
                "arn:aws:iam::*:user/${aws:username}"
            ]
        },
        {
            "Sid": "BlockMostAccessUnlessSignedInWithMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:ListVirtualMFADevices",
                "iam:EnableMFADevice",
                "iam:ResyncMFADevice",
                "iam:DeleteVirtualMFADevice",
                "iam:DeactivateMFADevice",
                "iam:ListAccountAliases",
                "iam:ListUsers",
                "iam:ListSSHPublicKeys",
                "iam:ListAccessKeys",
                "iam:GetAccessKeyLastUsed",
                "iam:ListServiceSpecificCredentials",
                "iam:ListMFADevices",
                "iam:GetAccountSummary",
                "iam:ChangePassword",
                "iam:GetUser",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

iam-mfa-0.0.1.tar.gz (3.9 kB 查看哈希)

上传时间

构建分布

iam_mfa-0.0.1-py3.8.egg (5.4 kB 查看哈希)

上传时间

支持者