

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理 OpsWorks 堆栈用户权限
<a name="opsworks-security-users"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

最佳做法是，将 OpsWorks Stacks 用户限制为使用一组指定的操作或堆栈资源。您可以通过两种方式控制 OpsWorks Stacks 用户权限：使用 OpsWorks 堆栈**权限**页面和应用适当的 IAM 策略。

*“ OpsWorks **权限”** 页面（或等效的 CLI 或 API 操作）允许您通过为每个用户分配多个权限级别中的一个，在每个堆栈的基础上控制多用户环境中的用户权限。*每个级别均为特定堆栈资源的一组标准操作授予权限。您可以使用 **Permissions** 页面来控制：
+ 谁可以访问每个堆栈。
+ 每个用户可以在每个堆栈上执行哪些操作。

  例如，您可以允许一些用户只能查看堆栈，而其他用户可以部署应用程序、添加实例等等。
+ 谁可以管理每个堆栈。

  您可以将每个堆栈的管理工作委托给一个或多个指定用户。
+ 谁在每个堆栈的亚马逊实例上拥有用户级 SSH 访问权限和 sudo 权限 (Linux) 或 RDP 访问权限和管理员权限 (Windows)。 EC2 

  您可以随时针对每个用户单独授予或删除这些权限。

**重要**  
拒绝 SSH/RDP 访问并不一定会阻止用户登录实例。如果您为实例指定 Amazon EC2 密钥对，则任何拥有相应私钥的用户都可以登录或使用该密钥检索 Windows 管理员密码。有关更多信息，请参阅 [管理 SSH 访问](security-ssh-access.md)。

您可以使用 [IAM 控制台](https://console.aws.amazon.com/iam)、CLI 或 API，将策略附加至针对各种 OpsWorks Stacks 资源和操作授予显式权限的用户。
+ 使用 IAM policy 指定权限比使用权限级别更灵活。
+ 您可以设置 [IAM 身份（用户、用户组和角色）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)，向用户和用户组等 IAM 身份授予权限，或者定义可以与联合用户关联的[角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。
+ IAM 策略是授予某些关键 OpsWorks 堆栈操作权限的唯一方法。

  例如，您必须使用 IAM; 授予针对 `opsworks:CreateStack` 和 `opsworks:CloneStack` 的权限，这两个代码分别用于创建和克隆堆栈。

虽然无法在控制台中明确导入联合用户，但联合用户可以通过选择 OpsWorks Stacks 控制台右上角的 **“我的设置”**，然后选择右上角的 “**用户**” 来隐式创建用户个人资料。在 **用户** 页面上，联合身份用户 (其账户是通过使用 API 或 CLI 创建的，或通过控制台隐式创建的) 可像非联合身份用户一样管理其账户。

这两种方法并不相互排斥，有时将这两种方法结合使用非常有用；随后 OpsWorks Stacks 会评估两组权限。例如，假设您想允许用户添加或删除实例，但不允许其添加或删除层。 OpsWorks Stacks 的所有权限级别均未授予该特定权限集。不过，您可以使用 **权限** 页面授予用户 **管理** 权限级别，这允许他们执行大部分堆栈操作，然后附加可拒绝添加或删除层的权限的 IAM policy。有关更多信息，请参阅[使用策略控制访问 AWS 资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)。

以下是管理用户权限的典型模型。在每种情况下，均假定读者 (您) 为管理用户。

1. 使用 [IAM 控制台](https://console.aws.amazon.com/iam)将 AWSOpsWorks\$1FullAccess 策略应用于一个或多个管理用户。

1. 利用不授予任何 OpsWorks Stacks 权限的策略为每个非管理用户创建一个用户。

   如果用户只需要访问 OpsWorks 堆栈，则可能根本不需要应用策略。相反，您可以通过 “ OpsWorks 堆栈权限” 页面管理他们的**权限**。

1. 使用 “ OpsWorks 堆栈**用户**” 页面将非管理用户导入堆栈。 OpsWorks 

1. 对于每个堆栈，请使用堆栈的 **Permissions** 页面向每个用户分配权限级别。

1. 根据需要，通过附加适当配置的 IAM policy 自定义用户的权限级别。

有关管理用户的更多建议，请参阅 [最佳实践：管理权限](best-practices-permissions.md)。

有关 IAM 最佳实践的更多信息，请参阅*IAM 用户指南*中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

**Topics**
+ [管理 OpsWorks 堆栈用户](opsworks-security-users-manage.md)
+ [向 OpsWorks 堆栈用户授予每个堆栈的权限](opsworks-security-users-console.md)
+ [通过附加 IAM 策略管理 OpsWorks 堆栈权限](opsworks-security-users-policy.md)
+ [示例策略](opsworks-security-users-examples.md)
+ [OpsWorks 堆栈权限级别](opsworks-security-users-standard.md)

# 管理 OpsWorks 堆栈用户
<a name="opsworks-security-users-manage"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

必须先为每个人创建一个用户，然后才能将用户导入 OpsWorks Stacks 并向他们授予权限。要创建 IAM 用户，首先要以已被授予 IAMFull访问策略中定义的权限的用户 AWS 身份登录。然后，您可以使用 IAM 控制台为需要访问 OpsWorks 堆栈的所有人[创建 IAM 用户](opsworks-security-users-create-user.md)。然后，您可以将这些用户导入 OpsWorks Stacks 并按如下方式授予用户权限：

**普通 OpsWorks 堆栈用户**  
常规用户不需要附加策略。如果他们有 Stacks 权限，则通常不包含任何 OpsWorks Stacks 权限。取而代之的是，使用 OpsWorks Stacks **权限**页面为普通用户分配以下权限级别之一。 stack-by-stack  
+ **Show** 权限允许用户查看堆栈，但不允许执行任何操作。
+ **Deploy** 权限包括 **Show** 权限，还允许用户部署和更新应用程序。
+ **管理**权限包括**部署**权限，还允许用户执行堆栈管理操作，例如添加层或实例，使用**权限页面设置用户权限**，以及启用自己的权限 SSH/RDP 和 sudo/admin 权限。
+ **Deny** 权限拒绝访问堆栈。
如果这些权限级别不太适合特定用户，则可以通过附加 IAM policy 来自定义用户的权限。例如，您可能希望使用 “ OpsWorks 堆栈**权限**” 页面为用户分配 “**管理**” 权限级别，这会授予他们执行所有堆栈管理操作的权限，但不允许他们创建或克隆堆栈。然后，您可以附加一个策略以限制这些权限 (通过拒绝它们添加或删除层)，或扩充这些权限 (通过允许它们创建或克隆堆栈)。有关更多信息，请参阅 [通过附加 IAM 策略管理 OpsWorks 堆栈权限附加 IAM policy](opsworks-security-users-policy.md)。

**OpsWorks 堆栈管理用户**  
[管理用户是账户所有者或拥有策略定义权限的 IAM 用户。AWSOpsWorks\$1FullAccess ](opsworks-security-users-examples.md#opsworks-security-users-examples-admin)此策略除了包括授予 **Manage** 用户的权限之外，还包括无法通过 **Permissions** 页面授予的操作权限，例如以下权限：  
+ 将用户导入 OpsWorks 堆栈
+ 创建和克隆堆栈
有关完整策略的信息，请参阅[示例策略](opsworks-security-users-examples.md)。有关只能通过附加 IAM policy 来授予用户的权限的详细列表，请参阅 [OpsWorks 堆栈权限级别权限级别](opsworks-security-users-standard.md)。

**Topics**
+ [用户和区域](#UsersandRegions)
+ [创建 OpsWorks Stacks 管理用户](opsworks-security-users-manage-admin.md)
+ [为 OpsWorks 堆栈创建 IAM 用户](opsworks-security-users-create-user.md)
+ [将用户导入 OpsWorks 堆栈](opsworks-security-users-manage-import.md)
+ [编辑 OpsWorks 堆栈用户设置](opsworks-security-users-manage-edit.md)

## 用户和区域
<a name="UsersandRegions"></a>

OpsWorks 堆栈用户可在创建堆栈的区域终端节点中使用。您可以在以下任一区域中创建用户。
+ 美国东部（俄亥俄州）区域
+ 美国东部（弗吉尼亚州北部）区域
+ 美国西部（俄勒冈州）区域
+ 美国西部（北加利福尼亚）区域
+ 加拿大（中部）区域（仅限 API；未在 AWS 管理控制台
+ 亚太地区（孟买）区域
+ 亚太地区（新加坡）区域
+ 亚太地区（悉尼）区域
+ 亚太地区（东京）区域
+ 亚太地区（首尔）区域
+ 欧洲地区（法兰克福）区域
+ 欧洲地区（爱尔兰）区域
+ 欧洲地区（伦敦）区域
+ 欧洲地区（巴黎）区域
+ 南美洲（圣保罗）区域

将用户导入 OpsWorks Stacks 时，将其导入其中一个区域终端节点；如果您希望用户在多个区域可用，则必须将用户导入该区域。您也可以将 OpsWorks Stacks 用户从一个区域导入到另一个区域；如果您将用户导入到已有同名用户的区域，则导入的用户将替换现有用户。有关导入用户的更多信息，请参阅[导入用户](opsworks-security-users-manage-import.md)。

# 创建 OpsWorks Stacks 管理用户
<a name="opsworks-security-users-manage-admin"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

您可以通过向用户添加策略来创建 OpsWorks Stacks 管理用户，该`AWSOpsWorks_FullAccess`策略授予该用户 OpsWorks Stacks 完全访问权限。有关创建管理用户的更多信息，请参阅[创建管理用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin)。

**注意**  
该 AWSOpsWorks\$1FullAccess 策略允许用户创建和管理 OpsWorks Stacks 堆栈，但用户无法为堆栈创建 IAM 服务角色；他们必须使用现有角色。如[管理权限](opsworks-security-users-examples.md#opsworks-security-users-examples-admin)中所述，创建堆栈的第一个用户必须拥有额外的 IAM; 权限。当该用户创建第一个堆栈时， OpsWorks Stacks 会创建一个具有所需权限的 IAM 服务角色。此后，拥有 `opsworks:CreateStack` 权限的任何用户均可使用该角色创建其他堆栈。有关更多信息，请参阅 [允许 OpsWorks Stacks 代表你行事](opsworks-security-servicerole.md)。

创建用户时，您可以根据需要添加其他客户管理型策略来微调用户的权限。例如，您可能希望管理用户能够创建或删除堆栈，但不能导入新用户。有关更多信息，请参阅 [通过附加 IAM 策略管理 OpsWorks 堆栈权限附加 IAM policy](opsworks-security-users-policy.md)。

如果您有多个管理用户，则无需为每个用户单独设置权限，而是可以将 AWSOpsWorks\$1FullAccess 策略添加到 IAM 群组并将用户添加到该群组。

有关创建组的信息，请参阅[创建 IAM 用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html)。创建群组时，添加**AWSOpsWorks\$1FullAccess**策略。您也可以添加**AdministratorAccess**策略，其中包括**AWSOpsWorks\$1FullAccess**权限。

有关向现有群组添加权限的信息，请参阅[将策略附加到 IAM 用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_attach-policy.html)。

# 为 OpsWorks 堆栈创建 IAM 用户
<a name="opsworks-security-users-create-user"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

在将 IAM 用户导入 OpsWorks 堆栈之前，您需要先创建它们。可以使用 [IAM 控制台](https://console.aws.amazon.com/iam/)、命令行或 API 来执行此操作。有关完整说明，请参阅[在您的 AWS 账户中创建 IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)。

请注意，与[管理用户](opsworks-security-users-manage-admin.md)不同的是，您不需要附加策略即可定义权限。如[中所述，您可以在 OpsWorks 将用户导入到 ](opsworks-security-users-manage-import.md) Stacks[管理用户权限](opsworks-security-users.md) 后设置权限。

有关创建 IAM; 用户和组的更多信息，请参阅 [IAM 入门](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)。

# 将用户导入 OpsWorks 堆栈
<a name="opsworks-security-users-manage-import"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

管理用户可以将用户导入 OpsWorks Stacks；他们也可以将 OpsWorks Stacks 用户从一个区域端点导入到另一个区域端点。将用户导入 OpsWorks Stacks 时，会将他们导入到其中一个 OpsWorks Stacks 区域终端节点。如果您希望用户在多个区域中可用，则必须将该用户导入到该区域中。

虽然无法在控制台中明确导入联合用户，但联合用户可以通过选择 OpsWorks Stacks 控制台右上角的 **“我的设置”**，然后选择右上角的 “**用户**” 来隐式创建用户个人资料。在 **用户** 页面上，联合身份用户 (其账户是通过使用 API 或 CLI 创建的，或通过控制台隐式创建的) 可像非联合身份用户一样管理其账户。

**将用户导入 OpsWorks 堆栈**

1. 以管理员用户或账户所有者的身份登录 OpsWorks Stacks。

1. 在右上角选择 **Users**，以打开 **Users** 页面。  
![\[显示 us-east-1 用户的用户页面\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/permissions_users_page.png)

1. 选择 “**将 IAM 用户导入 < *region name* >**” 以显示可用但尚未导入的用户。  
![\[“Users (用户)”页面上的导入命令\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/permissions_import.png)

1. 选中 **Select all** 复选框，或选择一个或多个单独用户。完成后，选择 “**导入到**” OpsWorks。
**注意**  
将用户导入 OpsWorks Stacks 后，如果您使用 IAM 控制台或 API 从您的账户中删除该用户，则该用户不会自动失去您通过 OpsWorks Stacks 授予的 SSH 访问权限。您还必须打开 “用户” 页面，然后在**用户**的 “**操作**” 列中选择**删除，将用户从 OpsWorks Stacks 中删除**。

**将 OpsWorks Stacks 用户从一个区域导入到另一个区域**

OpsWorks 堆栈用户可在创建堆栈的区域终端节点中使用。您可以在[用户和区域](opsworks-security-users-manage.md#UsersandRegions)中所显示的区域中创建用户。

您可以将 OpsWorks Stacks 用户从一个区域导入到当前筛选**用户**列表的区域。如果您将用户导入到已有具有相同名称的用户的区域中，则导入的用户将替换现有用户。

1. 以管理员用户或账户所有者的身份登录 OpsWorks Stacks。

1. 在右上角选择 **Users**，以打开 **Users** 页面。如果您在多个区域中有 OpsWorks Stacks 用户，请使用**筛选**控件筛选要将用户导入到的区域。  
![\[显示 us-east-1 用户的用户页面\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/permissions_users_page.png)

1. 选择 “**从其他区域导入 OpsWorks 堆栈用户” 到 < *current region* >**。  
![\[显示 us-west-2 用户的用户页面\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/permissions_import_otherregion.png)

1. 选择要从中导入 OpsWorks Stacks 用户的区域。

1. 选择一个或多个要导入的用户，或选择所有用户，然后选择 **Import to this region**。等待 OpsWorks Stacks 在用户列表中显示导入的**用户**。

## Unix IDs 和用户在 OpsWorks 堆栈外创建
<a name="w2ab1c14c67c15c35c17c17"></a>

OpsWorks 为 OpsWorks 堆栈实例上的用户分配介于 2000 到 4000 之间 Unix ID (UID) 的值。由于 OpsWorks 保留了 2000-4000 的范围 UIDs，因此您在之外创建的用户 OpsWorks （例如，通过使用食谱食谱或 OpsWorks 从 IAM 导入用户）可以 UIDs 让其他用户使用 OpsWorks Stacks 覆盖这些用户。这可能会导致您在 OpsWorks 堆栈之外创建的用户不会出现在数据包搜索结果中，或者被排除在 OpsWorks Stacks 内置`sync_remote_users`操作之外。

外部进程也可以创建 OpsWorks 堆栈可以覆盖的用户。 UIDs 例如，某些操作系统软件包可以创建用户，这是安装后流程的一部分。当你或软件进程在基于 Linux 的操作系统上创建用户而不明确指定 UID（默认值）时，Stacks 分配的 UID 为 \$1 1。 OpsWorks *<highest existing OpsWorks UID>*

最佳做法是，创建 OpsWorks Stacks 用户并在 OpsWorks Stacks 控制台中或使用 SDK 管理他们的访问权限。 AWS CLI AWS 如果您确实在以外的 OpsWorks Stacks 实例上创建用户 OpsWorks，请使用大于 4000 的*UnixID*值。

# 编辑 OpsWorks 堆栈用户设置
<a name="opsworks-security-users-manage-edit"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

导入用户后，您可以按如下所示编辑其设置：

**编辑用户设置**

1. 在 **Users** 页面上，选择用户的 **Actions** 列中的 **edit**。

1. 您可以指定以下设置。  
**Self Management**  
选择 “**是**” 以允许用户使用该 MySettings 页面来指定他或她的个人 SSH 密钥。  
您还可以通过向 IAM 身份添加 IAM 策略来启用自我管理，该策略授予[DescribeMyUserProfile](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_DescribeMyUserProfile.html)和[UpdateMyUserProfile](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateMyUserProfile.html)操作的权限。  
**Public SSH key**  
(可选) 输入用户的公有 SSH 密钥。此密钥将显示在用户的 **My Settings** 页面上。如果您启用自我管理，则用户可以编辑 **My Settings** 并指定自己的密钥。有关更多信息，请参阅 [注册用户的公有 SSH 密钥](security-settingsshkey.md)。  
OpsWorks Stacks 在所有 Linux 实例上安装此密钥；用户可以使用关联的私钥登录。有关更多信息，请参阅 [使用 SSH 登录](workinginstances-ssh.md)。不能将此密钥用于 Windows 堆栈。  
**权限**  
(可选) 在一个位置设置用户对每个堆栈的权限级别，而不是通过使用每个堆栈的 **Permissions** 页面来单独设置它们。有关权限级别的更多信息，请参阅[授予每堆栈权限](opsworks-security-users-console.md)。  
![\[User details page showing name, ARN, SSH settings, and permission levels for various stacks.\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/permissions_edit_user.png)

# 向 OpsWorks 堆栈用户授予每个堆栈的权限
<a name="opsworks-security-users-console"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

管理 OpsWorks Stacks 用户权限的最简单方法是使用堆栈的 “**权限**” 页面。每个堆栈均有其自己的页面，该页面可授予针对该堆栈的权限。

您必须以管理员用户或者 **Manage** 用户的身份登录，才能修改任何权限设置。该列表仅显示那些已导入 OpsWorks Stacks 的用户。有关如何创建和导入用户的信息，请参阅[管理用户](opsworks-security-users-manage.md)。

默认权限级别为“IAM Policies Only”，该级别仅向用户授予其附加 IAM policy 中的那些权限。
+ 当您从 IAM; 或另一个区域导入用户时，将使用 **IAM Policies Only** 权限级别将用户添加到所有现有堆栈的列表中。
+ 默认情况下，您刚从其他区域导入的用户无法访问目标区域中的堆栈。如果从其他区域导入用户，要让他们管理目标区域中的堆栈，则在导入用户之后，必须为这些堆栈分配权限。
+ 当您创建新堆栈时，会使用 **IAM Policies Only** 权限级别将所有当前用户添加到列表中。

**Topics**
+ [设置用户的权限](#opsworks-security-users-console-set)
+ [查看您的权限](#opsworks-security-users-console-viewing)
+ [使用 IAM; 条件键来验证临时凭证](#w2ab1c14c67c15c37c21)

## 设置用户的权限
<a name="opsworks-security-users-console-set"></a>

**设置用户的权限**

1. 在导航窗格中，选择 **Permissions (权限)**。

1. 在 **Permissions (权限)** 页面上，选择 **Edit (编辑)**。

1. 更改 **Permission level (权限级别)** 和 **Instance access (实例访问)** 设置：
   + 使用 **Permissions level** 设置为每个用户分配其中一个标准权限级别，从而确定用户是否可访问此堆栈以及用户可以执行哪些操作。如果用户拥有 IAM 策略， OpsWorks Stacks 会评估这两组权限。有关示例，请参阅[示例策略](opsworks-security-users-examples.md)。
   + **Instance access** **SSH/RDP** 设置可指定用户是否对堆栈的实例具有 SSH (Linux) 或 RDP (Windows) 访问权。

     如果您授予 **SSH/RDP** 访问权，则可以选择 **sudo/admin**，这样可授予用户对堆栈实例的 sudo (Linux) 或管理 (Windows) 特权。  
![\[利用“Permissions”页面管理用户。\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/permissions-edit.png)

您可以将每个用户分配到以下某个权限级别。有关每个级别所允许的操作列表，请参阅[OpsWorks 堆栈权限级别权限级别](opsworks-security-users-standard.md)。

**拒绝**  
用户无法在堆栈上执行任何 OpsWorks Stacks 操作，即使他们拥有授予 OpsWorks Stacks 完全访问权限的 IAM 策略。例如，您可以利用这一点来拒绝某些用户访问堆栈以获取未发布的产品。

**IAM Policies Only**  
默认级别，该级别分配给所有新导入的用户，以及新创建堆栈的所有用户。用户的权限由其所附加的 IAM policy 确定。如果用户没有 IAM 策略，或者他们的策略没有明确的 OpsWorks 堆栈权限，则他们无法访问堆栈。通常会向管理用户分配该级别，因为它们的附加 IAM 策略已经授予完全访问权限。

**Show (显式)**  
用户可查看堆栈，但不能执行任何操作。例如，管理员可能希望监控账户的堆栈，但不需要以任何方式部署应用程序或修改堆栈。

**部署**  
包括 **Show** 权限，并允许用户部署应用程序。例如，应用程序开发人员可能需要将更新部署到堆栈的实例，但不能向堆栈添加层或实例。

**Manage**  
包括 **Deploy** 权限，并允许用户执行各种堆栈管理工作，其中包括：  
+ 添加或删除层和实例。
+ 使用堆栈的 **Permissions** 页面将权限级别分配给用户。
+ 注册或取消注册资源。
例如，每个堆栈均可能具有指定的管理员，负责确保堆栈具有适当数量和类型的实例、处理软件包和操作系统更新等等。  
Manage 级别不允许用户创建或克隆堆栈。必须由附加的 IAM policy 授予这些权限。有关示例，请参阅[Manage 权限](opsworks-security-users-examples.md#opsworks-security-users-examples-manage)。

如果用户还有 IAM 策略， OpsWorks Stacks 会评估这两组权限。这将允许您为用户分配权限级别，然后将策略附加到用户以限制或扩充相应级别允许的操作。例如，您可以附加一种策略，该策略允许 **Manage** 用户创建或克隆堆栈，或拒绝该用户注册或取消注册资源。要获取此类策略的一些示例，请参阅[示例策略](opsworks-security-users-examples.md)。

**注意**  
如果用户的策略允许其他操作，则可能显示结果以覆盖 **Permissions** 页面设置。例如，如果用户拥有允许该[CreateLayer](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateLayer.html)操作的策略，但您使用 “**权限**” 页面来指定**部署**权限，则仍允许该用户创建图层。此规则的例外是 “**拒绝**” 选项，该选项甚至拒绝使用 AWSOpsWorks\$1FullAccess 策略的用户访问堆栈。有关更多信息，请参阅[使用策略控制对 AWS 资源的访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)。

## 查看您的权限
<a name="opsworks-security-users-console-viewing"></a>

如果启用了[自我管理](opsworks-security-users-manage-edit.md)，则用户通过选择右上角的 **My Settings**，可查看其针对每个堆栈的权限级别汇总。如果用户的策略授予[DescribeMyUserProfile](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_DescribeMyUserProfile.html)和[UpdateMyUserProfile](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_UpdateMyUserProfile.html)操作的权限，则用户也可以访问 “**我的设置”**。

## 使用 IAM; 条件键来验证临时凭证
<a name="w2ab1c14c67c15c37c21"></a>

OpsWorks Stacks 具有内置的授权层，支持其他授权案例（例如简化个人用户对堆栈的只读或读写访问权限的管理）。此授权层需要使用临时凭证。因此，如 [IAM 文档的 JSON 策略元素参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_Null)所述，您不能使用 `aws:TokenIssueTime` 条件来验证用户是否正在使用长期凭证，或阻止使用临时凭证的用户执行相应操作。

# 通过附加 IAM 策略管理 OpsWorks 堆栈权限
<a name="opsworks-security-users-policy"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

您可以通过附加 IAM 策略来指定用户的 OpsWorks 堆栈权限。如下这些权限需要附加策略：
+ 管理用户权限，例如导入用户。
+ 针对某些操作的权限，例如创建或克隆堆栈。

有关需要附加策略的完整操作列表，请参阅[OpsWorks 堆栈权限级别权限级别](opsworks-security-users-standard.md)。

您还可以使用策略来自定义通过 **Permissions** 页面授予的权限级别。本节简要概述了如何将 IAM 策略应用于用户以指定 OpsWorks Stacks 权限。有关更多信息，[请参阅 AWS 资源访问管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

IAM policy 是一个 JSON 对象，其中包含一个或多个*语句*。每个语句元素都有一个权限列表，这些权限拥有它们自己的三个基本元素：

**Action**  
权限所影响的操作。您可以将 OpsWorks Stacks 操作指定为。`opsworks:action`可将 `Action` 设置为诸如 `opsworks:CreateStack` 等特定操作，该操作可指定是否允许用户调用 [https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateStack.html](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateStack.html)。您还可以使用通配符来指定多组操作。例如，`opsworks:Create*` 可指定所有创建操作。有关 OpsWorks 堆栈操作的完整列表，请参阅 Stack [OpsWorks s API](https://docs.aws.amazon.com/opsworks/latest/APIReference/Welcome.html) 参考。

**效果**  
是允许还是拒绝指定的操作。

**资源**  
权限影响的 AWS 资源。 OpsWorks 堆栈有一种资源类型，即堆栈。要指定特定堆栈资源的权限，请将 `Resource` 设置为堆栈的 ARN，其格式如下：`arn:aws:opsworks:region:account_id:stack/stack_id/`。  
还可使用通配符。例如，将 `Resource` 设置为 `*` 可授予针对每种资源的权限。

例如，以下策略会拒绝用户停止 ID 为 `2860-2f18b4cb-4de5-4429-a149-ff7da9f0d8ee` 的堆栈上的实例。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": "opsworks:StopInstance",
      "Effect": "Deny",
      "Resource": "arn:aws:opsworks:*:*:stack/2f18b4cb-4de5-4429-a149-ff7da9f0d8ee/"
    }
  ]
}
```

------

有关为 IAM 用户添加权限的信息，请参阅 [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

有关如何创建或修改 IAM 策略的更多信息，请参阅[策略和 IAM 中的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。有关 OpsWorks 堆栈策略的一些示例，请参阅[示例策略](opsworks-security-users-examples.md)。

# 示例策略
<a name="opsworks-security-users-examples"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

本节介绍可应用于 OpsWorks Stacks 用户的 IAM 策略示例。
+ [管理权限](#opsworks-security-users-examples-admin) 介绍了可用于向管理用户授予权限的两个策略。
+ [Manage 权限](#opsworks-security-users-examples-manage)和[Deploy 权限](#opsworks-security-users-examples-deploy)介绍了可附加到用户以扩充或限制 Manage 和 Deploy 权限级别的策略示例。

  OpsWorks Stacks 通过评估 IAM 策略授予的权限以及 “权限” 页面授予的权限来确定用户的**权限**。有关更多信息，请参阅[使用策略控制对 AWS 资源的访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)。有关 **Permissions** 页面权限的更多信息，请参阅[OpsWorks 堆栈权限级别权限级别](opsworks-security-users-standard.md)。

## 管理权限
<a name="opsworks-security-users-examples-admin"></a>

使用 IAM 控制台访问 AWSOpsWorks\$1FullAccess 策略 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)，将此策略附加到用户以授予他们执行所有 OpsWorks Stacks 操作的权限。除其他权限外，还需要 IAM 权限，以允许管理用户导入用户。

您必须创建一个 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)，允许 OpsWorks Stacks 代表您访问其他 AWS 资源，例如 Amazon EC2 实例。通常，您可以通过让管理用户创建第一个堆栈，然后让 OpsWorks Stacks 为您创建角色来处理此任务。然后，您可以针对所有后续堆栈使用该角色。有关更多信息，请参阅 [允许 OpsWorks Stacks 代表你行事](opsworks-security-servicerole.md)。

创建第一个堆栈的管理用户必须拥有 AWSOpsWorks\$1FullAccess 策略中未包含的某些 IAM 操作的权限。为策略中的 `Actions` 节添加以下权限。要获得正确的 JSON 语法，请务必在操作之间添加逗号，并删除操作列表末尾的尾部逗号。

```
"iam:PutRolePolicy",
"iam:AddRoleToInstanceProfile",
"iam:CreateInstanceProfile",
"iam:CreateRole"
```

## Manage 权限
<a name="opsworks-security-users-examples-manage"></a>

**Manage** 权限级别允许用户执行各种堆栈管理操作，包括添加或删除层。本主题介绍了几种策略，您可以使用这些策略 **Manage** 用户，以扩充或限制标准权限。

拒绝 **Manage** 用户添加或删除层  
您可以通过使用以下 IAM policy，将 **Manage** 权限级别限制为允许用户执行除添加或删除层之外的所有 **Manage** 操作。将*region**account\$1id*、和*stack\$1id*，替换为适合您的配置的值。

允许 **Manage** 用户创建或克隆堆栈  
**Manage** 权限级别不允许用户创建或克隆堆栈。您可以通过附加以下 IAM policy 来更改 **Manage** 权限，从而允许用户创建或克隆堆栈。用适合您的配置*account\$1id*的值替换*region*和。

拒绝 Manage 用户注册或取消注册资源  
**管理**权限级别允许用户在堆栈中[注册和取消注册 Amazon EBS 和 Elastic IP 地址资源](resources-reg.md)。您可以通过附加以下策略来限制 **Manage** 权限，从而允许用户执行除注册资源之外的所有 **Manage** 操作。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "opsworks:RegisterVolume",
        "opsworks:RegisterElasticIp"
      ],
      "Resource": "*"
    }
  ]
}
```

允许 **Manage** 用户导入用户  
**管理**权限级别不允许用户将用户导入 OpsWorks 堆栈。您可以通过附加以下 IAM policy 来扩充 **Manage** 权限，从而允许用户导入和删除用户。用适合您的配置*account\$1id*的值替换*region*和。

## Deploy 权限
<a name="opsworks-security-users-examples-deploy"></a>

**Deploy** 权限级别不允许用户创建或删除应用程序。您可以通过附加以下 IAM policy 来扩充 **Deploy** 权限，从而允许用户创建和删除应用程序。将*region**account\$1id*、和*stack\$1id*，替换为适合您的配置的值。

# OpsWorks 堆栈权限级别
<a name="opsworks-security-users-standard"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

本部分列出了 “ OpsWorks 堆栈权限” 页面上的 “**显示**”、“**部署**” 和 “**管理**” **权限**级别允许的操作。它还包括只能通过将 IAM policy 附加到用户来授予权限的操作列表。

**Show (显式)**  
**Show** 级别允许执行 `DescribeXYZ` 命令，以下情况除外：  

```
DescribePermissions
DescribeUserProfiles
DescribeMyUserProfile
DescribeStackProvisioningParameters
```
如果管理用户已对用户启用自我管理，则 **Show** 用户还可以使用 `DescribeMyUserProfile` 和 `UpdateMyUserProfile`。有关自我管理的更多信息，请参阅[编辑用户设置](opsworks-security-users-manage-edit.md)。

**部署**  
除了 **Show** 级别所允许的操作之外，**Deploy** 级别还允许以下操作。  

```
CreateDeployment
UpdateApp
```

**Manage**  
除了 **Deploy** 和 **Show** 级别所允许的操作之外，**Manage** 级别还允许以下操作。  

```
AssignInstance
AssignVolume
AssociateElasticIp
AttachElasticLoadBalancer
CreateApp
CreateInstance
CreateLayer
DeleteApp
DeleteInstance
DeleteLayer
DeleteStack
DeregisterElasticIp
DeregisterInstance
DeregisterRdsDbInstance
DeregisterVolume
DescribePermissions
DetachElasticLoadBalancer
DisassociateElasticIp
GrantAccess
GetHostnameSuggestion
RebootInstance
RegisterElasticIp
RegisterInstance
RegisterRdsDbInstance
RegisterVolume
SetLoadBasedAutoScaling
SetPermission
SetTimeBasedAutoScaling
StartInstance
StartStack
StopInstance
StopStack
UnassignVolume
UpdateElasticIp
UpdateInstance
UpdateLayer
UpdateRdsDbInstance
UpdateStack
UpdateVolume
```

**需要 IAM policy 的权限**  
您必须通过将适当的 IAM policy 附加到用户，来授予针对以下操作的权限。要获取一些示例，请参阅[示例策略](opsworks-security-users-examples.md)。  

```
CloneStack
CreateStack
CreateUserProfile
DeleteUserProfile
DescribeUserProfiles
UpdateUserProfile
```