使用 CloudFormation 创建 IAM 账户
Create IAM account with CloudFormation
我想创建一个具有 CloudFormation 各种权限的 AWS IAMS 帐户。
我了解有些政策可以让用户更改密码并让他的帐户使用 MFA here
当用户需要更改默认密码时,我如何强制用户在首次登录时使用 MFA?
这是我的:
目前我的流量是:
- 用户帐户已创建
- 当用户第一次尝试登录时,系统会要求更改默认密码。
- 用户已登录 AWS 控制台。
预期行为:
- 用户帐户已创建
- 当用户第一次尝试登录时,系统会要求更改默认密码并使用 Authenticator 应用程序设置 MFA。
- 用户已登录 AWS 控制台并具有权限。
显示潜在的流量here。还有别的办法吗?
更新:
这个blog解释流程
再次,有没有更好的方法?就像会立即强制用户使用的自动弹出窗口一样?
更新2:
我可能不够明确。
到目前为止,我们拥有的是良好的客户体验。
这种流动将是流动的
用户尝试登录
控制台要求更改密码
Colsole求扫码介绍
用户使用新密码和验证码登录
5.User 无法停用 MFA
如果您使用的是常规 IAM,则允许用户自行管理 MFA。可以试试AWS SSO,更容易管理,而且免费。
允许用户登录、更改密码、设置 MFA,如果未按照所列设置 MFA,则拒绝除这些以外的所有操作 here
我们可以创建一个具有内联策略的 IAM 组并将用户分配到该组。
这是文档中列出的策略的 CF。
Resources:
MyIamGroup:
Type: AWS::IAM::Group
Properties:
GroupName: My-Group
MyGroupPolicy:
Type: AWS::IAM::Policy
Properties:
PolicyDocument:
Statement:
- Action:
- iam:GetAccountPasswordPolicy
- iam:GetAccountSummary
- iam:ListVirtualMFADevices
- iam:ListUsers
Effect: Allow
Resource: "*"
- Action:
- iam:ChangePassword
- iam:GetUser
Effect: Allow
Resource:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::1234567891111:user/${aws:username}
- Action:
- iam:CreateVirtualMFADevice
- iam:DeleteVirtualMFADevice
Effect: Allow
Resource:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::1234567891111:mfa/${aws:username}
- Action:
- iam:DeactivateMFADevice
- iam:EnableMFADevice
- iam:ListMFADevices
- iam:ResyncMFADevice
Effect: Allow
Resource:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::1234567891111:user/${aws:username}
- NotAction:
- iam:CreateVirtualMFADevice
- iam:EnableMFADevice
- iam:GetUser
- iam:ListMFADevices
- iam:ListVirtualMFADevices
- iam:ListUsers
- iam:ResyncMFADevice
- sts:GetSessionToken
Condition:
BoolIfExists:
aws:MultiFactorAuthPresent: "false"
Effect: Deny
Resource: "*"
PolicyName: My-Group-Policy
Groups:
- Ref: MyIamGroup
我认为这是要走的路,可以提取在用户设置 MFA 后创建具有他想要的任何权限的用户的知识。
策略模板很有用。
我想创建一个具有 CloudFormation 各种权限的 AWS IAMS 帐户。
我了解有些政策可以让用户更改密码并让他的帐户使用 MFA here
当用户需要更改默认密码时,我如何强制用户在首次登录时使用 MFA?
这是我的:
目前我的流量是:
- 用户帐户已创建
- 当用户第一次尝试登录时,系统会要求更改默认密码。
- 用户已登录 AWS 控制台。
预期行为:
- 用户帐户已创建
- 当用户第一次尝试登录时,系统会要求更改默认密码并使用 Authenticator 应用程序设置 MFA。
- 用户已登录 AWS 控制台并具有权限。
显示潜在的流量here。还有别的办法吗?
更新:
这个blog解释流程 再次,有没有更好的方法?就像会立即强制用户使用的自动弹出窗口一样?
更新2:
我可能不够明确。 到目前为止,我们拥有的是良好的客户体验。 这种流动将是流动的
用户尝试登录
控制台要求更改密码
Colsole求扫码介绍
用户使用新密码和验证码登录 5.User 无法停用 MFA
如果您使用的是常规 IAM,则允许用户自行管理 MFA。可以试试AWS SSO,更容易管理,而且免费。
允许用户登录、更改密码、设置 MFA,如果未按照所列设置 MFA,则拒绝除这些以外的所有操作 here
我们可以创建一个具有内联策略的 IAM 组并将用户分配到该组。 这是文档中列出的策略的 CF。
Resources:
MyIamGroup:
Type: AWS::IAM::Group
Properties:
GroupName: My-Group
MyGroupPolicy:
Type: AWS::IAM::Policy
Properties:
PolicyDocument:
Statement:
- Action:
- iam:GetAccountPasswordPolicy
- iam:GetAccountSummary
- iam:ListVirtualMFADevices
- iam:ListUsers
Effect: Allow
Resource: "*"
- Action:
- iam:ChangePassword
- iam:GetUser
Effect: Allow
Resource:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::1234567891111:user/${aws:username}
- Action:
- iam:CreateVirtualMFADevice
- iam:DeleteVirtualMFADevice
Effect: Allow
Resource:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::1234567891111:mfa/${aws:username}
- Action:
- iam:DeactivateMFADevice
- iam:EnableMFADevice
- iam:ListMFADevices
- iam:ResyncMFADevice
Effect: Allow
Resource:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::1234567891111:user/${aws:username}
- NotAction:
- iam:CreateVirtualMFADevice
- iam:EnableMFADevice
- iam:GetUser
- iam:ListMFADevices
- iam:ListVirtualMFADevices
- iam:ListUsers
- iam:ResyncMFADevice
- sts:GetSessionToken
Condition:
BoolIfExists:
aws:MultiFactorAuthPresent: "false"
Effect: Deny
Resource: "*"
PolicyName: My-Group-Policy
Groups:
- Ref: MyIamGroup
我认为这是要走的路,可以提取在用户设置 MFA 后创建具有他想要的任何权限的用户的知识。
策略模板很有用。