本文共 1602 字,大约阅读时间需要 5 分钟。
这一节继续学习如何使用PowerShell来管理IAM的基本功能,主要包括user,group,role和policy的创建和配置。
创建组
1 | New-IAMGroup -GroupName "powerUsers" |
创建新用户
1 | New-IAMUser -UserName "myNewUser" |
把用户加入组中
1 | Add-IAMUserToGroup -UserName myNewUser -GroupName powerUsers |
确认一下成功
接下来是重头戏,给用户或者组分配权限。权限的分配是通过policy来实现的,AWS里面定义policy都是根据Json格式来实现的,具体的语法结构参考
1 | #Policy element |
举个例子,允许该用户访问除IAM之外的所有服务,可以这么定义
1 2 3 4 5 6 7 8 9 10 11 12 13 | $policyDoc = @" { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "NotAction": "iam:*", "Resource": "*" } ] } "@ Write-IAMUserPolicy -UserName myNewUser -PolicyName "PowerUserAccess-myNewUser-201211201605" -PolicyDocument $policyDoc |
查看一下
1 | get-iamuserpolicy -UserName mynewuser -PolicyName "PowerUserAccess-myNewUser-201211201605" |
成功配置policy
别忘了给用户设置密码和安全码
1 | New-IAMLoginProfile -UserName myNewUser -Password "&!123!&" |
1 | New-IAMAccessKey -UserName myNewUser |
最后,我们来看看如何配置IAMRole。
比如说,我打算配置一个IAMRole,允许EC2的实例能够有权限访问S3存储的资料。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #IAM Role $policy = @" { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } "@ new-iamrole -RoleName "newec2-s31" -AssumeRolePolicyDocument $policy |
执行之后,可以看见trust relationship已经配置了
下一步需要指定EC2可以访问的资源,这里指定所有的S3资源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $policy2 = @" { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "NotAction": "s3:*", "Resource": "*" } ] } "@ Write-IAMRolePolicy -PolicyDocument $policy2 -RoleName "newec2-s31" -PolicyName "allows3" |
执行之后可以看见已经配置好了