美文网首页
AWS云计算助手级架构师认证之IAM策略&IAM角色

AWS云计算助手级架构师认证之IAM策略&IAM角色

作者: 云追古月 | 来源:发表于2017-12-24 11:51 被阅读0次

        IAM策略是一个可以声明一个或多个权限的文档。AWS提供很多自带的IAM策略,允许用户快速应用。客户自己也可以按照自己的需求生成新的IAM策略,IAM策略生成后,用户可以将它们应用到IAM用户,IAM用户组或者是IAM角色中,可以向同一个IAM用户应用多个IAM策略,在生成IAM策略时,应注意的是特别的拒绝会覆盖特别声明的允许。

        IAM策略写法:

{

"Version": "2012-10-17",

"Statement": [

    {

        "Effect": "Allow",

        "Action": "s3:ListAllMyBuckets",

        "Resource": "arn:aws:s3:::*"

    },

    {

        "Effect": "Allow",

        "Action":[ "s3:ListBucket", "s3:GetBucketLocation" ],

        "Resource":"arn:aws:s3:::EXAMPLE-BUCKET-NAME”

        }

    ]

}

        首先有版本,版本号就是年月日,然后声明中包括三个部分,效果,动作和资源。效果有两种,Allow或是Deny,即允许或拒绝,动作就是针对哪些资源可以进行的某种操作,资源就是操作的对象。上面的IAM策略例文中有一个版本号,两个声明。第一个声明中,规定了针对所有的S3存储桶(arn:aws:s3:::*中最后的*代表所有的存储桶,也可以指明某个存储桶),允许用户对桶列出所有我的存储桶。第二个声明中,规定了针对S3中的某个(EXAMPLE-BUCKET-NAME)存储桶,允许用户对该桶列出桶内的数据对象,以及存储桶的所在位置。

        从上面的例子中可以看到,一个IAM策略中可以有多个声明,而每个声明可以针对不同的AWS服务,比如一个是S3,另一个可以是EC2。而在IAM用户应用的IAM策略中,如果有两个策略,或者是一个策略中的两个声明,针对同一个资源执行了两个相反的动作,即一个声明允许针对某资源执行某操作,而另一个声明拒绝针对某资源执行某种操作,这时候拒绝的声明会覆盖掉允许的声明。

        IAM角色和IAM用户很相似,都可以决定哪些人可以在AWS中进行哪些操作,在生成IAM角色的时候和IAM用户也很相似,将某些IAM策略赋予给IAM角色即可。当启动一个EC2实例,然后通过EC2实例来访问S3存储桶的时候,有两种方法:第一,可以在EC2实例上进行IAM用户认证,假定有一个IAM用户拥有对S3存储桶的访问权限,在EC2上输入IAM用户的密钥之后,AWS系统会认为现在这个EC2是以IAM用户的身份来访问S3存储桶的。但是AWS非常不推荐这种做法,因为将IAM用户的密钥信息输入到EC2实例上是非常不安全的做法,其次IAM用户的私有密钥需要周期性的更新,而更新方法只能是手动。第二,可以为这个EC2实例绑定一个IAM角色,假定这个IAM角色拥有对S3存储桶的访问权限,在启动EC2实例的时候,或者是启动EC2实例之后,都可以对其绑定角色。IAM角色生成之后,用户是看不见密钥的相关信息的,但是在AWS系统中它是拥有相关信息的,并且当利用IAM角色的时候,AWS系统默认是会自动更新IAM角色的密钥来保证系统的安全性。

        实例配置文件。实例配置文件是IAM角色的容器,当通过AWS的管理控制台生成IAM角色的时候,AWS系统会自动为这个角色生成一个同样名称的实例配置文件,当为EC2实例绑定IAM角色的时候,其实显示的IAM角色列表是IAM角色的实例配置文件的列表。而当利用CLI等AWS开发包生成IAM角色的时候,必须另外生成该IAM角色的实例配置文件。

相关文章

网友评论

      本文标题:AWS云计算助手级架构师认证之IAM策略&IAM角色

      本文链接:https://www.haomeiwen.com/subject/pcgcgxtx.html