这一节继续学习如何使用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
|
http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Version
举个例子,允许该用户访问除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"
|
执行之后可以看见已经配置好了
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1804251,如需转载请自行联系原作者