适用于 Amazon Rekognition 的身份和访问管理
AWS Identity and Access Management(IAM)是一项 AWS 服务,可以帮助管理员安全地控制对 AWS 资源的访问。IAM 管理员控制谁可以通过身份验证(登录)和获得授权(具有权限)来使用 Amazon Rekognition 资源。IAM 是一项无需额外费用即可使用的 AWS 服务。
主题
受众
您使用 AWS Identity and Access Management(IAM)的方式因您的角色而异:
-
服务用户:如果您无法访问功能,请向管理员申请权限(请参阅Amazon Rekognition 身份和访问问题排查)
-
服务管理员:确定用户访问权限并提交权限请求(请参阅Amazon Rekognition 如何与 IAM 协同工作)
-
IAM 管理员:编写用于管理访问权限的策略(请参阅使用 Amazon Rekognition 基于身份的策略示例)
使用身份进行身份验证
身份验证是您使用身份凭证登录 AWS 的方法。您必须作为 AWS 账户根用户、IAM 用户或通过代入 IAM 角色进行身份验证。
您可以使用来自身份源 [例如 AWS IAM Identity Center(IAM Identity Center)] 的凭证、单点登录身份验证或 Google/Facebook 凭证,以联合身份进行登录。有关登录的更多信息,请参阅《AWS 登录 User Guide》中的 How to sign in to your AWS 账户。
对于编程访问,AWS 提供了 SDK 和 CLI 来对请求进行加密签名。有关更多信息,请参阅《IAM 用户指南》中的适用于 API 请求的 AWS 签名版本 4。
IAM 用户和组
IAM 用户是对单个人员或应用程序具有特定权限的身份。我们建议使用临时凭证,而非具有长期凭证的 IAM 用户。有关更多信息,请参阅《IAM 用户指南》中的要求人类用户使用带有身份提供商的联合身份验证才能使用临时凭证访问 AWS。
IAM 组指定一组 IAM 用户,便于对大量用户进行权限管理。有关更多信息,请参阅《IAM 用户指南》中的 IAM 用户的使用案例。
IAM 角色
IAM 角色是具有特定权限的身份,可提供临时凭证。您可以通过从用户切换到 IAM 角色(控制台)或调用 AWS CLI 或 AWS API 操作来代入角色。有关更多信息,请参阅《IAM 用户指南》中的担任角色的方法。
IAM 角色对于联合用户访问、临时 IAM 用户权限、跨账户访问、跨服务访问以及在 Amazon EC2 上运行的应用程序非常有用。有关更多信息,请参阅《IAM 用户指南》中的 IAM 中的跨账户资源访问。
使用策略管理访问
您将创建策略并将其附加到 AWS 身份或资源,以控制 AWS 中的访问。策略定义与身份或资源关联时的权限。当主体发出请求时,AWS 将评估这些策略。大多数策略在 AWS 中存储为 JSON 文档。有关 JSON 策略文档的更多信息,请参阅《IAM 用户指南》中的 JSON 策略概述。
管理员可使用策略来指定访问权限,具体做法是定义哪个主体可在何种条件下对哪些资源执行何种操作。
默认情况下,用户和角色没有权限。IAM 管理员创建 IAM 策略并将其添加到角色中,然后用户可以代入这些角色。IAM 策略定义权限,而不考虑您使用哪种方法来执行操作。
使用基于身份的策略
基于身份的策略是您附加到身份(用户、组或角色)的 JSON 权限策略文档。这些策略控制身份可在什么条件下对哪些资源执行什么操作。要了解如何创建基于身份的策略,请参阅《IAM 用户指南》中的使用客户管理型策略定义自定义 IAM 权限。
基于身份的策略可以是内联策略(直接嵌入到单个身份中)或托管式策略(附加到多个身份的独立策略)。要了解如何在托管式策略和内联策略之间进行选择,请参阅《IAM 用户指南》中的在托管式策略与内联策略之间进行选择。
使用基于资源的策略
基于资源的策略是附加到资源的 JSON 策略文档。示例包括 IAM 角色信任策略和 Amazon S3 存储桶策略。在支持基于资源的策略的服务中,服务管理员可以使用它们来控制对特定资源的访问。您必须在基于资源的策略中指定主体。
基于资源的策略是位于该服务中的内联策略。您不能在基于资源的策略中使用来自 IAM 的 AWS 托管式策略。
访问控制列表(ACL)
访问控制列表(ACL)控制哪些主体(账户成员、用户或角色)有权访问资源。ACL 与基于资源的策略类似,尽管它们不使用 JSON 策略文档格式。
Amazon S3、AWS WAF 和 Amazon VPC 是支持 ACL 的服务示例。要了解有关 ACL 的更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的访问控制列表(ACL)概览。
其他策略类型
AWS 支持额外的策略类型,这些策略类型可以设置由更常用的策略类型授予的最大权限:
-
权限边界:设置基于身份的策略可以授予 IAM 实体的最大权限。有关更多信息,请参阅《IAM 用户指南》中的 IAM 实体的权限边界。
-
服务控制策略(SCP):指定 AWS Organizations 中组织或组织单元的最大权限。有关更多信息,请参阅 AWS Organizations 用户指南中的服务控制策略。
-
资源控制策略(RCP):设置对账户中资源的最大可用权限。有关更多信息,请参阅《AWS Organizations User Guide》中的 Resource control policies (RCPs)。
-
会话策略:在为角色或联合用户创建临时会话时,作为参数传递的高级策略。有关更多信息,请参阅 IAM 用户指南中的会话策略。
多个策略类型
当多个类型的策略应用于一个请求时,生成的权限更加复杂和难以理解。要了解 AWS 如何确定在涉及多种策略类型时是否允许请求,请参阅IAM 用户指南中的策略评估逻辑。
策略最佳实践
基于身份的策略确定某个人是否可以创建、访问或删除您账户中的 Amazon Rekognition 资源。这些操作可能会使 AWS 账户 产生成本。创建或编辑基于身份的策略时,请遵循以下指南和建议:
-
AWS 托管式策略及转向最低权限许可入门 – 要开始向用户和工作负载授予权限,请使用 AWS 托管式策略来为许多常见使用场景授予权限。您可以在 AWS 账户 中找到这些策略。我们建议通过定义特定于您的使用场景的 AWS 客户托管式策略来进一步减少权限。有关更多信息,请参阅《IAM 用户指南》中的 AWS 托管式策略或工作职能的 AWS 托管式策略。
-
应用最低权限:在使用 IAM 策略设置权限时,请仅授予执行任务所需的权限。为此,您可以定义在特定条件下可以对特定资源执行的操作,也称为最低权限许可。有关使用 IAM 应用权限的更多信息,请参阅《IAM 用户指南》中的 IAM 中的策略和权限。
-
使用 IAM 策略中的条件进一步限制访问权限:您可以向策略添加条件来限制对操作和资源的访问。例如,您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果通过特定 AWS 服务(例如 CloudFormation)使用服务操作,您还可以使用条件来授予对服务操作的访问权限。有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:条件。
-
使用 IAM Access Analyzer 验证您的 IAM 策略,以确保权限的安全性和功能性 – IAM Access Analyzer 会验证新策略和现有策略,以确保策略符合 IAM 策略语言(JSON)和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议,以帮助您制定安全且功能性强的策略。有关更多信息,请参阅《IAM 用户指南》中的使用 IAM Access Analyzer 验证策略。
-
需要多重身份验证(MFA):如果您所处的场景要求您的 AWS 账户 中有 IAM 用户或根用户,请启用 MFA 来提高安全性。若要在调用 API 操作时需要 MFA,请将 MFA 条件添加到您的策略中。有关更多信息,请参阅《IAM 用户指南》中的使用 MFA 保护 API 访问。
有关 IAM 中的最佳实操的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践。