

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配界面 VPC 端點使用 Amazon MSK APIs
<a name="privatelink-vpc-endpoints"></a>

您可以使用介面 VPC 端點，由 AWS PrivateLink 提供支援，以防止 Amazon VPC 和 Amazon MSK APIs 之間的流量離開 Amazon 網路。介面 VPC 端點不需要網際網路閘道、NAT 裝置、VPN 連線或 AWS Direct Connect 連線。[AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) 是一種 AWS 技術，可讓您在 Amazon VPC 中使用具有私有 IPs彈性網路界面，在 AWS 服務之間進行私有通訊。如需詳細資訊，請參閱 [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 和[界面 VPC 端點 (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint)。

您的應用程式可以使用 AWS PrivateLink 與 Amazon MSK Provisioned 和 MSK Connect APIs 連線。若要開始使用，請為您的 Amazon MSK API 建立介面 VPC 端點，以啟動透過介面 VPC 端點往返 Amazon VPC 資源的流量。啟用 FIPS 的界面 VPC 端點適用於美國區域。如需詳細資訊，請參閱[建立界面端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint)。

使用此功能，您的 Apache Kafka 用戶端可以動態擷取連線字串以與 MSK 佈建或 MSK Connect 資源連線，而無需周遊網際網路以擷取連線字串。

建立介面 VPC 端點時，請選擇下列其中一個服務名稱端點：

**對於 MSK 佈建：**
+ 新連線不再支援下列服務名稱端點：
  + com.amazonaws.region.kafka
  + com.amazonaws.region.kafka-fips （啟用 FIPS)
+ 支援 IPv4 和 IPv6 流量的雙堆疊端點服務包括：
  + aws.api.region.kafka-api
  + aws.api.region.kafka-api-fips （啟用 FIPS)

若要設定雙堆疊端點，您必須遵循[雙堆疊和 FIPS 端點](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html)準則。

其中 region 是您的區域名稱。選擇此服務名稱以使用 MSK 佈建相容的 APIs。如需詳細資訊，請參閱 https：//*https://docs.aws.amazon.com/msk/1.0/apireference/* 中的[操作](https://docs.aws.amazon.com/msk/1.0/apireference/operations.html)。

**對於 MSK Connect：**
+ com.amazonaws.region.kafkaconnect

其中 region 是您的區域名稱。選擇此服務名稱以使用 MSK Connect 相容 APIs。如需詳細資訊，請參閱《*Amazon MSK Connect API 參考*》中的[動作](https://docs.aws.amazon.com/MSKC/latest/mskc/API_Operations.html)。

如需詳細資訊，包括建立介面 VPC step-by-step說明，請參閱《 *AWS PrivateLink 指南*》中的[建立介面端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint)。

## 控制對 Amazon MSK 佈建或 MSK Connect APIs 的 VPC 端點的存取
<a name="vpc-endpoints-control-access"></a>

VPC 端點政策可讓您透過將政策連接至 VPC 端點，或使用連接至 IAM 使用者、群組或角色的政策中的其他欄位來控制存取，以限制只能透過指定的 VPC 端點進行存取。使用適當的範例政策來定義 MSK 佈建或 MSK Connect 服務的存取許可。

如果您未在建立端點時連接政策，Amazon VPC 會以預設政策連接以允許完整存取服務。端點政策不會覆寫或取代 IAM 身分基礎政策或服務特定的政策。這個另行區分的政策會控制從端點到所指定之服務的存取。

如需詳細資訊，請參閱《 *AWS PrivateLink 指南*》中的[使用 VPC 端點控制對 服務的存取](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

------
#### [ MSK Provisioned — VPC policy example ]

**唯讀存取**  
此範例政策可以連接到 VPC 端點。(如需詳細資訊，請參閱 控制 Amazon VPC 資源的存取)。它將動作限制為僅透過其連接的 VPC 端點列出和描述操作。

```
{
  "Statement": [
    {
      "Sid": "MSKReadOnly",
      "Principal": "*",
      "Action": [
        "kafka:List*",
        "kafka:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

**MSK 佈建 — VPC 端點政策範例**  
限制對特定 MSK 叢集的存取

此範例政策可以連接到 VPC 端點。它透過其連接的 VPC 端點限制對特定 Kafka 叢集的存取。

```
{
  "Statement": [
    {
      "Sid": "AccessToSpecificCluster",
      "Principal": "*",
      "Action": "kafka:*",
      "Effect": "Allow",
      "Resource": "arn:aws:kafka:us-east-1:123456789012:cluster/MyCluster"
    }
  ]
}
```

------
#### [ MSK Connect — VPC endpoint policy example ]

**列出連接器並建立新的連接器**  
以下是 MSK Connect 端點政策的範例。此政策允許指定的角色列出連接器並建立新的連接器。

```
{
    "Version": "2012-10-17", 		 	 	 		 	 	 
    "Statement": [
        {
            "Sid": "MSKConnectPermissions",
            "Effect": "Allow",
            "Action": [
                "kafkaconnect:ListConnectors",
                "kafkaconnect:CreateConnector"
            ],
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/MyMSKConnectExecutionRole"
                ]
            }
        }
    ]
}
```

**MSK Connect — VPC 端點政策範例**  
僅允許來自指定 VPC 中特定 IP 地址的請求

下列範例顯示的原則僅允許來自指定 VPC 中指定 IP 位址的要求成功。來自其他 IP 位址的要求將會失敗。

```
{
    "Statement": [
        {
            "Action": "kafkaconnect:*",
            "Effect": "Allow",
            "Principal": "*",
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "aws:VpcSourceIp": "192.0.2.123"
                },
        "StringEquals": {
                    "aws:SourceVpc": "vpc-555555555555"
                }
            }
        }
    ]
}
```

------