AWS 帳戶連結是 SDDC 部署程序的一部分。對於新客戶或計劃僅建立幾個 SDDC 的客戶,該程序非常簡單,通常需要很少或者不需要涉及底層 AWS 物件和通訊協定。部署多個 SDDC 的管理員可能需要更好地瞭解此程序的詳細資訊以及涉及的 AWS 角色和權限。

關於 AWS 帳戶連結

VMware Cloud on AWS CloudFormation 範本 (CFT) 在 AWS 美國西部 (奧勒岡州) 區域執行。這不會影響生成的 SDDC 的建立位置,因為所需權限在所有區域中都有效,但 AWS 服務控制原則 (SCP) 不得限制執行 CFT 的 AWS 帳戶存取奧勒岡州區域。載入 CFT 後,您可以對其進行編輯,以便根據需要變更區域。您可以在任何區域中執行 CFT,但應保留一份內部文件來記錄該 CFT 的執行位置。如果您的組織沒有可以存取奧勒岡州區域的成員,則可以從按一下使用 CloudFormation 範本開啟 AWS 主控台時提供的連結下載 CFT,也可以只是將該連結傳送給 AWS 管理員來執行,因為將 AWS 帳戶連結到 VMC 組織只會進行一次。

作為帳戶連結的一部分,並且在持續 SDDC 作業期間,連結的 AWS 帳戶會定期取得所有區域中組織的 VPC 和子網路詳細目錄,以便它擁有組織可用 AWS 區域和 AZ 的最新清單。如果 SCP 限制帳戶存取這些區域或 VPC,則此作業可能會失敗。只要 VMware Cloud on AWS 不使用受限制的區域和 VPC,這種類型的故障是可以接受的。

我們建議在帳戶連結之前,在每個 AZ 中建立一個子網路。連結帳戶時沒有子網路的任何 AZ 將無法供 VMware Cloud on AWS 將來使用,即使稍後建立子網路也是如此,直到執行系統啟動的重新掃描後才可使用。您可以透過再次執行 CFT 來啟動重新掃描,但我們不建議對已連結且部署了 SDDC 的組織執行此作業。

如需帳戶連結的詳細資訊,請參閱 VMware Cloud Tech Zone designlet VMware Cloud on AWS 已連線 VPC 至原生 AWS。如需如何取消連結帳戶的資訊,請參閱 VMware 知識庫文章 83400

帳戶連結使用的 AWS 角色

每次執行 VMware Cloud on AWS CFT 時,都會定義一組新的 AWS 角色,並更新您的 VMware Cloud on AWS 組織以將這些角色用於將來的 SDDC 部署。CFT 會授與一或多個 VMware 擁有的 AWS 帳戶對您 AWS 帳戶中這些角色的存取權:
表 1. 帳戶連結使用的 AWS 角色
角色名稱 受信任實體 用途
vmware-sddc-formation-********-*-RemoteRoleService-********* 347******669 VMware Cloud on AWS 使用這些帳戶查詢 AWS 資源 (如子網路和 VPC),以及在 SDDC 部署或新增主機期間建立和關聯 ENI。
vmware-sddc-formation-********-***-RemoteRolePayer-********* 909******262
vmware-sddc-formation-********-****-***-RemoteRole-************* 對於每個組織都是唯一的 12 位數 AWS 帳戶識別碼。 VMware Cloud on AWS 使用此帳戶執行持續作業,例如在新增或移除區段時或者發生 NSX Edge 移轉或容錯移轉時更新路由表。
現有 SDDC 繼續使用建立 SDDC 時定義的角色,這會建立一個場景,即您的 AWS 帳戶中存在多組角色 (和 CFT),刪除其中任意角色都會影響使用該角色的 SDDC。SDDC 使用的 IAM 角色和 CFT 顯示在 NSX Manager 已連線 VPC 頁面上 (亦可在 SDDC 的 網路與安全性索引標籤上進行存取)。

CFT 建立的 IAM 角色將 AWS AssumeRole 權限授與 VMware Cloud on AWS 服務用於特定 AWS 原則的 VMware AWS 帳戶。此原則由 AWS 定義和管理,出於安全原因,VMware 無權對其進行變更。如果修改或刪除這些角色,帳戶連結將中斷,與已連線 VPC 的通訊將失敗,並且您將無法再部署新的 SDDC 或向連結到該帳戶的現有 SDDC 新增主機。請連絡 VMware 支援以請求修復。

AWS 角色和權限

若要執行將 VMware Cloud on AWS 組織連結到 AWS VPC 的 CloudFormation 範本,您的 AWS 帳戶必須具有執行 CFT 所需的 AWS 權限中顯示的權限。帳戶連結會為帳戶連結使用的 AWS 角色中所示的 VMware 擁有的帳戶設定對 AWS 定義的原則 AmazonVPCCrossAccountNetworkInterfaceOperations 的 AWS AssumeRole 存取權,從而授與持續 SDDC 作業所需的 AWS 權限中顯示的權限。

執行 CFT 所需的 AWS 權限

執行此範本的帳戶必須具有這些權限。

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Effect": "Allow",
 "Action": [
 "ec2:DescribeRouteTables",
 "ec2:CreateRoute",
 "ec2:DeleteRoute",
 "ec2:ReplaceRoute"
 ],
 "Resource": [
 "*"
 ]
 },
 {
 "Effect": "Allow",
 "Action": [
 "ec2:DescribeNetworkInterfaces",
 "ec2:CreateNetworkInterface",
 "ec2:DeleteNetworkInterface",
 "ec2:CreateNetworkInterfacePermission",
 "ec2:ModifyNetworkInterfaceAttribute",
 "ec2:DescribeNetworkInterfaceAttribute",
 "ec2:DescribeVpcs",
 "ec2:DescribeSubnets"
 ],
 "Resource": [
 "*"
 ]
 },
 {
 "Effect": "Allow",
 "Action": [
 "ec2:AssignPrivateIpAddresses",
 "ec2:UnassignPrivateIpAddresses"
 ],
 "Resource": [
 "*"
 ]
 },
 {
 "Effect": "Allow",
 "Action": [
 "cloudformation:CreateStack",
 "cloudformation:DescribeStacks",
 "cloudformation:DescribeStackEvents",
 "cloudformation:DescribeStackResource",
 "cloudformation:DescribeStackResources",
 "cloudformation:GetTemplateSummary",
 "cloudformation:ListStackResources",
 "cloudformation:GetTemplate",
 "cloudformation:ListChangeSets",
 "cloudformation:GetStackPolicy"
 ],
 "Resource": "*"
 },
 {
 "Effect": "Allow",
 "Action": [
 "iam:CreateRole",
 "iam:CreatePolicy",
 "iam:AttachRolePolicy",
 "iam:GetRole",
 "iam:PassRole",
 "iam:PutRolePolicy",
 "lambda:CreateFunction",
 "lambda:InvokeFunction",
 "lambda:GetFunctionConfiguration",
 "lambda:GetFunction",
 "cloudformation:DescribeStackResource",
 "cloudformation:DescribeStackResources"
 ],
 "Resource": "*"
 }
 ]
}
持續 SDDC 作業所需的 AWS 權限
帳戶連結完成後,只需要這些權限 (由 IAM 角色授與)。
重要:

不得變更其中任何角色和權限。這樣做會導致 SDDC 無法運作。

若要查看相關聯的原則權限文件,請登入 AWS 主控台並開啟 https://console.aws.amazon.com/iam/home?region=us-east-1#/policies/arn:aws:iam::aws:policy/AmazonVPCCrossAccountNetworkInterfaceOperations$jsonEditor。以下是該原則的摘要說明。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeRouteTables",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:ReplaceRoute"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AssignPrivateIpAddresses",
                "ec2:UnassignPrivateIpAddresses"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

由於 VMware Cloud on AWS 需要這些 AWS 權限才能進行 SDDC 部署和持續作業 (例如路由表更新和主機取代),因此您需要確保這些角色可以根據需要使用 AWS AssumeRole 功能,並且不會被 AWS 功能 (如 Control Tower Guardrails 或服務控制原則 (SCP)) 阻止。IAM 角色只需要一組最小權限,所有這些權限均由 AWS 在原則 AmazonVPCCrossAccountNetworkInterfaceOperations 中進行管理。這是範本建立的 IAM 角色授與的唯一存取權。

備註:

CFT 還會建立一個 lambda 函數,並為其授與對帳戶中的「說明 VPC」、「說明路由表」和「說明子網路」的存取權,以及建立記錄的權限。執行 CFT 時,此 lambda 函數僅使用一次。其用途是向 VMware 註冊 Cloud Formation 堆疊的完成情況,並提供所建立角色的 ARN。帳戶註冊完成並在從 VMC 主控台部署 SDDC 工作流程期間顯示在選擇 AWS 帳戶下拉式控制項後,如果需要,可以刪除 Lambda 函數 NotifyOfStatusvmware-sddc-formation-******-*****-BasicLambdaRole-****** 角色。