aws api gateway 网关的身份和访问管理

AWS身份和访问管理(IAM)是一项AWS服务,帮助管理员安全地控制对AWS资源的访问。IAM管理员控制谁可以被认证(登录)和授权(拥有权限)使用API网关资源。IAM是一项AWS服务,你可以使用,无需额外收费。

Audience

你如何使用AWS身份和访问管理(IAM)是不同的,这取决于你在API Gateway所做的工作。
服务用户 - 如果你使用API Gateway服务来做你的工作,那么你的管理员就会为你提供你所需要的凭证和权限。当你使用更多的API Gateway功能来做你的工作时,你可能需要额外的权限。了解访问的管理方式可以帮助你向管理员申请正确的权限。如果你不能访问API Gateway中的某项功能,请参见《亚马逊API Gateway身份和访问的故障排除》。
服务管理员 - 如果你在你的公司负责API Gateway资源,你可能有对API Gateway的全部访问权。你的工作是决定你的员工应该访问哪些API Gateway功能和资源。然后,你必须向你的IAM管理员提交请求,以改变服务用户的权限。回顾本页面的信息,了解IAM的基本概念。要了解更多关于贵公司如何使用IAM与API Gateway的信息,请看亚马逊API Gateway如何与IAM一起工作。
IAM管理员 - 如果你是IAM管理员,你可能想了解关于如何编写策略来管理对API Gateway的访问的细节。要查看您可以在IAM中使用的基于身份的API Gateway策略示例,请参见Amazon API Gateway基于身份的策略示例。

Authenticating with identities

认证是指您如何使用您的身份凭证登录到AWS。有关使用AWS管理控制台登录的更多信息,请参阅《IAM用户指南》中的作为IAM用户或根用户登录AWS管理控制台。
您必须作为AWS账户根用户、IAM用户或通过承担IAM角色进行认证(登录到AWS)。你也可以使用你公司的单点登录认证,甚至使用谷歌或Facebook登录。在这些情况下,你的管理员之前使用IAM角色设置了身份联合。当你使用其他公司的凭证访问AWS时,你是间接承担了一个角色。
要直接登录到AWS管理控制台,请使用您的密码与您的根用户电子邮件地址或您的IAM用户名。你可以使用你的根用户或IAM用户访问密钥以编程方式访问AWS。AWS提供SDK和命令行工具,使用你的凭证对你的请求进行加密签名。如果你不使用AWS工具,你必须自己签署该请求。使用Signature Version 4来做到这一点,这是一个验证入站API请求的协议。有关验证请求的更多信息,请参见AWS通用参考中的Signature Version 4签署过程。
无论你使用哪种认证方法,你可能还需要提供额外的安全信息。例如,AWS建议你使用多因素认证(MFA)来提高你的账户的安全性。要了解更多信息,请参阅《IAM用户指南》中的《在AWS中使用多因素认证(MFA)》。

AWS account root user

当您首次创建AWS帐户时,您开始拥有一个单一的登录身份,可以完全访问帐户中的所有AWS服务和资源。这个身份被称为AWS账户根用户,通过使用您创建账户时使用的电子邮件地址和密码登录来访问。我们强烈建议你不要使用根用户来完成你的日常任务,甚至是管理任务。相反,坚持使用根用户的最佳做法,只创建你的第一个IAM用户。然后安全地锁住根用户的凭证,只用它们来执行一些账户和服务管理任务。

IAM用户和组

IAM用户是你的AWS账户中的一个身份,它对一个人或应用程序有特定的权限。一个IAM用户可以有长期的凭证,如用户名和密码或一组访问密钥。要了解如何生成访问密钥,请参阅《IAM用户指南》中管理IAM用户的访问密钥。当你为IAM用户生成访问密钥时,确保你查看并安全地保存密钥对。你不能在将来恢复秘密访问密钥。相反,你必须生成一个新的访问密钥对。
IAM组是一个身份,它指定了IAM用户的集合。你不能作为一个组登录。你可以使用组来指定一次多个用户的权限。组使权限更容易管理大型用户集。例如,你可以有一个名为IAMAdmins的组,给该组管理IAM资源的权限。
用户与角色不同。一个用户是与一个人或应用程序唯一相关的,但一个角色的目的是让任何需要它的人都可以承担。用户有永久的长期凭证,但角色提供临时凭证。要了解更多信息,请参阅《IAM用户指南》中的《何时创建IAM用户(而不是角色)》。

IAM roles

IAM角色是您的AWS帐户中的一个身份,它具有特定的权限。它类似于IAM用户,但不与一个特定的人相关联。你可以在AWS管理控制台中通过切换角色来临时承担一个IAM角色。您可以通过调用AWS CLI或AWS API操作或使用自定义URL来承担一个角色。有关使用角色的方法的更多信息,请参阅《IAM用户指南》中的使用IAM角色。
具有临时凭证的IAM角色在以下情况下很有用。
临时的IAM用户权限 - 一个IAM用户可以承担一个IAM角色,为一个特定的任务临时承担不同的权限。
联合用户访问 - 你可以使用来自AWS目录服务、你的企业用户目录或网络身份提供者的现有身份,而不是创建一个IAM用户。这些被称为联合用户。当通过身份提供者请求访问时,AWS会给联合用户分配一个角色。关于联合用户的更多信息,请参阅IAM用户指南中的联合用户和角色。
跨账户访问 - 你可以使用IAM角色来允许不同账户中的人(受信任的委托人)访问你账户中的资源。角色是授予跨账户访问的主要方式。然而,对于某些AWS服务,您可以将策略直接附加到资源上(而不是使用角色作为代理)。要了解角色和基于资源的跨账户访问策略之间的区别,请参阅《IAM用户指南》中的IAM角色与基于资源的策略有何不同。
跨服务访问 - 一些AWS服务使用其他AWS服务中的功能。例如,当你在一个服务中进行调用时,该服务通常会在Amazon EC2中运行应用程序或在Amazon S3中存储对象。一个服务可能会使用调用委托人的权限、使用服务角色或使用与服务相关的角色来实现这一点。
委托人权限 - 当你使用IAM用户或角色在AWS中执行操作时,你被认为是委托人。策略向委托人授予权限。当你使用一些服务时,你可能会执行一个动作,然后触发不同服务中的另一个动作。在这种情况下,你必须有权限来执行这两个动作。要查看一个动作是否需要策略中的其他依赖动作,请参见《服务授权参考》中的Actions, Resources, and Condition Keys for Amazon API Gateway。

Managing access using policies

您可以通过创建策略并将其附加到IAM身份或AWS资源来控制AWS中的访问。策略是AWS中的一个对象,当与一个身份或资源相关联时,它定义了它们的权限。你可以作为根用户或IAM用户登录,或者你可以承担一个IAM角色。当你提出请求时,AWS会评估相关的基于身份或资源的策略。策略中的权限决定了请求是被允许还是被拒绝。大多数政策是以JSON文档的形式存储在AWS中。有关JSON策略文件的结构和内容的更多信息,请参见《IAM用户指南》中的JSON策略概述。
管理员可以使用AWS JSON策略来指定谁可以访问什么。也就是说,哪个委托人可以在什么条件下对什么资源执行操作。
每个IAM实体(用户或角色)开始都没有权限。换句话说,在默认情况下,用户什么都不能做,甚至不能改变自己的密码。要给用户做某事的权限,管理员必须给用户附加一个权限策略。或者,管理员可以把用户添加到一个拥有预定权限的组。当管理员给一个组赋予权限时,该组中的所有用户都被授予这些权限。
IAM策略定义了一个操作的权限,而不管你用什么方法来执行这个操作。例如,假设你有一个政策,允许iam:GetRole操作。拥有该策略的用户可以从AWS管理控制台、AWS CLI或AWS API获得角色信息。
服务角色 - 服务角色是一个IAM角色,由服务承担,代表你执行行动。IAM管理员可以从IAM中创建、修改和删除服务角色。欲了解更多信息,请参阅《IAM用户指南》中的创建角色以将权限委托给AWS服务。
与服务相关的角色 - 与服务相关的角色是一种与AWS服务相关的服务角色。该服务可以承担该角色,代表您执行一项行动。服务链接的角色出现在您的IAM帐户中,并由服务拥有。IAM管理员可以查看,但不能编辑服务链接的角色的权限。
在亚马逊EC2上运行的应用程序 - 您可以使用IAM角色来管理在EC2实例上运行的应用程序的临时凭证,并提出AWS CLI或AWS API请求。这比在EC2实例内存储访问密钥更可取。为了将AWS角色分配给EC2实例,并使其对所有应用程序可用,您可以创建一个附加到实例的实例配置文件。实例配置文件包含角色,并使在EC2实例上运行的程序能够获得临时凭证。欲了解更多信息,请参阅《IAM用户指南》中的使用IAM角色向运行在Amazon EC2实例上的应用程序授予权限。
要了解是使用IAM角色还是IAM用户,请参阅《IAM用户指南》中的何时创建IAM角色(而不是用户)。

Identity-based policies

基于身份的策略是JSON权限策略文件,你可以附加到一个身份,如IAM用户、用户组或角色。这些策略控制用户和角色可以执行什么行动,在哪些资源上,以及在什么条件下。要了解如何创建基于身份的策略,请参阅《IAM用户指南》中的创建IAM策略。
基于身份的策略可以进一步分类为内联策略和管理策略。内联策略是直接嵌入到单个用户、组或角色中。管理策略是独立的策略,您可以将其附加到AWS账户中的多个用户、组和角色。管理的策略包括AWS管理的策略和客户管理的策略。要了解如何在管理政策或内联政策之间进行选择,请参见《IAM用户指南》中的在管理政策和内联政策之间进行选择。
# Resource-based policies
基于资源的策略是你附加到资源上的JSON策略文件。基于资源的策略的例子是IAM角色信任策略和Amazon S3桶策略。在支持基于资源的策略的服务中,服务管理员可以使用它们来控制对特定资源的访问。对于附加策略的资源,该策略定义了指定的委托人在什么条件下可以对该资源执行什么操作。你必须在基于资源的策略中指定一个委托人。委托人可以包括账户、用户、角色、联合用户或 AWS 服务。
基于资源的策略是位于该服务中的内联策略。你不能在基于资源的策略中使用IAM的AWS管理策略。

Access control lists (ACLs)

访问控制列表(ACL)控制哪些委托人(账户成员、用户或角色)有访问资源的权限。ACL类似于基于资源的策略,尽管它们不使用JSON策略文档格式。
Amazon S3、AWS WAF和Amazon VPC是支持ACL的服务的例子。要了解更多关于ACL的信息,请参阅《亚马逊简单存储服务开发者指南》中的访问控制列表(ACL)概述。

Other policy types

AWS支持额外的、不太常见的策略类型。这些策略类型可以设置更常见的策略类型所授予你的最大权限。
权限边界 - 权限边界是一种高级功能,你可以设置基于身份的策略可以授予IAM实体(IAM用户或角色)的最大权限。你可以为一个实体设置一个权限边界。产生的权限是实体的基于身份的策略和其权限边界的交集。基于资源的策略,在Principal字段中指定用户或角色,不受权限边界的限制。任何这些策略中的明确拒绝都会覆盖允许。关于权限边界的更多信息,请参阅IAM用户指南中的IAM实体的权限边界。
服务控制策略(SCP) - SCP是JSON策略,指定AWS组织中的组织或组织单元(OU)的最大权限。AWS组织是一种服务,用于分组和集中管理企业拥有的多个AWS账户。如果你在一个组织中启用所有功能,那么你可以将服务控制策略(SCP)应用于任何或所有账户。SCP限制成员账户中实体的权限,包括每个AWS账户根用户。有关组织和SCP的更多信息,请参阅《AWS组织用户指南》中的SCP如何工作。
会话策略 - 会话策略是高级策略,当你以编程方式为一个角色或联合用户创建临时会话时,你将其作为参数传递。由此产生的会话的权限是用户或角色的基于身份的策略和会话策略的交叉点。权限也可以来自基于资源的策略。任何这些策略中的明确拒绝都会覆盖允许。欲了解更多信息,请参阅IAM用户指南中的会话策略。

Multiple policy types

当多种类型的策略适用于一个请求时,所产生的权限会更加复杂,难以理解。要了解AWS如何在涉及多种策略类型时确定是否允许一个请求,请参阅《IAM用户指南》中的策略评估逻辑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值