一般性问题
IAM 为 AWS 服务提供身份验证和授权。服务会评估允许还是拒绝 AWS 请求。默认情况下拒绝访问,只有在策略明确授予访问权限时才允许访问。您可以将策略附加到角色和资源以控制跨 AWS 的访问。有关更多信息,请参阅 了解 IAM 的工作方式。
要开始使用 IAM 管理 AWS 服务和资源的权限,请创建 IAM 角色并为其授予权限。对于 员工用户,创建可由您的身份提供商代入的角色。对于系统,创建可由您正在使用的服务代入的角色,如 Amazon EC2 或 AWS Lambda。创建角色后,您可以将策略附加到角色以授予满足您需求的权限。刚开始时,您可能不知道需要的特定权限,因此您可以从更广泛的权限开始。 AWS 托管式策略提供可帮助您入门的权限,并且适用于所有 AWS 账户。然后,通过定义特定于您的使用案例的 客户托管式策略来进一步减少权限。您可以在 IAM 控制台中或通过 AWS API 或 AWS CLI 创建和管理策略与角色。有关更多信息,请参阅 IAM 入门。
IAM 资源
问:什么是 IAM 角色以及它们如何运作?
AWS Identity and Access Management (IAM) 角色提供了一种依赖临时安全凭证访问 AWS 的方法。每个角色都有一组发出 AWS 服务请求的权限,并且角色未与特定用户或组关联。相反,身份提供商或 AWS 服务等可信实体代入角色。有关更多信息,请参阅 IAM 角色。
问:为什么应该使用 IAM 角色?
您应该使用 IAM 角色通过依赖短期凭证来授予对您的 AWS 账户的访问权限,这是一种安全最佳实践。授权身份(可以是 AWS 服务或来自您的身份提供商的用户)可以代入发出 AWS 请求的角色。要向角色授予权限,请将 IAM 策略附加到该角色。有关更多信息,请参阅针对角色的常见情形。
问:什么是 IAM 用户,我仍应使用它们吗?
IAM 用户是具有长期凭证的身份。您可以将 IAM 用户用于员工用户。在这种情况下,AWS 建议使用身份提供商并通过代入角色联合到 AWS。您还可以使用角色授予对 AWS Lambda 函数等服务和功能的跨账户访问权限。在某些情况下,您可能需要 IAM 用户提供具有长期凭证的访问密钥,以访问您的 AWS 账户。对于这些情况,AWS 建议使用 IAM 访问上次使用的信息来经常轮换凭证并删除未使用的凭证。有关更多信息,请参阅 AWS 身份管理概述:用户。
问:什么是 IAM 策略?
IAM 策略为您附加它们的实体定义权限。例如,要授予对 IAM 角色的访问权限,请将策略附加到此角色。策略中定义的权限确定是允许还是拒绝请求。您还可以将策略附加到某些资源(例如 Amazon S3 存储桶)以授予直接的跨账户访问权限。您可以将策略附加到 AWS 企业或企业单位,以限制跨多个账户的访问权限。AWS 在 IAM 角色发出请求时评估这些策略。有关更多信息,请参阅基于身份的策略。
授予访问权限
问:如何使用 IAM 授予对服务和资源的访问权限?
要使用 AWS Identity and Access Management (IAM) 授予对服务和资源的访问权限,请将 IAM 策略附加到角色或资源。您可以从附加 AWS 托管式策略开始,这些策略由 AWS 拥有和更新,并且在所有 AWS 账户中都可用。如果您知道使用案例所需的特定权限,则可以创建客户托管式策略并将它们附加到角色。一些 AWS 资源提供了一种通过定义附加到资源(例如 Amazon S3 存储桶)的策略来授予访问权限的方法。这些基于资源的策略允许您授予对其所附加资源的直接的跨账户访问权限。有关更多信息,请参阅 适用于 AWS 资源的 Access Management。
问:如何创建 IAM 策略?
要将权限分配给角色或资源,请创建一个策略,此策略是定义权限的 JavaScript 对象表示法 (JSON) 文档。此文档包括授予或拒绝访问特定服务操作、资源和条件的权限声明。创建策略后,您可以将其附加到一个或多个 AWS 角色以向您的 AWS 账户授予权限。要授予对资源(例如 Amazon S3 存储桶)的直接的跨账户访问权限,请使用基于资源的策略。在 IAM 控制台或通过 AWS API 或 AWS CLI 创建您的策略。有关更多信息,请参阅创建 IAM 策略。
问:什么是 AWS 托管式策略,我应在何时使用?
AWS 托管式策略由 AWS 创建和管理,涵盖常见使用案例。 开始时,您可以使用 AWS 托管式策略授予更广泛的权限,这些策略在您的 AWS 账户中可用并且在所有 AWS 账户中通用。然后,当您优化您的要求时,可以通过定义特定于您的使用案例的客户托管式策略来减少权限,从而实现最低权限。有关更多信息,请参阅 AWS 托管式策略。
问:什么是客户托管式策略,我应在何时使用?
要仅授予执行任务所需的权限,您可以创建特定于您的使用案例和资源的客户托管式策略。使用客户托管式策略来继续优化您的特定要求的权限。有关更多信息,请参阅客户托管式策略。
问:什么是内联策略,我应在何时使用?
内联策略嵌入在特定 IAM 角色中并且是其固有的。如果您希望在策略与其应用的身份之间保持严格的一对一关系,请使用内联策略。例如,您可以授予管理权限以确保它们不附加到其他角色。有关更多信息,请参阅内联策略。
问:什么是基于资源的策略,我应在何时使用?
基于资源的策略是附加到资源的权限策略。例如,您可以将基于资源的策略附加到 Amazon S3 存储桶、Amazon SQS 队列、VPC 终端节点和 AWS Key Management Service 加密密钥。有关支持基于资源的策略的服务列表,请参阅使用 IAM 的 AWS 服务。使用基于资源的策略授予直接的跨账户访问权限。使用基于资源的策略,您可以定义谁有权访问资源以及他们可以使用该资源执行哪些操作。有关更多信息,请参阅基于身份的策略和基于资源的策略。
问:什么是基于角色的访问控制 (RBAC)?
RBAC 为您提供了一种根据人员工作职能(在 AWS 之外称为角色)分配权限的方法。IAM 通过定义具有与工作职能一致的权限的 IAM 角色来提供 RBAC。然后,您可以授予个人访问权限,以代入这些角色来执行特定的工作职能。借助 RBAC,您可以通过查看每个 IAM 角色及其附加权限来审计访问权限。有关更多信息,请参阅 ABAC 与传统 RBAC 模型的对比。
问:如何使用 RBAC 授予访问权限?
作为最佳实践,仅授予对执行每项任务所需的特定服务操作和资源的访问权限。这称为授予最低权限。员工添加新资源时,您必须更新策略以允许访问这些资源。
问:什么是基于属性的访问控制 (ABAC)?
ABAC 是一种授权策略,它根据属性定义权限。在 AWS 中,这些属性称为标签,您可以在 AWS 资源、IAM 角色和角色会话中进行定义。使用 ABAC,您可以根据标签的值定义一组权限。您可以通过要求角色或会话上的标签与资源上的标签匹配来授予对特定资源的精细权限。例如,您可以制定策略,授予开发人员对标记为“开发人员”职位的资源的访问权限。 ABAC 通过在使用特定标签创建资源时授予资源权限,在快速增长的环境中很有帮助。有关更多信息,请参阅适用于 AWS 的基于属性的访问控制。
问:如何使用 ABAC 授予访问权限?
要使用 ABAC 授予访问权限,请先定义要用于访问控制的标签键和值。然后,确保您的 IAM 角色具有适当的标签键和值。如果多个身份使用此角色,您还可以定义会话标签键和值。接下来,确保您的资源具有适当的标签键和值。您还可以要求用户使用适当的标签创建资源,并限制访问以进行修改。标签就位后,定义一个策略,授予对特定操作和资源类型的访问权限,但前提是角色或会话标签与资源标签匹配。有关演示如何在 AWS 中使用 ABAC 的详细教程,请参阅 IAM 教程:根据标签定义访问 AWS 资源的权限。
限制访问权限
问:什么是 AWS Organizations 服务控制策略 (SCP),我应在何时使用?
SCP 类似于 IAM 策略并使用几乎相同的语法。但是,SCP 不授予权限。相反,SCP 允许或拒绝拥有 Organizations 成员账户的各个 AWS 账户或企业单位内的账户组对 AWS 服务进行访问。来自 SCP 的指定操作会影响所有 IAM 用户和角色,包括成员账户的根用户。有关更多信息,请参阅 策略评估逻辑。
分析访问权限
问:如何获得最低权限?
开始授予权限时,您可以在探索和试验时从更广泛的权限开始。随着您的使用案例的成熟,AWS 建议您优化权限以仅授予以实现最低权限为目标所需的权限。AWS 提供了多种工具来帮助您优化权限。您可以从 AWS 托管式策略开始,这些策略由 AWS 创建和管理,并包含常见使用案例的权限。在您优化您的权限时,请在客户托管式策略中定义特定权限。为帮助您确定所需的特定权限,请使用 AWS Identity and Access Management (IAM) Access Analyzer、查看 AWS CloudTrail 日志并检查上次访问信息。您还可以使用 IAM 策略模拟器 对策略进行测试和故障排除。
问:什么是 IAM Access Analyzer?
实现最低权限是一个连续的循环,会随着您需求的发展授予正确的精细权限。IAM Access Analyzer 可帮助您在此周期的每个步骤简化权限管理。使用 IAM Access Analyzer 的策略生成会根据在您的日志中捕获的访问活动,生成精细策略。这意味着在构建和运行应用程序后,您可以生成仅授予操作应用程序所需权限的策略。使用 IAM Access Analyzer 进行策略验证使用 100 多项策略检查来指导您制定和验证安全和功能性策略。您可以在创建新策略或验证现有策略时,使用这些检查。公共和跨账户检查结果结合 IAM Access Analyzer 可帮助您验证和优化您的资源策略允许的从 AWS 组织或账户之外进行访问的权限。有关更多信息,请参阅使用 IAM Access Analyzer。
问:如何删除未使用的权限?
您的 AWS 账户可能具有不再需要的 IAM 用户、角色和权限。我们建议您删除它们以实现最低权限访问。对于 IAM 用户,您可以查看密码和访问密钥上次使用的信息。对于角色,您可以查看角色上次使用的信息。此信息可通过 IAM 控制台、API 和 SDK 获得。上次使用的信息可帮助您识别不再使用且可以安全删除的用户和角色。您还可以通过查看服务和上次访问的信息来确定未使用的权限来优化权限。有关更多信息,请参阅使用上次访问的信息优化 AWS 中的权限。
问:什么是 IAM 策略模拟器,我应在何时使用?
IAM 策略模拟器会评估您选择的策略并确定您指定的每个操作的有效权限。使用策略模拟器对基于身份和基于资源的策略、IAM 权限边界和 SCP 进行测试和故障排除。有关更多信息,请参阅使用 IAM 策略模拟器测试 IAM 策略。