这一节继续学习如何使用PowerShell来管理IAM的基本功能,主要包括user,group,role和policy的创建和配置。


创建组

New-IAMGroup  -GroupName "powerUsers"

Powershell AWS 自动化管理 (6) - IAM_第1张图片


创建新用户

New-IAMUser -UserName "myNewUser"

Powershell AWS 自动化管理 (6) - IAM_第2张图片


把用户加入组中

Add-IAMUserToGroup -UserName myNewUser -GroupName powerUsers


确认一下成功

Powershell AWS 自动化管理 (6) - IAM_第3张图片


接下来是重头戏,给用户或者组分配权限。权限的分配是通过policy来实现的,AWS里面定义policy都是根据Json格式来实现的,具体的语法结构参考

#Policy element

http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Version


举个例子,允许该用户访问除IAM之外的所有服务,可以这么定义

$policyDoc = @"
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
}
]
}
"@
Write-IAMUserPolicy -UserName myNewUser -PolicyName "PowerUserAccess-myNewUser-201211201605" -PolicyDocument $policyDoc


查看一下

get-iamuserpolicy -UserName mynewuser -PolicyName "PowerUserAccess-myNewUser-201211201605"

wKiom1d8mSLCUkizAAD0sp_4oPY445.png


成功配置policy

Powershell AWS 自动化管理 (6) - IAM_第4张图片


别忘了给用户设置密码和安全码

New-IAMLoginProfile -UserName myNewUser -Password "&!123!&"

Powershell AWS 自动化管理 (6) - IAM_第5张图片

New-IAMAccessKey -UserName myNewUser

 

Powershell AWS 自动化管理 (6) - IAM_第6张图片


最后,我们来看看如何配置IAMRole。


比如说,我打算配置一个IAMRole,允许EC2的实例能够有权限访问S3存储的资料。


#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

Powershell AWS 自动化管理 (6) - IAM_第7张图片

执行之后,可以看见trust relationship已经配置了


Powershell AWS 自动化管理 (6) - IAM_第8张图片

下一步需要指定EC2可以访问的资源,这里指定所有的S3资源


$policy2 = @"
{
"Version": "2012-10-17",
"Statement": [
    {
    "Effect": "Allow",
    "NotAction": "s3:*",
    "Resource": "*"
    }
]
}
"@
 
 Write-IAMRolePolicy -PolicyDocument $policy2 -RoleName "newec2-s31" -PolicyName "allows3"


执行之后可以看见已经配置好了

Powershell AWS 自动化管理 (6) - IAM_第9张图片


下一节来看看如何用PowerShell配置高可用的RDS数据库。