Amazon Redshift 中的 Identity and Access Management - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon Redshift 中的 Identity and Access Management

访问 Amazon Redshift 时需要可供 Amazon 用来验证您的请求的凭证。这些凭证必须有权访问 Amazon 资源,如 Amazon Redshift 集群。下面几节提供详细信息来说明如何使用 Amazon Identity and Access Management (IAM) 和 Amazon Redshift 控制谁能访问您的资源,从而对这些资源进行保护:

使用身份进行身份验证

身份验证是您使用身份凭证登录 Amazon 的方法。有关使用Amazon Web Services Management Console登录的更多信息,请参阅 IAM 用户指南中的以 IAM 用户或根用户身份登录Amazon Web Services Management Console。

您必须作为Amazon Web Services 账户根用户、IAM 用户或代入 IAM 角色以进行身份验证(登录到Amazon)。您还可以使用公司的单一登录身份验证方法,甚至使用 Google 或 Facebook 登录。在这些情况下,您的管理员以前使用 IAM 角色设置了联合身份验证。在您使用来自其它公司的凭证访问 Amazon 时,您间接地代入了角色。

要直接登录到Amazon Web Services Management Console,请将密码与根用户电子邮件地址或 IAM 用户名一起使用。您可以使用根用户或 IAM 用户访问密钥以编程方式访问 Amazon。Amazon 提供了 SDK 和命令行工具,可使用您的凭证对您的请求进行加密签名。如果您不使用 Amazon 工具,则必须自行对请求签名。使用 Signature Version 4(用于对入站 API 请求进行验证的协议)完成此操作。有关验证请求的更多信息,请参阅《Amazon 一般参考》中的 Signature Version 4 签名流程

无论使用何种身份验证方法,您可能还需要提供其它安全信息。例如,Amazon 建议您使用多重身份验证 (MFA) 来提高账户的安全性。要了解更多信息,请参阅《IAM 用户指南》中的在 Amazon 中使用多重身份验证 (MFA)

Amazon Web Services 账户根用户

当您创建 Amazon Web Services 账户时,最初使用的是一个对账户中所有 Amazon Web Services和资源拥有完全访问权限的登录身份。此身份称为 Amazon Web Services 账户根用户,使用您创建账户时所用的电子邮件地址和密码登录,即可获得该身份。强烈建议您不要使用根用户执行日常任务。保护好根用户凭证,并使用这些凭证来执行仅根用户可以执行的任务。有关要求您以根用户身份登录的任务的完整列表,请参阅《Amazon 一般参考》中的需要根用户凭证的任务

IAM 用户和组

IAM 用户是Amazon Web Services 账户内对某个人员或应用程序具有特定权限的一个身份。在可能的情况下,我们建议使用临时凭证,而不是创建具有长期凭证(如密码和访问密钥)的 IAM 用户。但是,如果您有一些特定的使用场景需要长期凭证以及 IAM 用户,我们建议您轮换访问密钥。有关更多信息,请参阅《IAM 用户指南》中的对于需要长期凭证的使用场景定期轮换访问密钥

IAM 组是一个指定一组 IAM 用户的身份。您不能使用组的身份登录。您可以使用组来一次性为多个用户指定权限。如果有大量用户,使用组可以更轻松地管理用户权限。例如,您可能具有一个名为 IAMAdmins 的组,并为该组授予权限以管理 IAM 资源。

用户与角色不同。用户唯一地与某个人员或应用程序关联,而角色旨在让需要它的任何人代入。用户具有永久的长期凭证,而角色提供临时凭证。要了解更多信息,请参阅 IAM 用户指南中的何时创建 IAM 用户(而不是角色)

IAM 角色

IAM 角色是Amazon Web Services 账户中具有特定权限的身份。它类似于 IAM 用户,但与特定人员不关联。您可以通过切换角色,在 Amazon Web Services Management Console 中暂时代入 IAM 角色。您可以调用 Amazon CLI 或 Amazon API 操作或使用自定义 URL 以代入角色。有关使用角色的方法的更多信息,请参阅 IAM 用户指南 中的使用 IAM 角色

具有临时凭证的 IAM 角色在以下情况下很有用:

  • Federated user access(联合用户访问)– 要向联合身份分配权限,请创建角色并为角色定义权限。当联合身份进行身份验证时,该身份将与角色相关联并被授予由此角色定义的权限。有关联合身份验证的角色的信息,请参阅《IAM 用户指南》中的为第三方身份提供商创建角色

  • 临时 IAM 用户权限 – IAM 用户可代入 IAM 用户或角色,以暂时获得针对特定任务的不同权限。

  • 跨账户访问 – 您可以使用 IAM 角色以允许不同账户中的某个人(可信主体)访问您的账户中的资源。角色是授予跨账户访问权限的主要方式。但是,对于某些 Amazon Web Services,您可以将策略直接附加到资源(而不是使用角色作为代理)。要了解用于跨账户访问的角色和基于资源的策略之间的差别,请参阅 IAM 用户指南中的 IAM 角色与基于资源的策略有何不同

  • 跨服务访问 – 某些 Amazon Web Services使用其它 Amazon Web Services中的功能。例如,当您在某个服务中进行调用时,该服务通常会在 Amazon EC2 中运行应用程序或在 Simple Storage Service(Amazon S3)中存储对象。服务可能会使用发出调用的主体的权限、使用服务角色或使用服务相关角色来执行此操作。

    • 主体权限 – 当您使用 IAM 用户或角色在 Amazon 中执行操作时,您将被视为主体。策略向主体授予权限。使用某些服务时,您可能会执行一个操作,此操作然后在不同服务中触发另一个操作。在这种情况下,您必须具有执行这两个操作的权限。要查看某个操作是否需要策略中的其他相关操作,请参阅《服务授权参考》中的 Amazon Redshift 的操作、资源和条件键

    • 服务角色 – 服务角色是服务代表您在您的账户中执行操作而担任的 IAM 角色。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息,请参阅 IAM 用户指南中的创建向 Amazon Web Service 委派权限的角色

    • 服务相关角色 – 服务相关角色是与 Amazon Web Service关联的一种服务角色。服务可以代入代表您执行操作的角色。服务相关角色显示在您的 IAM 账户中,并归该服务所有。IAM 管理员可以查看但不能编辑服务相关角色的权限。

  • 在 Amazon EC2 上运行的应用程序 – 您可以使用 IAM 角色管理在 EC2 实例上运行并发出 Amazon CLI 或 Amazon API 请求的应用程序的临时凭证。这优先于在 EC2 实例中存储访问密钥。要将 Amazon 角色分配给 EC2 实例并使其对该实例的所有应用程序可用,您可以创建一个附加到实例的实例配置文件。实例配置文件包含角色,并使 EC2 实例上运行的程序能够获得临时凭证。有关更多信息,请参阅 IAM 用户指南中的使用 IAM 角色为 Amazon EC2 实例上运行的应用程序授予权限

要了解是使用 IAM 角色还是 IAM 用户,请参阅 IAM 用户指南中的何时创建 IAM 角色(而不是用户)

访问控制

您可以使用有效的凭证来对自己的请求进行身份验证,但您还必须拥有权限才能创建或访问 Amazon Redshift 资源。例如,您必须拥有权限才能创建 Amazon Redshift 集群、创建快照、添加事件订阅等。

下面几节介绍如何管理 Amazon Redshift 的权限。我们建议您先阅读概述。