IAM的策略。用户->服务器(仓库、业务体)

IAM:亚马逊访问权限控制(AWS Identity and Access Management )
IAM使您能够安全地控制用户对 AWS 服务和资源的访问。
您可以使用 IAM 来创建和管理 AWS 用户和群组,并使用各种权限来允许或拒绝他们使用 AWS 资源。

什么是 IAM?
AWS Identity and Access Management (IAM) 是一种 Web 服务,
可以帮助您安全地控制对 AWS 资源的访问。
您可以使用 IAM 控制对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源。

当您首次创建 AWS 账户时,最初使用的是一个对账户中所有 AWS 服务和资源有完全访问权限的单点登录身份。此身份称为 AWS 账户根用户,使用您创建账户时所用的电子邮件地址和密码登录,即可获得该身份。强烈建议您不使用 根用户 执行日常任务,即使是管理任务。请遵守使用 根用户 的最佳实践,仅将其用于创建您的首个 IAM 用户。然后请妥善保存 根用户 凭证,仅用它们执行少数账户和服务管理任务。

用户:Users。①仅限首次访问:您的根用户凭证。②IAM 用户。③联合现有用户。
AWS 账户根用户:首次创建 AWS 账户时的账户。对 AWS 账户中的所有资源进行完全、无限制的访问,包括访问您的账单信息,您还能更改自己的密码。不建议使用根用户凭证进行日常访问和账户共享。
IAM 用户:由根用户创建的账户。是与 AWS 互动的人员或服务。IAM 用户不是单独的账户;它们是您账户中的用户。每个用户都可以有自己的密码以用于访问 AWS 管理控制台。某些用户实际上是应用程序 (例如 DevApp1)。IAM 用户不必表示实际人员;您可以创建 IAM 用户以便为在公司网络中运行并需要 AWS 访问权限的应用程序生成访问密钥。
IAM组:是 IAM 用户的集合。组不是真正的身份。
IAM 角色:非常类似于用户,角色没有任何关联的凭证 (密码或访问密钥)。角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。
委托人:principal。委托人是可对 AWS 资源执行操作的实体。用户、角色、联合用户和应用程序都是 AWS 委托人。作为委托人,您必须进行身份验证 (登录到 AWS) 才能将请求发送到 AWS。委托人的类别就是身份。
身份:identity。(用户、组和角色)。身份代表用户,可对身份进行验证,然后向其授予在 AWS 中执行操作的权限。用户是身份,组不是真正的身份。

凭证: credentials。账户(或者用户名)和密码(或者访问秘钥)
根用户身份凭证:创建账户时提供的电子邮件地址(账户)和密码。
临时凭证:主要用于 IAM 角色,但也有其他用途。会在设定的时间段后自动过期。
长期凭证: 用户名和密码或访问密钥。

策略:Policies,作为 JSON 文档存储在 IAM 中。它们作为基于身份的策略 附加到委托人或作为基于资源的策略 附加到资源。
基于身份的策略:委托人允许或拒绝的权限。
基于资源的策略:资源允许或拒绝的权限。

基于身份策略:
默认情况下,IAM 用户无法访问您账户中的任何内容。您可以创建基于身份的策略以便为用户授予权限,这是一个附加到用户的策略。以下示例说明了一个策略,它授予权限以在 us-west-2 区域中使用 123456789012 账户对 Books 表执行所有 Amazon DynamoDB 操作 (dynamodb:*)。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "dynamodb:*",
"Resource": "arn:aws-cn:dynamodb:us-west-2:123456789012:table/Books"
}
}

基于资源策略:
例如,在 Amazon S3 中,您可以将基于资源的策略附加到存储桶。这称为存储桶策略。以下示例说明了一个 S3 存储桶策略,它允许 AWS 账户 777788889999 中名为 bob 的 IAM 用户将对象放入附加了该策略的存储桶中。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"AWS": "arn:aws-cn:iam::777788889999:user/bob"},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
]
}
}

授权:authorization。IAM 的访问管理部分帮助定义用户或其他实体可在账户内执行的操作。

名称术语:
身份认证:authorization。
命令行界面 :(CLI)
权限:Permissions。

IAM 用户: 是您在 AWS 中创建的实体。当您创建 IAM 用户时,通过使该用户成为附加了适当的权限策略的组的成员或者通过直接将策略附加到该用户,从而授予用户权限。您也可以克隆现有 IAM 用户的权限,这将使得新用户自动成为相同组的成员并挂载所有相同的策略。
IAM 组:是 IAM 用户的集合。您可以使用组为一组用户指定权限,以便更轻松地管理这些用户的权限。请注意,组并不是真正的身份,因为无法在基于资源的策略或信任策略中将其标识为 Principal(委托人)。它只是用于一次性将策略附加到多个用户的方法。
IAM 角色:非常类似于用户,因为它是一个实体,该实体具有确定其在 AWS 中可执行和不可执行的操作的权限策略。但是,角色没有任何关联的凭证 (密码或访问密钥)。IAM 用户可代入角色来暂时获得针对特定任务的不同权限。
临时凭证:主要用于 IAM 角色,但也有其他用途。您可以请求权限集比标准 IAM 用户限制更严格的临时凭证。这可以防止您意外执行限制更严格的凭证不允许执行的任务。临时凭证的一个好处是会在设定的时间段后自动过期。您可以控制这些凭证的有效期。

IAM的策略:

身份 (用户、组和角色)
本节介绍 IAM 身份,创建这些身份的目的是为了向您的 AWS 账户中的人员和过程提供身份验证。本节还介绍 IAM组,这是可以作为一个单位进行管理的 IAM 用户的集合。身份代表用户,可对身份进行验证,然后向其授予在 AWS 中执行操作的权限。每个部分均可与一个或多个策略相关联来决定用户、角色或组成员可在哪些条件下对哪些 AWS 资源执行哪些操作。

了解 IAM 的工作方式
在创建用户之前,您应该了解 IAM 的工作方式。IAM 提供了控制您的账户的身份验证和授权所需的基础设施。IAM 基础设施包含以下元素:
委托人
请求
身份验证
授权
操作
资源

委托人
委托人是可对 AWS 资源执行操作的实体。

请求
在委托人尝试使用 AWS 管理控制台、AWS API 或 AWS CLI 时,该委托人将向 AWS 发送请求。

身份验证
作为委托人,您必须进行身份验证 (登录到 AWS) 才能将请求发送到 AWS。此外,诸如 Amazon S3, 的一些服务允许来自匿名用户的请求。要从控制台中进行身份验证,您必须使用用户名和密码登录。要从 API 或 CLI 中进行身份验证,您必须提供访问密钥和私有密钥。您还可能需要提供额外的安全信息。AWS 建议您使用多重身份验证 (MFA) 以提高您的账户的安全性。

授权
在授权期间,IAM 使用请求上下文中的值检查匹配的策略并确定是允许还是拒绝请求。
策略作为 JSON 文档存储在 IAM 中,并指定为委托人允许或拒绝的权限 (基于身份的策略) 或为资源允许或拒绝的权限 (基于资源的策略)。
IAM 检查与请求上下文匹配的每个策略。如果一个策略包含拒绝的操作,IAM 将拒绝整个请求并停止评估。这称为显式拒绝。由于请求是默认拒绝的,因此,只有在匹配的策略允许请求的每个部分时,IAM 才会授权请求。评估逻辑遵循以下规则:
默认情况下,所有请求都将被拒绝。
显式允许将取代此默认设置。
显式拒绝将覆盖任何允许。
注意
默认情况下,仅 AWS 账户根用户有权访问该账户中的所有资源。因此,如果未以根用户身份登录,您必须具有策略授予的权限。

操作
在对您的请求进行身份验证和授权后,AWS 将批准请求中的操作。操作是由服务定义的,这是可以对资源执行的操作,例如,查看、创建、编辑和删除该资源。例如,IAM 为用户资源支持大约 40 个操作,包括以下操作:
CreateUser
DeleteUser
GetUser
UpdateUser
要允许委托人执行操作,您必须在应用于委托人或受影响的资源的策略中包含所需的操作。

资源
在 AWS 批准请求中的操作后,可以对您的账户中的相关资源执行这些操作。资源是位于服务中的一个实体。示例包括 Amazon EC2 实例、IAM 用户和 Amazon S3 存储桶。服务定义了一组可对每个资源执行的操作。如果创建一个请求以对资源执行不相关的操作,则会拒绝该请求。例如,如果您请求删除一个 IAM 角色,但提供一个 IAM 组资源,请求将失败。
如果在 IAM 中使用基于身份的策略提供权限,则仅提供访问同一账户中的资源的权限。如果您需要在另一个账户中发出请求,该账户中的资源必须具有附加的基于资源的策略以允许从您的账户中进行访问。否则,您必须在该账户中担任具有所需权限的角色。

IAM:亚马逊访问权限控制的更多相关文章

  1. 通过SecureCRT访问亚马逊Amazon EC2主机

    亚马逊推出了免费的云主机服务器 Amazon EC2,它是通过安全密钥来访问主机的. 问题是下载的密钥在SecureCRT 上无法直接使用,需要转换. 下面的方法可以在自己的linux主机上生成sec ...

  2. 解决亚马逊云服务器上安装nginx后无法访问的问题

    在亚马逊云服务器上装了Ubuntu系统,使用docker环境搭建nginx,启动nginx容器后,在浏览器输入地址后,显示连接超时. 在网上查了一下说有可能是服务器安全组的设置问题 然后在云服务器的安 ...

  3. 亚马逊EC2

    亚马逊EC2编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 亚马逊弹性计算云(EC2,Elastic Compute Cloud)是一个让使用者可以租用云端电脑运行所需 ...

  4. 亚马逊云架设WordPress博客

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 这篇文章介绍如何在亚马逊云架设WordPress博客.最强的云,加上最流行的建站工 ...

  5. 成都亚马逊AWSome Day回顾

    6月25日我和公司同仁一起参加了亚马逊在成都的第一场AWSome Day活动.整个活动时间异常紧促,短短一天包含了7堂session,讲师的狂轰乱炸使得我们同学们普遍觉得比上班累多了.好了,废话不多说 ...

  6. 国外物联网平台(1):亚马逊AWS IoT

    国外物联网平台(1)——亚马逊AWS IoT 马智 平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互. AWS IoT可支持数十亿台设备和数万亿条消息,并 ...

  7. 微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)

    开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜.2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户和超 30 万的 ...

  8. 国外物联网平台初探(一) ——亚马逊AWS IoT

    平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互. AWS IoT可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AW ...

  9. 让用户使用第三方账号(如亚马逊账号)接入AWS IoT系统

    我们想象这么一个IoT应用场景:厂商A使用AWS IoT来开发物联网解决方案,那么A把设备卖给用户的时候,需要使用户能够登入AWS IoT系统来控制其购买的A的设备,也就是说给用户分配适当的权限.下面 ...

随机推荐

  1. Hadoop、Spark 集群环境搭建

    1.基础环境搭建 1.1运行环境说明 1.1.1硬软件环境 主机操作系统:Windows 64位,四核8线程,主频3.2G,8G内存 虚拟软件:VMware Workstation Pro 虚拟机操作 ...

  2. IOC容器特性注入第五篇:查找(Attribute)特性注入

    前面几篇文章分别介绍:程序集反射查找,特性,容器,但它们之间贯穿起来,形成查找Attribute注入IOC容器,就得需要下面这个类帮忙: 1.DependencyAttributeRegistrato ...

  3. [GAN] How to use GAN - Meow Generator

    一篇介绍GAN应用的文章.今后GAN模型学习的主要内容. 中文链接:萌物生成器:如何使用四种GAN制造猫图 原文链接:https://ajolicoeur.wordpress.com/cats/ 项目 ...

  4. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V4 -- 远程方法调用 整合 Spring 自动注册

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V4——RPC -- 远程方法调用 + Spring 自动注册 服务提供商: 1. 配置 rpc04_server.xml 注入 服务提供商 rpc ...

  5. Unity UI相关总结

    UIGrid 加载面板时,如果面板中含有大容量的 UIGrid,可能会很卡.我们可以只加载 UIGrid 的前 n 个单元格对象,在显示面板之后,利用协程加载剩余的所有单元格,每帧加载 m 个. 同样 ...

  6. Window应急响应(二):蠕虫病毒

    0x00 前言 ​ 蠕虫病毒是一种十分古老的计算机病毒,它是一种自包含的程序(或是一套程序),通常通过网络途径传播,每入侵到一台新的计算机,它就在这台计算机上复制自己,并自动执行它自身的程序. 常见的 ...

  7. Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher

    异常信息如下: 错误: Unexpected exception parsing XML document from class path resource [spring/applicationCo ...

  8. Python实现C代码统计工具(三)

    目录 Python实现C代码统计工具(三) 声明 一. 性能分析 1.1 分析单条语句 1.2 分析代码片段 1.3 分析整个模块 二. 制作exe Python实现C代码统计工具(三) 标签: Py ...

  9. docker 搭建ntp服务器

    背景 在搭建etcd集群时,如果主机时间相差太多会出现同步错误,如果外部网络不可用时,需要使用内部的ntp服务器同步时间. 构建ntp镜像 创建Dockerfile # usage: # docker ...

  10. java中Date与DateFormat的格式输出

    一.DateFormat java.text.DateFormat 使用 getDateInstance 来获取该国家/地区的标准日期格式.另外还提供了一些其他静态工厂方法.使用 getTimeIns ...