提示某些AWS Cli操作上的MFA代码

我们强制MFA用于AWS Web控制台访问。但是我也想要一些aws动作来提示MFA代码。提示某些AWS Cli操作上的MFA代码

aws iam delete-users --user-name theusername 

Enter MFA: *********

这可能吗?

回答:

您应该可以在相关API操作中添加MFA条件。例如,以下是一个IAM策略,允许承载者自由调用EC2操作,但在调用StopInstances或TerminateInstances时需要MFA。

{ 

"Version": "2012-10-17",

"Statement": [{

"Effect": "Allow",

"Action": ["ec2:*"],

"Resource": ["*"]

},{

"Effect": "Deny",

"Action": ["ec2:StopInstances", "ec2:TerminateInstances"],

"Resource": ["*"],

"Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": false}}

}]

}

有关更详细的示例,请参见here。

回答:

确切的用例是不可能的。但是,您可以提供必要的权限,例如将StopInstances设置为IAM角色,并仅为IAM用户授予角色if and only if the user uses MFA的权限。角色的信任策略将是如下:

{ 

"Version": "2012-10-17",

"Statement": {

"Effect": "Allow",

"Principal": { "AWS": "arn:aws:iam::123456789012:root" },

"Action": "sts:AssumeRole",

"Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } }

}

}

所以在使用控制台,IAM用户将签署与证书和MFA令牌,将能够承担该角色来停止实例。

在使用CLI时,您可以使用named profiles with "mfa_serial"变量,并且当用户尝试使用指定的配置文件参数停止实例时,CLI会询问MFA代码(请注意返回的凭据将缓存在CLI中)。

或者,您可以使用由jarmod提供的建议,并使用自定义脚本,因为您需要调用GetSessionToken并传递MFA令牌。有一个示例Python和C#脚本here。

以上是 提示某些AWS Cli操作上的MFA代码 的全部内容, 来源链接: utcz.com/qa/264853.html

回到顶部