

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

# 系统日志的 VPC 终端节点策略
<a name="CWL_Syslog_VPCEndpointPolicies"></a>

您可以将 VPC 终端节点策略附加到您的 syslog VPC 终端节点，以控制允许哪些流量通过该终端节点。除了安全组和资源策略之外，这还提供了额外的访问控制层。

默认情况下，VPC 终端节点具有允许所有流量的完全访问策略。您可以通过附加自定义策略来限制这一点。有关 VPC 终端节点策略的更多信息，请参阅*Amazon PrivateLink 指南*中的[使用终端节点策略控制访问](https://docs.amazonaws.cn/vpc/latest/privatelink/vpc-endpoints-access.html)。

**重要**  
Syslog 流量以匿名委托人的身份到达（网络上没有 IAM 身份）。策略必须使用操作、资源或 VPC 条件键来使用`"Principal": "*"`和限定访问范围。 Principal-scoped 策略（例如，仅允许特定 IAM 角色的策略）将拒绝所有 syslog 流量。

## 支持的条件键
<a name="CWL_Syslog_VPCEndpointPolicies_ConditionKeys"></a>

系统日志的 VPC 终端节点策略支持以下条件键：


| 条件键 | 说明 | 示例值 | 
| --- | --- | --- | 
| aws:SourceVpc | 流量来源的 VPC。 | vpc-111bbb22 | 
| aws:SourceVpce | 流量到达的 VPC 终端节点。 | vpce-0abc123def456 | 
| aws:VpcSourceIp | VPC 内发送方的私有 IP 地址。 | 10.0.1.50 | 
| aws:ResourceAccount | 拥有目标日志组的账户。 | 123456789012 | 
| aws:ResourceOrgID | 拥有目标日志组的账户的组织 ID。 | o-aa111bb222 | 
| aws:ResourceOrgPaths | 拥有目标日志组的账户的组织单位路径。 | o-aa111bb222/r-ab12/ou-ab12-11111111/\* | 

由于系统日志流量**没有 IAM 委托人身份，因此不支持**以下条件键：
+ `aws:PrincipalArn`
+ `aws:PrincipalAccount`
+ `aws:PrincipalOrgID`
+ `aws:PrincipalOrgPaths`
+ `aws:PrincipalTag/*`

使用不支持的条件密钥的策略将导致隐式拒绝，从而阻止通过端点的所有系统日志流量。

## 限制到特定的日志组
<a name="CWL_Syslog_VPCEndpointPolicies_RestrictLogGroup"></a>

以下策略仅允许发送到特定日志组的 syslog 流量：

```
aws ec2 modify-vpc-endpoint \
  --vpc-endpoint-id $VPCE_ID \
  --policy-document '{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "logs:PutLogEvents",
      "Resource": "arn:aws:logs:{{Region}}:{{account-id}}:log-group:/syslog/my-devices"
    }
  ]
}' \
  --region $REGION
```

## 拒绝所有流量
<a name="CWL_Syslog_VPCEndpointPolicies_DenyAll"></a>

以下策略阻止通过端点的所有系统日志流量。这对于在不删除端点的情况下暂时停止摄取很有用：

```
aws ec2 modify-vpc-endpoint \
  --vpc-endpoint-id $VPCE_ID \
  --policy-document '{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "*",
      "Resource": "*"
    }
  ]
}' \
  --region $REGION
```

## 重置为默认策略
<a name="CWL_Syslog_VPCEndpointPolicies_Reset"></a>

要恢复默认的全部允许策略，请执行以下操作：

```
aws ec2 modify-vpc-endpoint \
  --vpc-endpoint-id $VPCE_ID \
  --reset-policy \
  --region $REGION
```

## 策略传播
<a name="CWL_Syslog_VPCEndpointPolicies_Propagation"></a>

创建或修改 VPC 终端节点策略后，策略更改最多可能需要几分钟才能生效。在此传播期内，之前的策略（或默认策略）将继续适用。

如果 VPC 终端节点策略拒绝 syslog 流量，您将看到以下指标：
+ 策略评估后，TCP 连接会立即关闭。
+ UDP 数据报被丢弃。
+ 会发出带有`Reason=VpcePolicyDenied`的`SyslogMessagesDropped`指标。
+ 带的`SyslogConnectionsRejected`指标`Reason=VpcePolicyDenied`是针对 TCP 连接发出的。