AWS实战 - IAM角色的简单使用

介绍

简单来讲,IAM角色是一组权限的集合,IAM用户或者AWS服务能够临时性代入这个角色,得到角色所拥有的权限;AWS官方定义以下:html

IAM角色相似于用户,由于它是一个 AWS实体,该实体具备肯定其在 AWS中可执行和不可执行的操做的权限策略。可是,角色旨在让须要它的任何人代入,而不是惟一地与某我的员关联。此外,角色没有关联的标准长期凭证(密码或访问密钥)。相反,若是用户担任某个角色,则会动态建立临时安全凭证并为用户提供该凭证。

实战

AWS实战 - 利用IAM对S3作访问控制中,咱们的实战案例里有一个存储桶derek-public2,除了Harp-Admin,其他IAM用户都只有只读权限,如今咱们来创建一个拥有写入该存储桶权限的角色,以便在某些特殊状况下,普通IAM用户能够临时代入这个角色来修改存储桶。json

  • 使用Harp-Admin登陆IAM控制台,点击角色,建立角色;
  • 在选择受信任实体的类型里,选择其余AWS帐户,在帐户ID中输入本AWS帐号的ID

clipboard.png

  • 须要外部ID通常在受权其余AWS帐户代入此角色的时候使用,须要MFA验证看状况选择;

clipboard.png

  • 点击下一步,到了权限策略页面,直接选择建立策略便可,权限策略以下,命名为edit_public2
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::derek-public2"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::derek-public2/*"
            ]
        }
    ]
}
  • 策略建立完成,回到建立角色页面,勾选edit_public2,须要注意的是,一个IAM用户切换角色后,它只会拥有角色赋予的权限,不会拥有IAM用户原先自带的权限,所以为了正常访问S3,咱们再勾选s3_common_policy
  • 下一步建立tag,再下一步,角色名称填写为Public2_Manager,点击建立,角色建立完成;
  • 为了让帐户下的普通IAM用户能够正常访问IAM控制面板,咱们直接给以前建立的s3_common_group组添加一条AWS托管策略IAMReadOnlyAccess
  • 为了给IAM用户赋予切换角色的权限,咱们须要再建立一条策略,附加给s3_common_group,策略json以下:
{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::712538533226:role/Public2_Manager"
    }
}
  • 使用user1登陆,进入S3,在derek-public2中建立文件夹,提示失败;
  • 点击右上角用户处,点击切换角色,跳转到切换角色页面,帐户文本框中输入帐户ID,角色输入Public2_Manager,而后点击切换角色;

clipboard.png

  • 此时在derek-public2存储桶下,已经能够正常创建文件夹了;

clipboard.png

  • 经过控制台的角色切换在一个小时后自动失效,须要从新切换,也能够手动退出角色;
  • 也可使用cli的方式切换角色,详见切换到IAM角色(AWS CLI)
相关文章
相关标签/搜索