

# 使用 CloudFront 的服务相关角色
<a name="using-service-linked-roles"></a>

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

服务相关角色可让您更轻松地设置 CloudFront，因为您不必手动添加必要的权限。CloudFront 定义其服务相关角色的权限，除非另外定义，否则只有 CloudFront 可以代入该角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

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

有关支持服务相关角色的其它服务的信息，请参阅[使用 IAM 的 AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，并查找**服务相关角色**列中显示为**是**的服务。选择**是**和链接，查看该服务的服务关联角色文档。

## CloudFront VPC 源的服务相关角色权限
<a name="slr-permissions"></a>

CloudFront VPC 源使用名为 **AWSServiceRoleForCloudFrontVPCOrigin** 的服务相关角色 – 允许 CloudFront 代表您管理 EC2 弹性网络接口和安全组。

AWSServiceRoleForCloudFrontVPCOrigin 服务相关角色信任以下服务代入该角色：
+ `vpcorigin.cloudfront.amazonaws.com`

名为 AWSCloudFrontVPCOriginServiceRolePolicy 的角色权限策略允许 CloudFront VPC 源对指定资源完成以下操作：
+ 操作：`arn:aws:ec2:*:*:network-interface/*` 上的 `ec2:CreateNetworkInterface`
+ 操作：`arn:aws:ec2:*:*:subnet/*` 和 `arn:aws:ec2:*:*:security-group/*` 上的 `ec2:CreateNetworkInterface`
+ 操作：`ec2:CreateSecurityGroup` 上的 `arn:aws:ec2:*:*:security-group/*`
+ 操作：`ec2:CreateSecurityGroup` 上的 `arn:aws:ec2:*:*:vpc/*`
+ 操作：`supported AWS resources that have the aws:ResourceTag/aws.cloudfront.vpcorigin tag enabled` 上的 `ec2:ModifyNetworkInterfaceAttribute`、`ec2:DeleteNetworkInterface`、`ec2:DeleteSecurityGroup`、`ec2:AssignIpv6Addresses` 和 `ec2:UnassignIpv6Addresses`
+ 操作：`all AWS resources that the actions support` 上的 `ec2:DescribeNetworkInterfaces`、`ec2:DescribeSecurityGroups`、`ec2:DescribeInstances`、`ec2:DescribeInternetGateways`、`ec2:DescribeSubnets`、`ec2:DescribeRegions` 和 `ec2:DescribeAddresses`
+ 操作：`arn:aws:ec2:*:*:security-group/*` 和 `arn:aws:ec2:*:*:network-interface/*` 上的 `ec2:CreateTags`
+ 操作：`elasticloadbalancing:DescribeLoadBalancers`、`elasticloadbalancing:DescribeListeners`、以及在 `all AWS resources that the actions support` 中的 `elasticloadbalancing:DescribeTargetGroups`

您必须配置使用户、组或角色能够创建、编辑或删除服务相关角色的权限。有关更多信息，请参阅*《IAM 用户指南》*中的[服务相关角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 为 CloudFront VPC 源创建服务相关角色
<a name="create-slr"></a>

您无需手动创建服务关联角色。当您使用 AWS 管理控制台、AWS CLI 或 AWS API 创建 VPC 源时，CloudFront VPC 源会为您创建服务相关角色。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您创建 VPC 源时，CloudFront VPC 源会为您再次创建服务相关角色。

## 编辑 CloudFront VPC 源的服务相关角色
<a name="edit-slr"></a>

CloudFront VPC 源不允许您编辑 AWSServiceRoleForCloudFrontVPCOrigin 服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除 CloudFront VPC 源的服务相关角色
<a name="delete-slr"></a>

如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，必须先清除服务相关角色的资源，然后才能手动删除它。

**注意**  
如果在您试图删除资源时 CloudFront 服务正在使用该角色，则删除操作可能会失败。如果发生这种情况，请等待几分钟后重试。

**删除 AWSServiceRoleForCloudFrontVPCOrigin 使用的 CloudFront VPC 源的资源**
+ 删除您账户中 VPC 源的资源。
  + CloudFront 可能需要一些时间来完成从账户中删除资源的操作。如果您无法立即删除服务相关角色，请稍后重试。

**使用 IAM 手动删除 服务相关角色**

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

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

CloudFront VPC 源并非在提供该服务的每个区域中都支持使用服务相关角色。您可以在以下区域中使用 AWSServiceRoleForCloudFrontVPCOrigin 角色。


| 区域名称 | 区域标识 | CloudFront 支持 | 
| --- | --- | --- | 
| 美国东部（弗吉尼亚州北部） | us-east-1 | 是 | 
| 美国东部（俄亥俄州） | us-east-2 | 是 | 
| 美国西部（北加利福尼亚） | us-west-1（可用区 usw1-az2 除外） | 是 | 
| 美国西部（俄勒冈州） | us-west-2 | 是 | 
| 非洲（开普敦） | af-south-1 | 是 | 
| 亚太地区（香港） | ap-east-1 | 是 | 
| 亚太地区（雅加达） | ap-southeast-3 | 是 | 
| 亚太地区（墨尔本） | ap-southeast-4 | 是 | 
| 亚太地区（孟买） | ap-south-1 | 是 | 
| 亚太地区（海得拉巴） | ap-south-2 | 是 | 
| 亚太地区（大阪） | ap-northeast-3 | 是 | 
| 亚太地区（首尔） | ap-northeast-2 | 是 | 
| 亚太地区（新加坡） | ap-southeast-1 | 是 | 
| 亚太地区（悉尼） | ap-southeast-2 | 是 | 
| 亚太地区（东京） | ap-northeast-1（可用区 apne1-az3 除外） | 是 | 
| 加拿大（中部） | ca-central-1（可用区 cac1-az3 除外） | 是 | 
| 加拿大西部（卡尔加里） | ca-west-1 | 是 | 
| 欧洲地区（法兰克福） | eu-central-1 | 是 | 
| 欧洲地区（爱尔兰） | eu-west-1 | 是 | 
| 欧洲地区（伦敦） | eu-west-2 | 是 | 
| 欧洲地区（米兰） | eu-south-1 | 是 | 
| 欧洲地区（巴黎） | eu-west-3 | 是 | 
| 欧洲（西班牙） | eu-south-2 | 是 | 
| 欧洲地区（斯德哥尔摩） | eu-north-1 | 是 | 
| 欧洲（苏黎世） | eu-central-2 | 是 | 
| 以色列（特拉维夫） | il-central-1 | 是 | 
| 中东（巴林） | me-south-1 | 是 | 
| 中东（阿联酋） | me-central-1 | 是 | 
| 南美洲（圣保罗） | sa-east-1 | 是 | 