跳至內容

如何針對其他帳戶中的傳輸閘道,在 Transit Gateway 中建立 Amazon VPC 連接?

3 分的閱讀內容
0

我想在 AWS Transit Gateway 中,為另一個 AWS 帳戶中的傳輸閘道建立 Amazon Virtual Private Cloud (Amazon VPC) 連接。

簡短描述

如要將 VPC 附加到其他帳戶中的傳輸閘道,請使用 AWS Resource Access Manager (AWS RAM) 與擁有 VPC 的帳戶共用傳輸閘道。

在下列解決方法中,擁有傳輸閘道的帳戶是來源帳戶,擁有 VPC 的帳戶則是目的地帳戶。目的地帳戶接受共用資源後,請建立 VPC 連接,將 VPC 連接到來源帳戶的共用傳輸閘道。

您可以使用 AWS 管理主控台或 AWS Command Line Interface (AWS CLI) 來完成下列步驟。

**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請參閱「對 AWS CLI 錯誤進行疑難排解」。此外,請確定您使用的是最新的 AWS CLI 版本

解決方法

**先決條件:**在建立傳輸閘道的 VPC 連接之前,請先確認目的地帳戶中的 AWS Identity and Access Management (IAM) 使用者或角色具備建立服務連結角色的權限。在建立 VPC 連接期間,AWS 會自動建立 AWSServiceRoleForVPCTransitGateway 服務連結角色。此角色允許 Transit Gateway 在您的 VPC 子網路中建立並管理彈性網路介面,並針對連接設定必要的路由。

若要驗證您是否擁有必要的權限,請確認您的 IAM 政策是否包含以下陳述式:

{
  "Effect": "Allow",
  "Action": "iam:CreateServiceLinkedRole",
  "Resource": "arn:aws:iam::*:role/aws-service-role/transitgateway.amazonaws.com/AWSServiceRoleForTransitGateway*"

如果 IAM 使用者或角色沒有建立服務連結角色的權限,您會收到 "Access Denied" 錯誤訊息。

與目的地帳戶共用傳輸閘道

AWS RAM 主控台

請完成下列步驟:

  1. 在來源帳戶中,開啟 AWS RAM 主控台
  2. 在 AWS 區域下拉式清單中,選取傳輸閘道所在的區域。
  3. 選擇 Create resource share (建立資源共用)。
  4. 輸入下列資訊:
    Name (名稱) 中,提供資源共用設定的名稱。
    Select resource type (選取資源類型) 中,選擇 Transit gateway (傳輸閘道),然後選取您的傳輸閘道 ID。
  5. 選擇 Next (下一步)。
  6. 選擇要與傳輸閘道建立關聯的受管權限
  7. 選擇 Next (下一步)。
  8. 選擇 Grant access to principals (授與存取權給主體),然後輸入下列資訊:
    Principals (主體) 中,輸入目的地帳戶的帳戶 ID,或輸入 AWS Organizations 中帳戶的組織 ID。
    如果帳戶不在組織中,請選擇 Allow sharing with anyone (允許與任何人共用)。
    如果帳戶位於組織中,請選擇 Allow sharing only within your organization (僅允許組織內部共用)。
    **注意:**若要使用組織 ID 作為主體類型,請開啟受信任存取設定。若要在建立資源共用設定後更新主體,請選取該資源共用設定,然後選擇 Modify (修改)。
  9. 選擇 Create resource share (建立資源共用)。

AWS CLI

**注意:**在下列指令中,請將範例參數替換成以下值:

  • 針對 TGWSHARE,請提供資源共用設定的名稱。
  • 請將 222222222222 替換成目的地帳戶的帳戶 ID。
  • 針對 resource-arns,請提供來源帳戶傳輸閘道的 Amazon Resource Name (ARN)。
  • 針對 principals organizations,請提供組織的 ARN。
  • 針對 resource-share-arn,請提供要修改的現有資源共用設定的 ARN。

如要建立資源共用設定,與不在組織中的帳戶共用資源,請執行以下 create-resource-share 命令:

aws ram create-resource-share \
    --name TGWSHARE \
    --resource-arns arn:aws:ec2:region:123456789012:transit-gateway/tgw-1234567890abcdef0 \
    --principals 222222222222 \
    --allow-external-principals

如要建立資源共用設定,僅允許組織內帳戶存取資源,請執行以下 create-resource-share 命令:

aws ram create-resource-share \
    --name TGWSHARE \
    --resource-arns arn:aws:ec2:region:123456789012:transit-gateway/tgw-1234567890abcdef0 \
    --principals organizations::123456789012:organization/o-exampleorgid \
    --no-allow-external-principals

如要修改現有資源共用設定,請執行以下 update-resource-share 命令:

aws ram update-resource-share \
    --allow-external-principals \
    --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE

詳情請參閱 “Creating a resource share in AWS RAM” (在 AWS RAM 中建立資源共用設定)。

在目的地帳戶中接受共用傳輸閘道

AWS RAM 主控台

如需指示,請參閱 “Accept an AWS Transit Gateway resource share using the AWS Resource Access Manager console” (使用 AWS Resource Access Manager 主控台接受共用 AWS Transit Gateway 資源)。

使用 Amazon VPC 主控台,確認目的地帳戶中是否顯示共用的傳輸閘道

AWS CLI

請完成下列步驟:

  1. 執行下列 get-resource-share-invitations 命令,列出待處理的資源共用邀請:

    aws ram get-resource-share-invitations
  2. 從輸出結果中複製 resourceShareInvitationArn

  3. 執行下列 accept-resource-share-invitation 命令來接受邀請:

    aws ram accept-resource-share-invitation \
        --resource-share-invitation-arn arn:aws:ram:us-west-2:111111111111:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE

    **注意:**請將 resource-share-invitation-arn 替換成邀請中的 ARN。

執行下列 describe-transit-gateways 命令,確認目的地帳戶中是否顯示共用的傳輸閘道:

aws ec2 describe-transit-gateways

在目的地帳戶中建立 VPC 連接

Amazon VPC 主控台

如需指示,請參閱 “Create a VPC attachment in AWS Transit Gateway” (在 AWS Transit Gateway 中建立 VPC 連接)。

AWS CLI

執行下列 create-transit-gateway-vpc-attachment

aws ec2 create-transit-gateway-vpc-attachment \
    --transit-gateway-id SHARED-TRANSIT-GATEWAY-ID \
    --vpc-id DESTINATION-VPC-ID \
    --subnet-ids SUBNET-A SUBNET-B \
    --options DnsSupport=enable,Ipv6Support=disable

**注意:**請將 SHARED-TRANSIT-GATEWAY-ID 替換成共用傳輸閘道的 ID,並將 DESTINATION-VPC-ID 替換成目的地 VPC 的 ID。請將 SUBNET-ASUBNET-B 替換成子網路 ID。只為每個可用區域指定一個子網路。為了提高可用性,最佳做法是在兩個可用區域中各指定一個子網路。傳輸閘道會從每個指定的子網路中,各使用一組 IP 位址。

建立 VPC 連接後,請檢查連接狀態。如果開啟了 Auto accept shared attachments (自動接受共用連接),傳輸閘道會自動接受該連接。如果在建立傳輸閘道期間未開啟 Auto accept shared attachments (自動接受共用連接),狀態會顯示為 Pending acceptance (等待接受)。若要在來源帳戶中接受 VPC 連接,請參閱下方「在來源帳戶中接受 VPC 連接」一節。

在來源帳戶中接受 VPC 連接

Amazon VPC 主控台

在來源帳戶中,接受共用連接

AWS CLI

或者,執行下列 describe-transit-gateway-attachments AWS CLI 命令,列出處於 pendingAcceptance 狀態的連接:

aws ec2 describe-transit-gateway-attachments \
    --filters Name=state,Values=pendingAcceptance

然後,執行下列 accept-transit-gateway-vpc-attachment 命令以接受 VPC 連接:

aws ec2 accept-transit-gateway-vpc-attachment \
    --transit-gateway-attachment-ids TGW-ATTACH-1122

**注意:**使用命令輸出結果中的傳輸閘道連接 ID。然後,將 TGW-ATTACH-1122 替換成 VPC 連接的 ID。

相關資訊

Amazon VPC attachments in AWS Transit Gateway (AWS Transit Gateway 中的 Amazon VPC 連接)

How AWS RAM works with IAM (AWS RAM 如何與 IAM 搭配運作)

Transit gateways in AWS Transit Gateway (AWS Transit Gateway 中的傳輸閘道)

What is AWS Transit Gateway for Amazon VPC? (什麼是適用於 Amazon VPC 的 AWS Transit Gateway?)

AWS 官方已更新 5 個月前