

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

# Amazon MWAA 上的 VPC 安全
<a name="vpc-security"></a>

本页介绍用于保护 Amazon MWAA 环境的 Amazon VPC 组件以及这些组件所需的配置。

**Contents**
+ [术语](#networking-security-defs)
+ [安全性概述](#vpc-security-about)
+ [网络访问控制列表 (ACLs)](#vpc-security-acl)
  + [（推荐）示例 ACLs](#vpc-security-acl-example)
+ [VPC 安全组](#vpc-security-sg)
  + [（推荐）所有访问自引用安全组示例](#vpc-security-sg-example)
  + [（可选）限制入站访问端口 5432 的安全组示例](#vpc-security-sg-example-port5432)
  + [（可选）限制入站访问端口 443 的安全组示例](#vpc-security-sg-example-port443)
+ [VPC 端点策略（仅限私有路由）](#vpc-external-vpce-policies)
  + [（推荐）允许所有人访问的 VPC 端点策略示例](#vpc-external-vpce-policies-all)
  + [（推荐）允许访问存储桶的 Amazon S3 网关端点策略示例](#vpc-external-vpce-policies-s3)

## 术语
<a name="networking-security-defs"></a>

**公有路由**  
可以访问互联网的 Amazon VPC 网络。

**私有路由**  
无法访问互联网的 Amazon VPC 网络。

## 安全性概述
<a name="vpc-security-about"></a>

安全组和访问控制列表 (ACLs) 提供了使用您指定的规则控制跨子网和您的 Amazon VPC 实例的网络流量的方法。
+ 进出子网的网络流量可以通过访问控制列表 (ACLs) 进行控制。您只需要一个 ACL，并且可以在多个环境中使用相同的 ACL。
+ 进出实例的网络流量可以由 Amazon VPC 安全组控制。您可以在每个环境中使用一到五个安全组。
+ 进出实例的网络流量也可以通过 VPC 端点策略进行控制。如果贵组织不允许在 Amazon VPC 内访问互联网，并且您使用的是带有*私有路由*的 Amazon VPC 网络，则需要为 [AWS VPC 端点和 Apache Airflow VPC 端点](vpc-vpe-create-access.md#vpc-vpe-create-view-endpoints-examples)制定一个 VPC 端点策略。

## 网络访问控制列表 (ACLs)
<a name="vpc-security-acl"></a>

[网络访问控制列表（ACL）](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)可以管理（通过允许或拒绝规则）*子网*级别的入站和出站流量。ACL 是无状态的，这意味着必须单独、明确指定入站和出站规则。它用于指定 VPC 网络中允许从实例进出的网络流量类型。

每个 Amazon VPC 都有允许所有入站和出站流量的默认 ACL。您可以编辑默认 ACL 规则，也可以创建自定义 ACL 并将其附加到子网。一个子网在任何时候只能连接一个 ACL，但一个 ACL 可以连接到多个子网。

### （推荐）示例 ACLs
<a name="vpc-security-acl-example"></a>

以下示例说明了*入站*和*出站* ACL 规则，可用于使用*公有路由*或*私有路由*的 Amazon VPC。


| 规则编号 | Type | 协议 | 端口范围 | 源 | 允许/拒绝 | 
| --- | --- | --- | --- | --- | --- | 
| 100 | 所有 IPv4 流量 | 全部 | 全部 | 0.0.0.0/0 | 允许 | 
| \* | 所有 IPv4 流量 | 全部 | 全部 | 0.0.0.0/0 | 拒绝 | 

## VPC 安全组
<a name="vpc-security-sg"></a>

[VPC 安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)可以作为虚拟防火墙，用于控制一个或多个*实例*级别的流量。安全组是有状态的，这意味着当允许入站连接时，它可以进行回复。它用于指定 VPC 网络中允许从实例进入的网络流量类型。

每个 Amazon VPC 都有一个默认安全组。默认情况下，它没有入站规则。它有一条允许所有出站流量的出站规则。您可以编辑默认安全组规则，也可以创建自定义安全组并将其附加到 Amazon VPC。在 Amazon MWAA 上，您需要配置入站和出站规则，以便在 NAT 网关上引导流量。

### （推荐）所有访问自引用安全组示例
<a name="vpc-security-sg-example"></a>

以下示例说明了*入站*安全组规则，将允许使用*公有路由*或*私有路由*的 Amazon VPC 的所有流量。本例中的安全组必须为自己指定自引用规则。


| Type | 协议 | 源类型 | 来源 | 
| --- | --- | --- | --- | 
| 所有流量 | All | 全部 | sg-0909e8e81919/-group my-mwaa-vpc-security | 

以下示例说明了*出站*安全组规则。


| Type | 协议 | 源类型 | 来源 | 
| --- | --- | --- | --- | 
| 所有流量 | All | 全部 | 0.0.0.0/0 | 

### （可选）限制入站访问端口 5432 的安全组示例
<a name="vpc-security-sg-example-port5432"></a>

以下示例说明了*入站*安全组规则，这些规则允许环境的 Amazon Aurora PostgreSQL 元数据数据库（由 Amazon MWAA 拥有）在端口 5432 上的所有 HTTPS 流量。

**注意**  
如果您选择使用此规则限制流量，则需要添加另一条规则以允许端口 443 上的 TCP 流量。


| Type | 协议 | 端口范围 | Source type（源类型） | 来源 | 
| --- | --- | --- | --- | --- | 
| 自定义 TCP | TCP | 5432 | 自定义 | sg-0909e8e81919/-group my-mwaa-vpc-security | 

### （可选）限制入站访问端口 443 的安全组示例
<a name="vpc-security-sg-example-port443"></a>

以下示例说明了允许 Apache Airflow Web 服务器端口 443 上所有 TCP 流量的*入站*安全组规则。


| Type | 协议 | 端口范围 | Source type（源类型） | 来源 | 
| --- | --- | --- | --- | --- | 
| HTTPS | TCP | 443 | 自定义 | sg-0909e8e81919/-group my-mwaa-vpc-security | 

## VPC 端点策略（仅限私有路由）
<a name="vpc-external-vpce-policies"></a>

[VPC 终端节点 (AWS PrivateLink)](https://docs.aws.amazon.com/mwaa/latest/userguide/vpc-create.html#vpc-create-required) 策略控制从您的私有子网访问 AWS 服务。VPC 端点策略是一种 IAM 资源策略，您可以将其附加到 VPC 网关或接口端点。本节介绍每个 VPC 端点的 VPC 端点策略所需的权限。

我们建议对您创建的每个 VPC 终端节点使用允许完全访问所有 AWS 服务的 VPC 接口终端节点策略，并仅使用您的执行角色来获得 AWS 权限。

### （推荐）允许所有人访问的 VPC 端点策略示例
<a name="vpc-external-vpce-policies-all"></a>

对于使用*私有路由*的 Amazon VPC，以下示例介绍了 VPC 接口端点策略。

```
{
  "Statement": [
    {
      "Action": "*",
      "Effect": "Allow",
      "Resource": "*",
      "Principal": "*"
    }
  ]
}
```

### （推荐）允许访问存储桶的 Amazon S3 网关端点策略示例
<a name="vpc-external-vpce-policies-s3"></a>

以下示例介绍了一个 VPC 网关端点策略，对于使用*私有路由*的 Amazon VPC，它提供了对 Amazon ECR 操作所需的 Amazon S3 存储桶的访问权限。除了存储您的文件 DAGs 和支持文件的存储桶外，还需要这样才能检索您的 Amazon ECR 映像。

```
{
  "Statement": [
    {
      "Sid": "Access-to-specific-bucket-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::prod-{{us-east-1}}-starport-layer-bucket/*"]
    }
  ]
}
```