提示某些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