我如何管理 IAM?
在 AWS 环境中管理 AWS Identity and Access Management 涉及利用各种工具和界面。最常用的方法是通过 AWS Management Console,这一基于 Web 的界面可让您执行各种 IAM 管理任务,从创建用户和角色到配置权限。
对于更熟悉命令行界面的用户,AWS 提供了两组命令行工具 - AWS Command Line Interface 和 AWS Tools for Windows PowerShell。这些工具可让您直接从终端发出与 IAM 相关的命令,通常比导航控制台更高效。此外,AWS CloudShell 允许您使用与控制台登录相关联的权限,直接从 Web 浏览器运行 CLI 或 SDK 命令。
除了控制台和命令行之外,AWS 还提供适用于各种编程语言的软件开发工具包(SDK),使您能够将 IAM 管理功能直接集成到自己的应用程序中。或者,您可以使用 IAM Query API(可让您直接向服务发布 HTTPS 请求)以编程方式访问 IAM。利用这些不同的管理方法,您可以灵活地将 IAM 整合到现有的工作流程和过程中。
使用 AWS Management Console
AWS 管理控制台是一款 Web 应用程序,其中包含并引用了多种用于管理 AWS 资源的服务控制台。首次登录时,您会看到控制台主页。通过控制台主页可以访问各个服务控制台,此外还可以一站式访问执行 AWS 相关任务所需的信息。登录控制台后可以使用哪些服务和应用程序,取决于您有权访问哪些 AWS 资源。您可以通过代入角色、成为已获得相关权限的组成员或获得显式授权来获得资源权限。对于独立 AWS 账户,根用户或 IAM 管理员负责配置对资源的访问权限。对于 AWS Organizations,管理账户或委托管理员负责配置对资源的访问权限。
如果您计划让人使用 AWS 管理控制台来管理 AWS 资源,我们建议您为用户配置临时凭证,以遵循 最佳安全实践。代入角色的 IAM 用户、联合用户和 IAM Identity Center 中的用户拥有临时凭证,而 IAM 用户和根用户拥有长期凭证。根用户凭证提供对 AWS 账户的完全访问权限,而其他用户拥有的凭证提供对 IAM policy 授权的资源的访问权限。
不同类型的 AWS Management Console 用户会有不同的登录体验。
-
IAM 用户和根用户通过 AWS 主登录 URL(https://signin.aws.amazon.com)登录。登录之后,这些用户可以访问账户中已获得权限的资源。
您必须使用根用户电子邮件地址和密码才能以根用户身份登录。
您必须拥有 AWS 账户号码或别名、IAM 用户名和 IAM 用户密码才能以 IAM 用户身份登录。
我们建议您仅在需要长期凭证的特定情况(例如用于紧急访问)下使用账户中的 IAM 用户,并且仅将根用户用于 需要根用户凭证的任务。
为方便起见,AWS 登录页面使用浏览器 Cookie 记住 IAM 用户名和账户信息。下次用户转到 AWS Management Console 中的任何页面时,控制台会使用 cookie 将用户重定向到账户登录页面。
完成会话后应退出控制台,以防止之前的登录信息被重复使用。
-
IAM Identity Center 用户使用其组织特有的特定 AWS 访问门户登录。登录后,这些用户可以选择要访问的账户或应用程序。如果选择访问某个账户,则可以选择要在管理会话中使用的权限集。
-
在与 AWS 账户关联的外部身份提供商中管理的联合用户使用自定义企业访问门户登录。联合用户可用的 AWS 资源取决于其组织选择的策略。
注意
可以要求根用户、IAM 用户和 IAM Identity Center 中的用户通过 AWS 的多重身份验证(MFA)验证身份后才能获得对 AWS 资源的访问权限,从而增强安全性。启用 MFA 后,您还必须有权访问 MFA 设备才能登录。
要详细了解不同用户如何登录管理控制台,请参阅《AWS 登录用户指南》中的 Sign in to the AWS Management Console。
AWS 命令行工具
您可以使用 AWS 命令行工具,在系统的命令行中发出命令以执行 IAM 和 AWS 任务。与控制台相比,使用命令行更快、更方便。如果要构建执行 AWS 任务的脚本,命令行工具也会十分有用。
AWS 提供两组命令行工具:AWS Command Line Interface
登录控制台后,您可以从浏览器使用 AWS CloudShell 来运行 CLI 或 SDK 命令。访问 AWS 资源的权限取决于您登录控制台时使用的凭证。根据您的经验,您可能会发现使用 CLI 来管理 AWS 账户 更高效。有关更多信息,请参阅 将 AWS CloudShell 与 AWS Identity and Access Management 结合使用
AWS 命令行界面(CLI)和软件开发工具包(SDK)
IAM Identity Center 和 IAM 用户在通过 CLI 或相关 SDK 中的应用程序编程接口(API)进行身份验证时,将使用不同的方法来验证其凭证。
凭证和配置设置位于不同位置(例如,系统或用户环境变量、本地 AWS 配置文件)或在命令行上显式声明为参数。某些位置优先于其他位置。
IAM Identity Center 和 IAM 都提供了可用于 CLI 或 SDK 的访问密钥。IAM Identity Center 访问密钥是可以自动刷新的临时凭证,建议优先使用这种访问密钥,而不是与 IAM 用户关联的长期访问密钥。
要使用 CLI 或 SDK 来管理 AWS 账户,您可以在浏览器中使用 AWS CloudShell。如果您使用 CloudShell 来运行 CLI 或 SDK 命令,则必须首先登录控制台。访问 AWS 资源的权限取决于您登录控制台时使用的凭证。根据您的经验,您可能会发现使用 CLI 来管理 AWS 账户更高效。
对于应用程序开发,您可以将 CLI 或 SDK 下载到您的计算机上,然后从命令提示符或 Docker 窗口登录。在这种情况下,您可以在 CLI 脚本或 SDK 应用程序中配置身份验证和访问凭证。您可以通过不同的方式配置对资源的编程访问权限,具体取决于环境和可用的访问权限。
-
使用 AWS 服务进行本地代码身份验证时,推荐的方法是使用 IAM Identity Center 和 IAM Roles Anywhere
-
对 AWS 环境中运行的代码,推荐的身份验证方法是使用 IAM 角色或使用 IAM Identity Center 凭证。
使用 AWS 访问门户登录时,您可以从选择权限集的起始页获取短期凭证。这些凭证有明确的有效期,不会自动刷新。如果要使用此类凭证,请在登录 AWS 门户后,选择 AWS 账户,然后选择该权限集。选择命令行或编程访问权限以查看可用于以编程方式或通过 CLI 访问 AWS 资源的选项。有关这些方法的更多信息,请参阅《IAM Identity Center 用户指南》的 Getting and refreshing temporary credentials。这些凭证通常在应用程序开发期间用于快速测试代码。
我们建议在自动化访问您的 AWS 资源时使用会自动刷新的 IAM Identity Center 凭证。如果您已在 IAM Identity Center 中配置了用户和权限集,则可以使用 aws configure sso
命令来使用命令行向导,这将有助于识别可供您使用的凭证并将其存储在配置文件中。有关配置文件配置的更多信息,请参阅《AWS 命令行界面版本 2 用户指南》中的 使用 aws configure sso
向导配置您的配置文件。
注意
许多示例应用程序使用与 IAM 用户或根用户关联的长期访问密钥。在试用学习时,您只应在沙盒环境中使用长期凭证。查看 长期访问密钥的替代方案,并计划尽快将代码过渡到使用替代凭证,例如 IAM Identity Center 凭证或 IAM 角色。转换代码后,请删除访问密钥。
要了解有关配置 CLI 的更多信息,请参阅《AWS 命令行界面版本 2 用户指南》中的 安装或更新最新版本的 AWS CLI,以及《AWS 命令行界面用户指南》中的 身份验证和访问凭证
要了解有关配置 SDK 的更多信息,请参阅《AWS SDK 和工具参考指南》中的 IAM Identity Center authentication,以及《AWS SDK 和工具参考指南》中的 IAM Roles Anywhere。
使用 AWS SDK
AWS 提供的 SDK(软件开发工具包)包含各种编程语言和平台(Java、Python、Ruby、.NET、iOS、Android 等)的库和示例代码。开发工具包提供了可通过编程方式访问 IAM 和 AWS 的便捷方式。例如,软件开发工具包执行以下类似任务:加密签署请求、管理错误以及自动重试请求。有关 AWS 软件开发工具包的信息(包括如何下载及安装),请参阅适用于 Amazon Web Services 的工具
使用 IAM Query API
您可以使用 IAM Query API(可让您直接向服务发布 HTTPS 请求)以编程方式访问 IAM 和 AWS。当您使用 Query API 时,必须添加代码,才能使用您的凭证对请求进行数字化签名。有关更多信息,请参阅 使用 HTTP 查询请求调用 IAM API 和 IAM API 参考。