【魄爺】 发表于 2018-9-2 07:49:50

Powershell AWS 自动化管理 (6) - IAM

  这一节继续学习如何使用PowerShell来管理IAM的基本功能,主要包括user,group,role和policy的创建和配置。
  创建组
New-IAMGroup-GroupName "powerUsers"
  创建新用户
New-IAMUser -UserName "myNewUser"
  把用户加入组中
Add-IAMUserToGroup -UserName myNewUser -GroupName powerUsers  确认一下成功

  接下来是重头戏,给用户或者组分配权限。权限的分配是通过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"
  成功配置policy

  别忘了给用户设置密码和安全码
New-IAMLoginProfile -UserName myNewUser -Password "&!123!&"
New-IAMAccessKey -UserName myNewUser
  最后,我们来看看如何配置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


  执行之后,可以看见trust>
  下一步需要指定EC2可以访问的资源,这里指定所有的S3资源
$policy2 = @"  
{
  
"Version": "2012-10-17",
  
"Statement": [
  
    {
  
    "Effect": "Allow",
  
    "NotAction": "s3:*",
  
    "Resource": "*"
  
    }
  
]
  
}
  
"@
  

  
Write-IAMRolePolicy -PolicyDocument $policy2 -RoleName "newec2-s31" -PolicyName "allows3"
  执行之后可以看见已经配置好了

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


页: [1]
查看完整版本: Powershell AWS 自动化管理 (6) - IAM