示例策略 - AWS OpsWorks

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

示例策略

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

本节介绍可应用于 AWS OpsWorks Stacks 用户的 IAM 策略示例。

管理权限

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

必须创建一个 IAM 角色,该角色允许 AWS OpsWorks Stacks 代表您访问其他 AWS 资源,例如 Amazon EC2 实例。通常,您通过让管理用户创建首个堆栈,并允许 AWS OpsWorks Stacks 为您创建角色,从而来处理此任务。然后,您可以针对所有后续堆栈使用该角色。有关更多信息,请参阅允许 AWS OpsWorks Stacks 代表您执行操作

创建首个堆栈的管理用户必须有权执行未包含在 AWSOpsWorks_FullAccess 策略中的某些 IAM 操作。为策略中的 Actions 节添加以下权限。要获得正确的 JSON 语法,请务必在操作之间添加逗号,并删除操作列表末尾的尾部逗号。

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

Manage 权限

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

拒绝 Manage 用户添加或删除层

您可以通过使用以下 IAM policy,将 Manage 权限级别限制为允许用户执行除添加或删除层之外的所有 Manage 操作。将区域账户 IDstack_id 替换为适合您配置的值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "opsworks:CreateLayer", "opsworks:DeleteLayer" ], "Resource": "arn:aws:opsworks:region:account_id:stack/stack_id/" } ] }
允许 Manage 用户创建或克隆堆栈

Manage 权限级别不允许用户创建或克隆堆栈。您可以通过附加以下 IAM policy 来更改 Manage 权限,从而允许用户创建或克隆堆栈。将区域账户 ID 替换为适合您配置的值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetRolePolicy", "iam:ListRoles", "iam:ListInstanceProfiles", "iam:ListUsers", "opsworks:DescribeUserProfiles", "opsworks:CreateUserProfile", "opsworks:DeleteUserProfile" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:opsworks::account_id:stack/*/", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }
拒绝 Manage 用户注册或取消注册资源

管理权限级别允许用户在堆栈中注册和取消注册 Amazon EBS 和 Elastic IP 地址资源。您可以通过附加以下策略来限制 Manage 权限,从而允许用户执行除注册资源之外的所有 Manage 操作。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "opsworks:RegisterVolume", "opsworks:RegisterElasticIp" ], "Resource": "*" } ] }
允许 Manage 用户导入用户

Manage (管理) 权限级别不允许用户向 AWS OpsWorks Stacks 导入用户。您可以通过附加以下 IAM policy 来扩充 Manage 权限,从而允许用户导入和删除用户。将区域账户 ID 替换为适合您配置的值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetRolePolicy", "iam:ListRoles", "iam:ListInstanceProfiles", "iam:ListUsers", "iam:PassRole", "opsworks:DescribeUserProfiles", "opsworks:CreateUserProfile", "opsworks:DeleteUserProfile" ], "Resource": "arn:aws:iam:region:account_id:user/*", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }

Deploy 权限

Deploy 权限级别不允许用户创建或删除应用程序。您可以通过附加以下 IAM policy 来扩充 Deploy 权限,从而允许用户创建和删除应用程序。将区域账户 IDstack_id 替换为适合您配置的值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "opsworks:CreateApp", "opsworks:DeleteApp" ], "Resource": "arn:aws:opsworks:region:account_id:stack/stack_id/" } ] }