Amazon DynamoDB – 身份和访问管理 (IAM)
云中的安全性仍然是采用云的主要障碍之一。让安全运营和开发团队遵循安全最佳实践,确保顺利过渡。 AWS IAM(身份和访问管理)是用于数据保护的最广泛使用的安全平台之一。在您的环境中提供权限和访问控制时,它采用了一种非常精细的方法。
在本文中,让我们仔细看看 AWS IAM 及其功能,并了解它的工作原理。
让我们首先了解什么是 AWS IAM。
什么是 AWS IAM?
AWS Identity and Access Management (IAM) 是一项 Web 服务,可帮助您安全地访问 AWS 服务和资源。 IAM 是 AWS 安全性的核心,因为它使您能够通过创建 AWS 用户和组、为特定用户分配特殊权限和策略、设置多因素身份验证以提高安全性等等来控制访问。
IAM 在 AWS 中的主要功能是访问和权限。它提供了两个基本功能来建立企业资源的基本安全性——身份验证和授权。
为什么选择 IAM?
IAM 的主要目的是协助 IT、管理员处理 AWS 用户身份及其对资源的不同访问级别。例如,我们可以随时创建 AWS 用户、分配个人安全凭证并授予访问 AWS 的权限。通过这样做,组织可以控制谁有权访问其 AWS 资源、哪些资源是可访问的,以及授权用户可以在提供的资源内执行操作。
AWS IAM – 主要功能
让我们看看 IAM 的一些关键特性,这些特性使 IAM 如此强大和多才多艺:
- 对您的 AWS 账户的共享访问权限– 您可以授予其他人管理和使用您的 AWS 账户中的资源的权限,而无需共享访问密钥或密码。
- 精细权限– 使用 IAM,您可以向不同的人授予不同的权限以获取更多资源。
- 多重身份验证– 为了提高安全性,您可以为您的帐户和个人用户添加双重身份验证。通过多重身份验证,您或您的用户必须提供密码或访问密钥才能使用您的帐户以及来自特殊配置设备的代码。
- 身份联合- 您可以允许在其他地方已经拥有密码的用户。例如,假设用户已经通过身份验证,例如通过 Google 帐户或 Facebook 帐户。在这种情况下,IAM 可以信任该身份验证方法,然后允许基于它的访问。
- PCI DSS 合规性– IAM 符合支付卡行业 (PCI) 数据安全标准 (DSS)。
- 最终一致——与许多其他 AWS 服务一样,IAM 最终是一致的。
- 免费使用– IAM 安全性不收取额外费用。
- 为在 Amazon EC2 上运行的应用程序安全访问 AWS 资源– IAM 功能用于为在 Amazon EC2 实例上运行的应用程序安全地提供凭证
- 密码策略– IAM 密码策略允许您远程重置或轮换密码。
IAM 是如何工作的?
IAM 提供了控制身份验证和授权所需的基础设施。 IAM 基础设施包括委托人、请求、身份验证、授权、操作或操作以及资源。
让我们一一探索。
- 委托人是对 AWS 资源执行操作的实体。
- 身份验证:它确认尝试访问 AWS 产品的委托人的身份。委托人必须提供身份验证所需的凭据。
- 请求:委托人向 AWS 发送请求,指定操作以及应执行该操作的资源。
- 授权:默认拒绝所有资源。仅当匹配策略遵循请求的所有部分时,IAM 才会授权请求。请求身份验证和授权后,AWS 批准该操作。
- 操作:请求经过身份验证和授权后,请求中的操作或操作将由 AWS 批准。操作用于创建、查看或删除资源。
- 资源:您请求中的操作获得 AWS 批准后,将在与您的 AWS 账户相关的资源上执行。
下图描述了 IAM 的工作原理。
标准 IAM 流程分为四个不同的阶段:
1. 提出要求
IAM 流程从一个名为 Principal 的应用程序或一个人开始。每个委托人都有 AWS 账户凭证,并且必须登录才能发出请求。然后,委托人发出涉及资源的请求。
2. 向 AWS 发送详细信息
每个请求都包括操作、涉及的资源、主要策略、有关资源的数据等详细信息。这些详细信息用于评估和授权请求。
3. 授权请求
AWS 检查委托人的身份验证并将关联策略与相关请求进行比较。在此阶段,IAM 评估应用程序或用户是否可以执行请求资源的请求操作。如果委托人具有授权,则处理该请求。如果不是,则拒绝该请求。
4. 处理请求
这涉及对预期资源执行所需操作,例如从存储实例获取数据。
如何访问 IAM?
您可以通过以下任何方式访问 AWS Identity and Access Management (IAM):
- AWS 命令行工具:要在系统命令行发出命令并执行 AWS 和 IAM 任务,您可以使用 AWS 命令行工具。
- AWS 管理控制台:控制台是一个基于浏览器的界面,用于管理 AWS 和 IAM 资源。以 IAM 用户或根用户身份登录 AWS 管理控制台,了解有关通过控制台访问 IAM 的更多信息。
- AWS 开发工具包: AWS 提供的开发工具包包含适用于各种编程语言和平台的库和示例代码。开发工具包提供了一种以编程方式访问 IAM 和 AWS 的便捷方式。
- IAM HTTPS API:您可以使用 IAM HTTPS API 以编程方式访问 AWS 和 IAM,这使您可以立即向服务发出 HTTPS 请求。
创建 IAM 角色:
1. 为服务创建 IAM 角色
打开窗口的导航窗口,按“角色”,然后按“创建者角色”。当我们点击“Creator Role”时,会出现如下画面:
- 选择我们要与角色一起使用的服务。
- 选择将权限连接到服务的策略。
- 在角色名称框中输入角色名称,然后按“创建角色”。
2. 通过命令行界面(CLI)为服务创建 IAM 角色
为了通过命令行界面为 AWS 服务创建角色,我们使用以下命令:
aws iam create-role
aws iam put-role-policy
如果我们将角色与 Amazon EC2 实例等实例一起使用,我们必须创建一个实例配置文件来存储角色。实例配置文件是一个角色容器,但一个实例角色可以有一个角色。如果我们通过 AWS 管理控制台创建角色,则实例配置文件已经可用。
要通过命令行界面创建实例配置文件,请使用以下命令:
aws iam create-instance-profile
aws iam add-role-to-instance-profile
您应该知道的 IAM 最佳实践
在结束之前,让我们回顾一下您会发现有助于保护 AWS 资源的一些最佳实践。
- 避免使用 AWS 账户根用户访问密钥:切勿将您的 AWS 账户根用户访问密钥用于编程请求。它提供对所有 AWS 服务的所有资源的完全访问权限,并且您不能减少与之相关的权限。
- 管理用户组以向 IAM 用户分配权限:与其为单个 IAM 用户定义权限,不如通过为每个用户组定义相关权限来创建与工作职能相关的用户组。
- 建立个人 IAM 用户:为需要访问您的 AWS 账户的任何人建立个人用户。
- 授予最小权限:许多 AWS 资源可以直接附加其访问策略。最佳地使用最小特权原则的双方来实现有利的结果。
- 使用 AWS 托管策略创建权限:使用 AWS 托管策略为您的员工提供快速入门所需的权限。
- 验证您的策略:验证您创建的策略是最佳实践。您可以在启动和编辑 JSON 策略时执行策略验证。
- 启用 MFA:使用多因素身份验证,增加额外的安全层以与 AWS API 交互。
- 应用强密码:配置账户密码策略以应用强密码。
包起来:
作为市场领先的云提供商,AWS 推出了许多提高安全性的措施,而 IAM 是其中最关键的。凭借其所有独特的潜力和能力,围绕 IAM 的学习覆盖需要它应得的庄严。我们的文章旨在帮助像您这样的用户充分利用此类动力内容等主题。