

 AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用这项服务。[了解详情](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 团队使用的客户托管策略示例 AWS Cloud9
<a name="setup-teams-policy-examples"></a>

以下是一些策略示例，您可以使用它们来限制组中的用户可以在 AWS 账户中创建的环境。
+  [防止组中的用户创建环境](#setup-teams-policy-examples-prevent-environments) 
+  [防止组中的用户创建 EC2 环境](#setup-teams-policy-examples-prevent-ec2-environments) 
+  [允许组中的用户仅使用特定的 Amazon EC2 实例类型创建 EC2 环境](#setup-teams-policy-examples-specific-instance-types) 
+  [仅允许群组中的用户在每个 AWS 区域创建一个 EC2 环境](#setup-teams-policy-examples-single-ec2-environment) 

## 防止组中的用户创建环境
<a name="setup-teams-policy-examples-prevent-environments"></a>

以下客户托管策略附加到 AWS Cloud9 用户组时，会阻止这些用户在中创建环境 AWS 账户。如果您想让管理员用户管理创建环境，则 AWS 账户 此功能非常有用。否则，用户组中的 AWS Cloud9 用户会执行此操作。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "cloud9:CreateEnvironmentEC2",
        "cloud9:CreateEnvironmentSSH"
      ],
      "Resource": "*"
    }
  ]
}
```

------

在已附加到 AWS Cloud9 用户组`"Effect": "Allow"`的托管策略`"Resource": "*"`中，前面的客户`AWSCloud9User`托管策略会明确替换`"Action": "cloud9:CreateEnvironmentEC2"`和`"cloud9:CreateEnvironmentSSH"`启用。

## 防止组中的用户创建 EC2 环境
<a name="setup-teams-policy-examples-prevent-ec2-environments"></a>

以下客户托管策略附加到 AWS Cloud9 用户组时，会阻止这些用户在中创建 EC2 环境 AWS 账户。如果您想让管理员用户管理创建 EC2 环境 AWS 账户 ，则此功能非常有用。否则，用户组中的 AWS Cloud9 用户会执行此操作。这假定您尚未附加策略以阻止该组中的用户创建 SSH 环境。否则，这些用户无法创建环境。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "cloud9:CreateEnvironmentEC2",
      "Resource": "*"
    }
  ]
}
```

------

在已附加到 AWS Cloud9 用户组`"Effect": "Allow"`的托管策略`"Resource": "*"`中，前面的客户`AWSCloud9User`托管策略显式替换为 `"Action": "cloud9:CreateEnvironmentEC2"` on。

## 允许组中的用户仅使用特定的 Amazon EC2 实例类型创建 EC2 环境
<a name="setup-teams-policy-examples-specific-instance-types"></a>

以下客户托管策略附加到 AWS Cloud9 用户组后，允许该用户组中的用户创建仅使用以开头的`t2`实例类型的 EC2 环境 AWS 账户。此策略假定您尚未附加策略以阻止该组中的用户创建 EC2 环境。否则，这些用户无法创建 EC2 环境。

您可以将以下策略中的 `"t2.*"` 替换为其他实例类 (例如，`"m4.*"`)。或者，您可以将其限制为多个实例类或实例类型（例如，`[ "t2.*", "m4.*" ]` 或 `[ "t2.micro", "m4.large" ]`）。

对于 AWS Cloud9 用户组，将`AWSCloud9User`托管策略与该组分离。然后，将以下客户管理型策略添加到其位置。如果不分离 `AWSCloud9User` 托管式策略，以下客户管理型策略将没有效果。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloud9:CreateEnvironmentSSH",
        "cloud9:GetUserPublicKey",
        "cloud9:UpdateUserSettings",
        "cloud9:GetUserSettings",
        "iam:GetUser",
        "iam:ListUsers",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "cloud9:CreateEnvironmentEC2",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "cloud9:InstanceType": "t2.*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloud9:DescribeEnvironmentMemberships"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "Null": {
          "cloud9:UserArn": "true",
          "cloud9:EnvironmentId": "true"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateServiceLinkedRole"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "cloud9.amazonaws.com"
        }
      }
    }
  ]
}
```

------

前面的客户管理型策略还允许这些用户创建 SSH 环境。要同时防止这些用户创建 SSH 环境，请从前面的客户托管式策略中删除 `"cloud9:CreateEnvironmentSSH",`。

## 仅允许群组中的用户在每个环境中创建一个 EC2 环境 AWS 区域
<a name="setup-teams-policy-examples-single-ec2-environment"></a>

以下客户托管策略附加到 AWS Cloud9 用户组后，允许这些用户在每个用户组中最多创建一个可用 AWS 区域 AWS Cloud9 的 EC2 环境。这通过将环境的名称限制为该 AWS 区域中的一个特定名称来实现。在此示例中，环境仅限于 `my-demo-environment`。

**注意**  
AWS Cloud9 不允许将环境限制为特定环境 AWS 区域 的创建。 AWS Cloud9 也无法限制可以创建的环境总数。唯一的例外是已发布的[服务限制](limits.md)。

对于 AWS Cloud9 用户组，将`AWSCloud9User`托管策略与该组分离，然后在其位置添加以下客户托管策略。如果不分离 `AWSCloud9User` 托管式策略，以下客户管理型策略没有效果。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloud9:CreateEnvironmentSSH",
        "cloud9:GetUserPublicKey",
        "cloud9:UpdateUserSettings",
        "cloud9:GetUserSettings",
        "iam:GetUser",
        "iam:ListUsers",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloud9:CreateEnvironmentEC2"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "cloud9:EnvironmentName": "my-demo-environment"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloud9:DescribeEnvironmentMemberships"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "Null": {
          "cloud9:UserArn": "true",
          "cloud9:EnvironmentId": "true"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateServiceLinkedRole"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "cloud9.amazonaws.com"
        }
      }
    }
  ]
}
```

------

前面的客户管理型策略允许这些用户创建 SSH 环境。要同时防止这些用户创建 SSH 环境，请从前面的客户托管式策略中删除 `"cloud9:CreateEnvironmentSSH",`。

有关更多示例，请参阅[客户管理型策略示例](security-iam.md#auth-and-access-control-customer-policies-examples)。