

# 我如何管理 IAM？
<a name="intro-managing-iam"></a>

在 Amazon 环境中管理 Amazon Identity and Access Management 涉及利用各种工具和界面。最常用的方法是通过 Amazon Web Services 管理控制台，这一基于 Web 的界面可让您执行各种 IAM 管理任务，从创建用户和角色到配置权限。

对于更熟悉命令行界面的用户，Amazon 提供了两组命令行工具 - Amazon Command Line Interface 和 Amazon Tools for Windows PowerShell。这些工具可让您直接从终端发出与 IAM 相关的命令，通常比导航控制台更高效。此外，Amazon CloudShell 允许您使用与控制台登录相关联的权限，直接从 Web 浏览器运行 CLI 或 SDK 命令。

除了控制台和命令行之外，Amazon 还提供适用于各种编程语言的软件开发工具包（SDK），使您能够将 IAM 管理功能直接集成到自己的应用程序中。或者，您可以使用 IAM Query API（可让您直接向服务发布 HTTPS 请求）以编程方式访问 IAM。利用这些不同的管理方法，您可以灵活地将 IAM 整合到现有的工作流程和过程中。

## 使用 Amazon Web Services 管理控制台
<a name="intro-managing-iam-section-1"></a>

Amazon 管理控制台是一款 Web 应用程序，其中包含并引用了多种用于管理 Amazon 资源的服务控制台。首次登录时，您会看到控制台主页。通过控制台主页可以访问各个服务控制台，此外还可以一站式访问执行 Amazon 相关任务所需的信息。登录控制台后可以使用哪些服务和应用程序，取决于您有权访问哪些 Amazon 资源。您可以通过代入角色、成为已获得相关权限的组成员或获得显式授权来获得资源权限。对于独立 Amazon 账户，根用户或 IAM 管理员负责配置对资源的访问权限。对于 Amazon Organizations，管理账户或委托管理员负责配置对资源的访问权限。

如果您计划让人使用 Amazon 管理控制台来管理 Amazon 资源，我们建议您为用户配置临时凭证，以遵循 [最佳安全实践](best-practices.md)。代入角色的 IAM 用户、联合主体和 IAM Identity Center 中的用户拥有临时凭证，而 IAM 用户和根用户拥有长期凭证。根用户凭证提供对 Amazon Web Services 账户的完全访问权限，而其他用户拥有的凭证提供对 IAM policy 授权的资源的访问权限。

不同类型的 Amazon Web Services 管理控制台 用户会有不同的登录体验。
+ IAM 用户和根用户通过 Amazon 主登录 URL（https://signin.aws.amazon.com）登录。登录之后，这些用户可以访问账户中已获得权限的资源。

  您必须使用根用户电子邮件地址和密码才能以根用户身份登录。

  您必须拥有 Amazon Web Services 账户号码或别名、IAM 用户名和 IAM 用户密码才能以 IAM 用户身份登录。

  我们建议您仅在需要长期凭证的特定情况（例如用于紧急访问）下使用账户中的 IAM 用户，并且仅将根用户用于 [需要根用户凭证的任务](id_root-user.md#root-user-tasks)。

  为方便起见，Amazon 登录页面使用浏览器 Cookie 记住 IAM 用户名和账户信息。下次用户转到 Amazon Web Services 管理控制台 中的任何页面时，控制台会使用 cookie 将用户重定向到账户登录页面。

  完成会话后应退出控制台，以防止之前的登录信息被重复使用。
+ IAM Identity Center 用户使用其组织特有的特定 Amazon Web Services 访问门户登录。登录后，这些用户可以选择要访问的账户或应用程序。如果选择访问某个账户，则可以选择要在管理会话中使用的权限集。
+ 在与 Amazon Web Services 账户关联的外部身份提供者中管理的 OIDC 和 SAML 联合主体使用自定义企业访问门户登录。用户可用的 Amazon 资源取决于其组织选择的策略。

**注意**  
可以要求根用户、IAM 用户和 IAM Identity Center 中的用户通过 Amazon 的多重身份验证（MFA）验证身份后才能获得对 Amazon 资源的访问权限，从而增强安全性。启用 MFA 后，您还必须有权访问 MFA 设备才能登录。

要详细了解不同用户如何登录管理控制台，请参阅《Amazon 登录用户指南》中的 [Sign in to the Amazon Management Console](https://docs.amazonaws.cn/signin/latest/userguide/console-sign-in-tutorials.html)**。

## Amazon 命令行工具
<a name="management-method-cli"></a>

您可以使用 Amazon 命令行工具，在系统的命令行中发出命令以执行 IAM 和 Amazon 任务。与控制台相比，使用命令行更快、更方便。如果要构建执行 Amazon 任务的脚本，命令行工具也会十分有用。

Amazon 提供两组命令行工具：[Amazon Command Line Interface](https://www.amazonaws.cn/cli/)（Amazon CLI）和 [Amazon Tools for Windows PowerShell](https://www.amazonaws.cn/powershell/)。有关安装和使用 Amazon CLI 的更多信息，请参阅 [Amazon Command Line Interface 用户指南](https://docs.amazonaws.cn/cli/latest/userguide/)。有关安装和使用 Tools for Windows PowerShell 的信息，请参阅 [Amazon Tools for PowerShell 用户指南](https://docs.amazonaws.cn/powershell/latest/userguide/)。

登录控制台后，您可以从浏览器使用 Amazon CloudShell 来运行 CLI 或 SDK 命令。访问 Amazon 资源的权限取决于您登录控制台时使用的凭证。根据您的经验，您可能会发现使用 CLI 来管理 Amazon Web Services 账户 更高效。有关更多信息，请参阅 [将 Amazon CloudShell 与 Amazon Identity and Access Management 结合使用](using-aws-with-cloudshell.md)。

### Amazon 命令行界面（CLI）和软件开发工具包（SDK）
<a name="management-method-cli-sdk"></a>

IAM Identity Center 和 IAM 用户在通过 CLI 或相关 SDK 中的应用程序编程接口（API）进行身份验证时，将使用不同的方法来验证其凭证。

凭证和配置设置位于不同位置（例如，系统或用户环境变量、本地 Amazon 配置文件）或在命令行上显式声明为参数。某些位置优先于其他位置。

IAM Identity Center 和 IAM 都提供了可用于 CLI 或 SDK 的访问密钥。IAM Identity Center 访问密钥是可以自动刷新的临时凭证，建议优先使用这种访问密钥，而不是与 IAM 用户关联的长期访问密钥。

要使用 CLI 或 SDK 来管理 Amazon Web Services 账户，您可以在浏览器中使用 Amazon CloudShell。如果您使用 CloudShell 来运行 CLI 或 SDK 命令，则必须首先登录控制台。访问 Amazon 资源的权限取决于您登录控制台时使用的凭证。根据您的经验，您可能会发现使用 CLI 来管理 Amazon Web Services 账户更高效。

对于应用程序开发，您可以将 CLI 或 SDK 下载到您的计算机上，然后从命令提示符或 Docker 窗口登录。在这种情况下，您可以在 CLI 脚本或 SDK 应用程序中配置身份验证和访问凭证。您可以通过不同的方式配置对资源的编程访问权限，具体取决于环境和可用的访问权限。
+ 使用 Amazon 服务进行本地代码身份验证时，推荐的方法是使用 IAM Identity Center 和 IAM Roles Anywhere
+ 对 Amazon 环境中运行的代码，推荐的身份验证方法是使用 IAM 角色或使用 IAM Identity Center 凭证。

使用 Amazon Web Services 访问门户登录时，您可以从选择权限集的起始页获取短期凭证。这些凭证有明确的有效期，不会自动刷新。如果要使用此类凭证，请在登录 Amazon 门户后，选择 Amazon Web Services 账户，然后选择该权限集。选择**命令行或编程访问权限**以查看可用于以编程方式或通过 CLI 访问 Amazon 资源的选项。有关这些方法的更多信息，请参阅《IAM Identity Center 用户指南》的 [Getting and refreshing temporary credentials](https://docs.amazonaws.cn/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials)**。这些凭证通常在应用程序开发期间用于快速测试代码。

我们建议在自动化访问您的 Amazon 资源时使用会自动刷新的 IAM Identity Center 凭证。如果您已在 IAM Identity Center 中配置了用户和权限集，则可以使用 `aws configure sso` 命令来使用命令行向导，这将有助于识别可供您使用的凭证并将其存储在配置文件中。有关配置文件配置的更多信息，请参阅《Amazon 命令行界面版本 2 用户指南》中的 [使用 `aws configure sso` 向导配置您的配置文件](https://docs.amazonaws.cn/cli/latest/userguide/sso-configure-profile-token.html#sso-configure-profile-token-auto-sso)**。

**注意**  
许多示例应用程序使用与 IAM 用户或根用户关联的长期访问密钥。在试用学习时，您只应在沙盒环境中使用长期凭证。查看 [长期访问密钥的替代方案](security-creds-programmatic-access.md#security-creds-alternatives-to-long-term-access-keys)，并计划尽快将代码过渡到使用替代凭证，例如 IAM Identity Center 凭证或 IAM 角色。转换代码后，请删除访问密钥。

要了解有关配置 CLI 的更多信息，请参阅《Amazon 命令行界面版本 2 用户指南》中的 [安装或更新最新版本的 Amazon CLI](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)**，以及《Amazon 命令行界面用户指南》中的 [身份验证和访问凭证](https://docs.amazonaws.cn/cli/latest/userguide/cli-chap-authentication.html)**

要了解有关配置 SDK 的更多信息，请参阅《Amazon SDK 和工具参考指南》中的 [IAM Identity Center authentication](https://docs.amazonaws.cn/sdkref/latest/guide/access-sso.html)**，以及《Amazon SDK 和工具参考指南》中的 [IAM Roles Anywhere](https://docs.amazonaws.cn/sdkref/latest/guide/access-rolesanywhere.html)**。

## 使用 Amazon SDK
<a name="intro-managing-iam-section-2"></a>

Amazon 提供的 SDK（软件开发工具包）包含各种编程语言和平台（Java、Python、Ruby、.NET、iOS、Android 等）的库和示例代码。开发工具包提供了可通过编程方式访问 IAM 和 Amazon 的便捷方式。例如，软件开发工具包执行以下类似任务：加密签署请求、管理错误以及自动重试请求。有关 Amazon 软件开发工具包的信息（包括如何下载及安装），请参阅[适用于 Amazon Web Services 的工具](https://www.amazonaws.cn/tools/)页面。

## 使用 IAM Query API
<a name="intro-managing-iam-section-3"></a>

您可以使用 IAM Query API（可让您直接向服务发布 HTTPS 请求）以编程方式访问 IAM 和 Amazon。当您使用 Query API 时，必须添加代码，才能使用您的凭证对请求进行数字化签名。有关更多信息，请参阅 [使用 HTTP 查询请求调用 IAM API](programming.md) 和 [IAM API 参考](https://docs.amazonaws.cn/IAM/latest/APIReference/)。