AWS IAM介绍
前言
AWS是世界上最大的云服务提供商,它提供了很多组件供消费者使用,其中进行访问控制的组件叫做IAM(Identity and Access Management), 用来进行身份验证和对AWS资源的访问控制。
功能
IAM的功能总结来看,主要分两种:
验证身份(Authentication)
授权访问(Authorization)
验证身份
验证身份的主要目的就是验证你的身份。
主要的身份实体有3种:
用户(user),实体创建的用户,与用户组的关系为多对多
用户组(group),根据一定规则分类的抽象集合,与用户的关系为多对多
角色(role),其余AWS资源,例如EC2实例、Lambda函数等
对于用户来说,我们在控制台看到的是一个用户名,实际上在后台,它是一串资源字符串:
arn:aws:iam::account-ID-without-hyphens:user/User-name
确认方式有以下几种:
AWS管理控制台,使用username/password方式进行认证
AWS命令行工具,使用Access Key/Secret Key进行认证
AWS产品开发包(SDK),使用Access Key/Secret Key进行认证
Restful API,使用Access Key/Secret Key进行认证
设定权限
对于AWS来说,这部分是通过Policy来实现的。
Policy规定了被认证的实体可以访问什么权限,怎样访问权限的问题,主要由Statement来完成。而Statement是使用json格式来填写的。
针对不同的层级,我们将Policy分为两种:
针对已认证用户的层级,我们称为“Identified-Based Policy”
针对资源层级,我们称为“Resource-Based Policy”
Statement的写法如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::productionapp"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::productionapp/*"
}
]
}
Identified-Based Policy
这里的Policy是针对被验证过用户的层级(此处的用户包含我上面讲的User、Group、Role)。
Policy和Statement是一对多的关系,也就是说,一个Policy可以包含多个Statement。
而Statement又包含以下内容:
Effect,决定你能不能访问(Allow/Deny)
Action,允许你对服务做什么动作
Resource,指明这次的Statement是对哪个资源做动作
Resource-Based Policy
这里的Policy是针对资源本身的层级。
Policy和Statement是一对多的关系,也就是说,一个Policy可以包含多个Statement。
而Statement又包含以下内容:
Effect,决定你能不能访问(Allow/Deny)
Action,允许你对服务做什么动作
Resource,指明这次的Statement是对哪个资源做动作,由于是针对自己的,所以要加上self
Principle,将自己的资源套用给谁
Identified-Based Policy和Resource-Based Policy的区别
Identified-Based Policy是Policy层级的,而Resource-Based Policy是Statement层级的,Identified-Based Policy比Resource-Based Policy高了一级
Identified-Based Policy是从用户角度来看待权限管理的,而Resource-Based Policy是从资源角度来看待权限管理的。
小结
IAM是用来做什么的
用户、用户组、角色的介绍
Policy的介绍,Identified-Based Policy和Resource-Based Policy的介绍和对比
参考与鸣谢
圖解AWS教學 - IAM - 整體架構 入門介紹 - YouTube
AWS IAM介绍的更多相关文章
- AWS IAM (Identity and Access Management) 使用笔记
为 AWS 管理控制台登录页面 URL 创建别名 $ aws iam create-account-alias --account-alias <value> 创建用户 $ aws iam ...
- AWS Switching to an IAM role (AWS CLI)
一,引言 今天额外分享一篇 AWS 的技术内容,需要在 EC2 切换到跨账号 IAM 角色(AWS CLI).假设我们使用两个 AWS 账户,A账号,B账号.我们希望允许 A 账号用于 "i ...
- AWS EKS 添加IAM用户角色
作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211203931498/ 相关话题:https://ww ...
- 基于AWS的云服务架构最佳实践
ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...
- 云K8S - AWS容器库ECR(ERS)编排ECS-EKS以及阿里云编排ACS-ACK
云K8S相关 AWS 部分-ECR(ERS) ECS EKS 20180824 Chenxin AWS的容器编排目前分为 ECS 和 EKS 两种. AWS价格说明 Fargate模式的ECS,换算成 ...
- 国外物联网平台(1):亚马逊AWS IoT
国外物联网平台(1)——亚马逊AWS IoT 马智 平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互. AWS IoT可支持数十亿台设备和数万亿条消息,并 ...
- How do I use EC2 Systems Manager to join an instance to my AWS Directory Service domain?
1. Create new role "EC2RoleforSSM" in AWS IAM AWS->IAM->Roles->Create role->Se ...
- 国外物联网平台初探(一) ——亚马逊AWS IoT
平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互. AWS IoT可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AW ...
- Qwiklab'实验-Hadoop, IoT, IAM, Key Management'
title: AWS之Qwiklab subtitle: 1. Qwiklab'实验-Hadoop, IoT, IAM, Key Management Service' date: 2018-09-1 ...
- AWS物联网解决方案之:如何将设备安全地接入AWS IoT
1 简介 AWS IoT解决方案是一个全托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互.AWS IoT可以支持数十亿太设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路 ...
随机推荐
- ESXI不重启增加硬盘空间更新
ESXI虚拟机Linux添加新磁盘后,可以通过重新扫描SCSI总线,在不重启虚拟机的情况下添加SCSI设备在线扩容磁盘(不停机)后,添加磁盘无法识别的问题,尝试了多种办法,最终通过重新扫描SCSI设备 ...
- python 时间戳转日期 不自动补零 without zero-padding
1. 时间戳转日期 代码 import time timestamp = 1568171336 time_format = "%Y-%m-%d %H:%M:%S" time_loc ...
- PLC入门笔记5
定时器指令及其应用 定时器指令介绍 设备启动预热时间.化学反应时间.电机星三角转换时间? 我们需要定时器.PLC计时器指令由时间续电器演变而来. 定时器本质是一个输出指令. 主要功能是,当输入端有能流 ...
- C#实现统一登录(SSO)
SSO的基本概念 SSO英文全称Single Sign On(单点登录).SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同 ...
- spring boot 中 CommandLineRunner接口使用
接口定义:接口,用于指示bean包含在SpringApplication中时应运行.可以在同一应用程序上下文中定义多个CommandLineRunner bean,并可以使用ordered接口或@Or ...
- 消息队列 RocketMQ4.x介绍和新概念讲解
消息队列 RocketMQ4.x介绍和新概念讲解 Apache RocketMQ作为阿里开源的一款高性能.高吞吐量的分布式消息中间件 RocketMQ4.x特点 支持Broker和Consumer端消 ...
- Python笔记(5)——if 语句一:条件测试(Python编程:从入门到实践)
每条if语句的核心都是一个值为True或False的表达式.Python根据条件测试的值为True还是False来决定是否执行if语句中的代码.如果条件测试的值为True,Python就执行紧跟在if ...
- 让 rtb 不显示 横纵 滚动条的方法
让 rtb 不显示 横纵 滚动条的方法: a.设置属性: tb.ScrollBars=None; b.设置属性:rtb.WordWarp=False; c. 添加事件代码: rtb.ContentsR ...
- day48-Mysql安装文件结构及SQL常用语句
1.安装文件结构 bin--mysql.exe 客户端运行程序: mysqld.exe 服务端运行程序: data--数据库.数据表等文件 注:修改配置文件后需要重启服务端 2.常用SQL语句 1) ...
- Apache + PHP + Mysql Windows下配置
1.安装Apache 下载网址 http://httpd.apache.org/download.cgi#apache24 二.下载php 下载地址:https://www.php.net/downl ...