

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

# 讓 Lambda 函數存取另一個帳戶中 Amazon VPC 中的資源
<a name="configuration-vpc-cross-account"></a>

您可以讓 AWS Lambda 函數存取由另一個帳戶管理的 Amazon Virtual Private Cloud 中的 Amazon VPC 中的資源，而無需將任一 VPC 暴露到網際網路。此存取模式可讓您使用 與其他組織共用資料 AWS。使用此存取模式，可以在 VPC 之間共用資料，其安全性和效能高於網際網路。將 Lambda 函數設定為使用 Amazon VPC 對等互連來存取這些資源。

**警告**  
當您允許帳戶或 VPC 之間的存取時，請檢查您的計劃是否符合管理這些帳戶之各個組織的安全要求。遵循本文件中的指示將影響資源的安全狀態。

在本教學課程中，使用 IPv4 透過對等互連將兩個帳戶連線在一起。可以設定尚未連線至 Amazon VPC 的 Lambda 函數。可以設定 DNS 解析，將函數連線到不提供靜態 IP 的資源。若要調整這些說明以適應其他對等互連案例，請參閱 [VPC 對等互連指南](https://docs.aws.amazon.com//vpc/latest/peering/what-is-vpc-peering.html)。

## 先決條件
<a name="w2aac15c43c67b9"></a>

若要讓 Lambda 函數存取另一個帳戶中的資源，您必須擁有：
+ Lambda 函數，設定為對資源進行身分驗證，然後從資源中讀取。
+ 另一個帳戶中的資源，例如 Amazon RDS 叢集，可透過 Amazon VPC 提供。
+ Lambda 函數帳戶和資源帳戶的憑證。如果您無權使用資源的帳戶，請聯絡授權使用者以準備該帳戶。
+ 建立和更新 VPC (並支援 Amazon VPC 資源) 以與 Lambda 函數建立關聯的許可。
+ 更新 Lambda 函數執行角色和 VPC 組態的許可。
+ 在 Lambda 函數帳戶中建立 VPC 對等互連的許可。
+ 在資源帳戶中接受 VPC 對等互連的許可。
+ 更新資源 VPC (並支援 Amazon VPC 資源) 組態的許可。
+ 調用 Lambda 函數的許可。

## 在函數帳戶中建立 Amazon VPC
<a name="w2aac15c43c67c11"></a>

在 Lambda 函數帳戶中建立 Amazon VPC、子網路、路由表和安全群組。

**如何使用主控台建立 VPC、子網路和其他 VPC 資源**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在儀表板上，選擇**建立 VPC**。

1. 對於 **IPv4 CIDR 區塊**，請提供私有 CIDR 區塊。CIDR 區塊不得與資源 VPC 中使用的區塊重疊。請勿挑選資源 VPC 用來將 IP 指派給資源的區塊，或已在資源 VPC 的路由表中定義的區塊。如需有關定義適當 CIDR 區塊的詳細資訊，請參閱 [VPC CIDR 區塊](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html)。

1. 選擇**自訂可用區域**。

1. 選取與資源相同的可用區域。

1. 針對**公有子網路數量**，選擇 **0**。

1. 對於 **VPC endpoints** (VPC 端點)，選擇 **None** (無)。

1. 選擇**建立 VPC**。

## 為函數的執行角色授予 VPC 許可
<a name="w2aac15c43c67c13"></a>

將 [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) 附接至函數的執行角色，以允許它連線到 VPC。

**若要為函數的執行角色授予 VPC 許可**

1. 開啟 Lambda 主控台中的[函數頁面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 選擇 函數的名稱。

1. 選擇 **Configuration (組態)**。

1. 選擇**許可**。

1. 在**角色名稱**中，選擇執行角色。

1. 在**許可政策**區段中，選擇**新增許可**。

1. 在下拉式清單中，選擇**附接政策**。

1. 在搜尋方塊中，輸入 `AWSLambdaVPCAccessExecutionRole`。

1. 若要在政策名稱的左側，選擇核取方塊。

1. 選擇**新增許可**。

**若要將函數連接至 Amazon VPC**

1. 開啟 Lambda 主控台中的[函數頁面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 選擇 函數的名稱。

1. 選擇**組態**索引標籤，然後選擇 **VPC**。

1. 選擇**編輯**。

1. 在 **VPC** 中，選取您的 VPC

1. 在**子網路**中，選擇子網路。

1. 在**安全群組**中，選擇 VPC 的預設安全群組。

1. 選擇**儲存**。

## 建立 VPC 對等互連請求
<a name="w2aac15c43c67c17"></a>

建立從函數的 VPC (請求者 VPC) 到資源的 VPC (接受者 VPC) 的 VPC 對等互連請求。

**若要從函數的 VPC 請求 VPC 對等互連**

1. 開啟 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中，選擇 **Peering connections** (對等互連)。

1. 關閉 **Create peering connection** (建立對等互連)。

1. 對於 **VPC ID (請求者)**，選取函數的 VPC。

1. 對於**帳戶 ID**，輸入資源帳戶的 ID。

1. 對於 **VPC ID (接受者)**，輸入資源的 VPC。

## 準備資源的帳戶
<a name="w2aac15c43c67c19"></a>

若要建立對等互連並準備資源的 VPC 以使用連線，請使用具有先決條件中所列許可的角色來登入資源的帳戶。登入步驟可能會根據帳戶的保護措施而有所不同。如需如何登入 AWS 帳戶的詳細資訊，請參閱 [AWS 登入使用者指南](https://docs.aws.amazon.com//signin/latest/userguide/what-is-sign-in.html)。在資源的帳戶中，執行下列程序。

**若要接受 VPC 對等互連請求**

1. 開啟 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中，選擇 **Peering connections** (對等互連)。

1. 選取待定 VPC 對等互連 (狀態為待接受)。

1. 選擇 **動作**

1. 從下拉式清單中，選擇**接受請求**。

1. 出現確認提示時，請選擇**接受請求**。

1. 選擇**立即修改我的路由表**，將路由新增至 VPC 的主路由表，以便透過對等互連傳送和接收流量。

檢查資源 VPC 的路由表。根據資源 VPC 的設定方式，Amazon VPC 產生的路由可能無法建立連線。檢查新路由與 VPC 現有組態之間的衝突。如需有關疑難排解的詳細資訊，請參閱《Amazon 虛擬私有雲端 VPC 對等互連指南》中的 [VPC 對等互連疑難排解](https://docs.aws.amazon.com/vpc/latest/peering/troubleshoot-vpc-peering-connections.html)。**

**若要更新資源的安全群組**

1. 開啟 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中，選擇**安全群組**。

1. 選取資源的安全群組。

1. 選擇**動作**。

1. 從下拉式清單中，選擇**編輯傳入規則**。

1. 選擇**新增規則**。

1. 針對**來源**輸入函數的帳戶 ID 和安全群組 ID，以斜線分隔 (例如 111122223333/sg-1a2b3c4d)。

1. 選擇**編輯傳出規則**。

1. 檢查是否限制傳出流量。預設 VPC 設定允許所有傳出流量。如果傳出流量受限，請繼續下一個步驟。

1. 選擇**新增規則**。

1. 針對**目的地**輸入函數的帳戶 ID 和安全群組 ID，以斜線分隔 (例如 111122223333/sg-1a2b3c4d)。

1. 選擇**儲存規則**。

**若要啟用對等互連的 DNS 解析**

1. 開啟 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中，選擇 **Peering connections** (對等互連)。

1. 選取您的對等互連。

1. 選擇**動作**。

1. 選擇**編輯 DNS 設定**。

1. 在**接受者 DNS 解析**下，選取**允許請求者 VPC 將接受者 VPC 主機的 DNS 解析為私有 IP**。

1. 選擇**儲存變更**。

## 更新函數帳戶中的 VPC 組態
<a name="w2aac15c43c67c21"></a>

登入函數的帳戶，然後更新 VPC 組態。

**若要新增 VPC 對等互連的路由**

1. 開啟 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中，選擇 **Route tables** (路由表)。

1. 選取與函數相關聯子網路的路由表名稱旁邊的核取方塊。

1. 選擇**動作**。

1. 選擇 **Edit routes** (編輯路由)。

1. 選擇 **Add route** (新增路由)。

1. 對於**目的地**，輸入資源 VPC 的 CIDR 區塊。

1. 對於**目標**，選取 VPC 對等互連。

1. 選擇**儲存變更**。

如需有關更新路由表時可能遇到之考量的詳細資訊，請參閱[更新 VPC 對等互連的路由表](https://docs.aws.amazon.com//vpc/latest/peering/vpc-peering-routing.html)。

**若要更新 Lambda 函數的安全群組**

1. 開啟 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中，選擇**安全群組**。

1. 選擇**動作**。

1. 選擇 **Edit inbound Rules** (編輯傳入規則)。

1. 選擇**新增規則**。

1. 對於**來源**，輸入資源的帳戶 ID 和安全群組 ID，以正斜線分隔 (例如 111122223333/sg-1a2b3c4d)。

1. 選擇**儲存規則**。

**若要啟用對等互連的 DNS 解析**

1. 開啟 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在導覽窗格中，選擇 **Peering connections** (對等互連)。

1. 選取您的對等互連。

1. 選擇**動作**。

1. 選擇**編輯 DNS 設定**。

1. 在**請求者 DNS 解析**下，選取**允許接受者 VPC 將請求者 VPC 主機的 DNS 解析為私有 IP**。

1. 選擇**儲存變更**。

## 測試 函數
<a name="w2aac15c43c67c23"></a>

**若要建立測試事件並檢查函數的輸出**

1. 在**程式碼來源**窗格中選擇**測試**。

1. 選取**建立新事件**。

1. 在**事件 JSON** 面板中，將預設值取代為 Lambda 函數適用的輸入。

1. 選擇**調用**。

1. 在**執行結果**索引標籤中，確認**回應**包含預期輸出。

此外，可以檢查函數的日誌，確認日誌如您所預期。

**若要在 CloudWatch Logs 中檢視函數的調用記錄**

1. 選擇**監控**索引標籤。

1. 選擇**檢視 CloudWatch 日誌**。

1. 在**日誌串流**標籤上，為函數調用選擇日誌串流。

1. 確認日誌如您所預期。