

 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="using-service-linked-roles"></a>

AWS Cloud9 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。服务相关角色是一种与之直接关联的 IAM 角色的独特类型。 AWS Cloud9服务相关角色由 AWS Cloud9 预定义，并包含该服务代表您调用其他 AWS 服务所需的一切权限。

服务相关角色使设置变得 AWS Cloud9 更加容易，因为您不必添加必要的权限。 AWS Cloud9 定义其服务相关角色的权限，并且 AWS Cloud9 只能担任其角色。定义的权限包括信任策略和权限策略，而且权限策略不能附加到任何其他 IAM 实体。

只有在首先删除角色的相关资源后，才能删除角色。这可以保护您的 AWS Cloud9 资源，因为您不会无意中删除访问资源的权限。

有关支持服务相关角色的其他服务的信息，请参阅[使用 IAM 的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并查找**服务相关角色**列中显示为**是**的服务。请选择**是**与查看该服务的服务关联角色文档的链接。
+  [AWS Cloud9的服务相关角色权限](#service-linked-role-permissions) 
+  [为创建服务相关角色 AWS Cloud9](#create-service-linked-role) 
+  [编辑的服务相关角色 AWS Cloud9](#edit-service-linked-role) 
+  [删除的服务相关角色 AWS Cloud9](#delete-service-linked-role) 
+  [AWS Cloud9 服务相关角色支持的区域](#slr-regions) 

## 的服务相关角色权限 AWS Cloud9
<a name="service-linked-role-permissions"></a>

AWS Cloud9 使用名 AWSServiceRoleForAWSCloud9为的服务相关角色。该服务相关角色信任 `cloud9.amazonaws.com` 服务担任该角色。

此服务相关角色的权限策略已命名 **AWSCloud9ServiceRolePolicy**，它 AWS Cloud9 允许对指定资源完成策略中列出的操作。

**重要**  
 如果使用的是 License Manager 并且收到 `unable to access your environment` 错误，您需要用支持 License Manager 的版本替换旧的服务相关角色。只需删除旧角色即可替换旧角色。之后将自动创建更新后的角色。

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"ec2:RunInstances",
				"ec2:CreateSecurityGroup",
				"ec2:DescribeVpcs",
				"ec2:DescribeSubnets",
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeInstances",
				"ec2:DescribeInstanceStatus",
				"cloudformation:CreateStack",
				"cloudformation:DescribeStacks",
				"cloudformation:DescribeStackEvents",
				"cloudformation:DescribeStackResources"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:TerminateInstances",
				"ec2:DeleteSecurityGroup",
				"ec2:AuthorizeSecurityGroupIngress"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"cloudformation:DeleteStack"
			],
			"Resource": "arn:aws:cloudformation:*:*:stack/aws-cloud9-*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags"
			],
			"Resource": [
				"arn:aws:ec2:*:*:instance/*",
				"arn:aws:ec2:*:*:security-group/*"
			],
			"Condition": {
				"StringLike": {
					"aws:RequestTag/Name": "aws-cloud9-*"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:StartInstances",
				"ec2:StopInstances"
			],
			"Resource": "*",
			"Condition": {
				"StringLike": {
					"ec2:ResourceTag/aws:cloudformation:stack-name": "aws-cloud9-*"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:StartInstances",
				"ec2:StopInstances"
			],
			"Resource": [
				"arn:aws:license-manager:*:*:license-configuration:*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"iam:ListInstanceProfiles",
				"iam:GetInstanceProfile"
			],
			"Resource": [
				"arn:aws:iam::*:instance-profile/cloud9/*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"iam:PassRole"
			],
			"Resource": [
				"arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole"
			],
			"Condition": {
				"StringLike": {
					"iam:PassedToService": "ec2.amazonaws.com"
				}
			}
		}
	]
}
```

------

您必须配置权限 AWS Cloud9 以允许代表 IAM 实体（例如用户、群组或角色）创建服务相关角色。

 AWS Cloud9 要允许创建 AWSServiceRoleForAWSCloud9 服务相关角色，请在 AWS Cloud9 需要代表其创建服务相关角色的 IAM 实体的权限策略中添加以下语句。

```
{
  "Effect": "Allow",
  "Action": [
    "iam:CreateServiceLinkedRole"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "iam:AWSServiceName": "cloud9.amazonaws.com"
    }
  }
}
```

或者，您也可以将 AWS 托管式策略 `AWSCloud9User` 或 `AWSCloud9Administrator` 添加到 IAM 实体中。

要允许 IAM 实体删除 AWSServiceRoleForAWSCloud9 服务相关角色，请在需要删除服务相关角色的 IAM 实体的权限策略中添加以下语句。

```
{
  "Effect": "Allow",
  "Action": [
    "iam:DeleteServiceLinkedRole",
    "iam:GetServiceLinkedRoleDeletionStatus"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "iam:AWSServiceName": "cloud9.amazonaws.com"
    }
  }
}
```

## 为创建服务相关角色 AWS Cloud9
<a name="create-service-linked-role"></a>

您无需创建服务相关角色。创建 AWS Cloud9 开发环境时， AWS Cloud9 会为您创建服务相关角色。

## 编辑的服务相关角色 AWS Cloud9
<a name="edit-service-linked-role"></a>

您无法在中编辑 AWSServiceRoleForAWSCloud9 服务相关角色。 AWS Cloud9例如，在创建服务相关角色后，您无法更改角色的名称，因为不同的实体可能会引用该角色。不过，您可以使用 IAM 编辑角色的说明。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除的服务相关角色 AWS Cloud9
<a name="delete-service-linked-role"></a>

如果您不再需要使用某个需要服务相关角色的特征或服务，我们建议您删除该角色。这样您就没有未被主动监控或维护的未使用实体。

### 在 IAM 中删除服务相关角色
<a name="delete-service-linked-role-service-console"></a>

您必须先删除服务相关角色使用的所有 AWS Cloud9 资源，然后才能使用 IAM 删除该角色。要移除 AWS Cloud9 资源，请参阅[删除环境](delete-environment.md)。

您可以使用 IAM 控制台删除 AWSServiceRoleForAWSCloud9 服务相关角色。有关更多信息，请参见《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## AWS Cloud9 服务相关角色支持的区域
<a name="slr-regions"></a>

AWS Cloud9 支持在提供服务的所有区域中使用服务相关角色。有关更多信息，请参阅*Amazon Web Services 一般参考* 中的 [AWS Cloud9](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloud9_region)。