将 AWS CloudShell 与 AWS Identity and Access Management 结合使用 - AWS Identity and Access Management

将 AWS CloudShell 与 AWS Identity and Access Management 结合使用

AWS CloudShell 是一个已经事先完成身份验证的浏览器式外壳,您可以直接从AWS Management Console启动它。您可以使用自己惯用的 Shell(Bash、PowerShell 或 Z shell),针对 AWS 服务(包括 AWS Identity and Access Management)运行 AWS CLI 命令。您无需下载或安装命令行工具,即可完成此操作。

您可以 从 AWS Management Console 启动 AWS CloudShell,用于登录控制台的 AWS 凭证将在新的 Shell 会话中自动可用。通过这种对 AWS CloudShell 用户进行预身份验证,使您可在使用 AWS CLI 版本 2(在 Shell 的计算环境中预装)与 IAM 等 AWS 服务进行交互时跳过凭证配置步骤。

获取 AWS CloudShell 的 IAM 权限

使用 AWS Identity and Access Management 提供的访问管理资源,管理员可以向 IAM 用户授予权限,使其能够访问 AWS CloudShell 并使用环境的功能。

管理员要向用户授予访问权限,最快捷的方法是通过 AWS 托管式策略。AWS 托管式策略 是由 AWS 创建和管理的独立策略。可以将以下适用于 CloudShell 的 AWS 托管式策略附加到 IAM 身份:

  • AWSCloudShellFullAccess:授予使用 AWS CloudShell 的权限,并具有对所有功能的完全访问权限。

如果要限制 IAM 用户可以使用 AWS CloudShell 执行的操作范围,则可以 AWSCloudShellFullAccess 托管式策略为模板创建使用的定义策略。要详细了解如何限制用户可在 CloudShell 中使用的操作,请参阅《AWS CloudShell 用户指南》中的 使用 IAM policy 管理 AWS CloudShell 访问权限和使用情况

使用 AWS CloudShell 与 IAM 交互

从 AWS Management Console 启动 AWS CloudShell 后,您可以立即开始使用命令行界面与 IAM 进行交互。

注意

在 AWS CloudShell 中使用 AWS CLI 时,无需下载或安装任何其他资源。此外,由于已经在 Shell 中进行了身份验证,因此在进行调用之前无需配置凭证。

使用 AWS CloudShell 创建 IAM 组并将 IAM 用户添加到该组

以下示例使用 CloudShell 创建了一个 IAM 组,向该组添加了一个 IAM 用户,然后验证命令是否成功。

  1. 在 AWS Management Console 中,您可以选择导航栏中提供的下列可用选项来启动 CloudShell:

    • 选择 CloudShell 图标。

    • 首先在搜索框中键入“cloudshell”,然后选择 CloudShell 选项。

  2. 要创建 IAM 组,请在 CloudShell 命令行中输入以下命令。在此例中,我们将该组命名为 east_coast

    aws iam create-group --group-name east_coast

    如果调用成功,命令行将显示来自服务的响应,输出与以下类似:

    { "Group": { "Path": "/", "GroupName": "east_coast", "GroupId": "AGPAYBDBW4JBY3EXAMPLE", "Arn": "arn:aws:iam::111122223333:group/east_coast", "CreateDate": "2023-09-11T21:02:21+00:00" } }
  3. 要将用户添加到您创建的组,请使用以下命令,并指定组名和用户名。在此例中,我们将该组命名为 east_coast,将用户命名为 johndoe

    aws iam add-user-to-group --group-name east_coast --user-name johndoe
  4. 要验证用户是否在该组中,请使用以下命令并指定组名。在此例中,我们继续使用组 east_coast

    aws iam get-group --group-name east_coast

    如果调用成功,命令行将显示来自服务的响应,输出与以下类似:

    { "Users": [ { "Path": "/", "UserName": "johndoe", "UserId": "AIDAYBDBW4JBXGEXAMPLE", "Arn": "arn:aws:iam::552108220995:user/johndoe", "CreateDate": "2023-09-11T20:43:14+00:00", "PasswordLastUsed": "2023-09-11T20:59:14+00:00" } ], "Group": { "Path": "/", "GroupName": "east_coast", "GroupId": "AGPAYBDBW4JBY3EXAMPLE", "Arn": "arn:aws:iam::111122223333:group/east_coast", "CreateDate": "2023-09-11T21:02:21+00:00" } }