本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS Organizations 自動標記 Transit Gateway 附件
由 Richard Milner-Watts (AWS)、Hartis Bin Ayub (AWS) 和 John Capps (AWS) 建立
環境:生產 | 技術:聯網;基礎設施;管理和治理;操作 | |
AWS 服務:AWSStep Functions;AWSTransit Gateway;AmazonVPC;AWSLambda |
Summary
在 Amazon Web Services (AWS) 上,您可以使用 AWS Resource Access Manager
此解決方案提供自動化機制,以收集由 AWS Organizations <CIDR-range>-<AccountName>
會將 形式的名稱標籤套用至擁有傳輸閘道之 帳戶內的附件。
此解決方案可與解決方案程式庫中的 Serverless Transit Network Orchestrator
先決條件和限制
先決條件
作用中AWS帳戶
包含所有相關帳戶的 AWS Organizations 組織
在組織的根目錄下存取組織管理帳戶,以建立必要的 AWS Identity and Access Management (IAM) 角色
共用網路成員帳戶,其中包含與組織共用且具有附件的一或多個傳輸閘道
架構
下列 AWS 管理主控台的螢幕擷取畫面顯示沒有相關聯名稱標籤的 Transit Gateway 附件範例,以及兩個具有此解決方案產生之名稱標籤的 Transit Gateway 附件範例。產生的名稱標籤結構為 <CIDR-range>-<AccountName>
。
此解決方案使用 AWS CloudFormation
解決方案從 AWS Organizations 取得帳戶名稱後,Step Functions 狀態機器會取得所有 Transit Gateway 附件 IDs。這些由AWS區域平行處理。此處理包括查詢每個附件CIDR的範圍。CIDR 範圍是透過搜尋區域內的 Transit Gateway 路由表來取得相符的 Transit Gateway 連接 ID。如果所有必要資訊都可用,解決方案會將名稱標籤套用至附件。解決方案不會覆寫任何現有的名稱標籤。
解決方案會以 Amazon EventBridge
目標技術堆疊
Amazon EventBridge
AWS Lambda
AWS 組織
AWS 傳輸閘道
Amazon Virtual Private Cloud (Amazon VPC)
AWS X-Ray
目標架構
解決方案架構和工作流程如下圖所示。
排程的事件會啟動規則。
EventBridge 規則會啟動 Step Functions 狀態機器。
狀態機器會叫用
tgw-tagger-organizations-account-query
Lambda 函數。tgw-tagger-organizations-account-query
Lambda 函數會擔任組織管理帳戶中的角色。tgw-tagger-organizations-account-query
Lambda 函數呼叫 Organizations API 以傳回AWS帳戶中繼資料。狀態機器會叫用
tgw-tagger-attachment-query
Lambda 函數。對於每個區域,狀態機器會並行叫用
tgw-tagger-rtb-query
Lambda 函數來讀取每個連接CIDR的範圍。對於每個區域,狀態機器會並行叫用
tgw-tagger-attachment-tagger
Lambda 函數。為 Shared Networking 帳戶中的 Transit Gateway 附件建立名稱標籤。
自動化和擴展
解決方案會平行處理每個區域,以減少執行的總持續時間。
工具
AWS 服務
AWS CloudFormation – 透過將基礎設施視為程式碼,AWS CloudFormation 提供建立相關AWS和第三方資源集合模型、快速且一致地佈建資源,以及在其生命週期中管理資源的方法。
Amazon EventBridge – Amazon EventBridge 是一種無伺服器事件匯流排服務,可用來將應用程式與各種來源的資料連線。 EventBridge 接收事件、環境變更的指標,以及套用規則將事件路由至目標。根據事件結構、稱為事件模式或排程,規則會將事件與目標配對。
AWS Lambda – AWS Lambda 是一種運算服務,支援執行程式碼,無需佈建或管理伺服器。Lambda 只會在需要時執行程式碼,並自動擴展,從每天的幾個請求擴展到每秒數千個請求。您只需為使用的運算時間支付費用。程式碼未執行時無須付費。
AWS 組織 – AWS 組織可協助您在AWS資源成長和擴展時,集中管理和管理環境。您可以使用 AWS Organizations 以程式設計方式建立新AWS帳戶並配置資源、將帳戶分組以組織工作流程、將政策套用至帳戶或群組以進行管理,以及使用所有帳戶的單一付款方式簡化帳單。
AWS Step Functions – AWS Step Functions 是一種低程式碼視覺化工作流程服務,用於協調AWS服務、自動化業務流程和建置無伺服器應用程式。工作流程會管理故障、重試、平行化、服務整合和可觀測性,讓開發人員可以專注於更高價值的業務邏輯。
AWS Transit Gateway
– AWS Transit Gateway 透過中央中樞連接VPCs和內部部署網路。這可簡化您的網路,並結束複雜的互連關係。它充當雲端路由器,因此每個新連線只會進行一次。 Amazon VPC – Amazon Virtual Private Cloud (Amazon VPC) 是一種在您定義的邏輯隔離虛擬網路中啟動AWS資源的服務。
AWS X-Ray – AWS X-Ray 會收集應用程式提供的請求資料,並提供工具供您用來檢視、篩選和深入了解該資料,以識別問題和最佳化的機會。
Code
此解決方案的原始程式碼可在 Transit Gateway Attachment Tagger
tgw-attachment-tagger-main-stack.yaml
會建立所有資源,以支援 Shared Networking 帳戶中的此解決方案。tgw-attachment-tagger-organizations-stack.yaml
在組織的管理帳戶中建立角色。
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
收集必要的先決條件資訊。 | 若要設定從 Lambda 函數到 AWS Organizations 的跨帳戶存取權API,您需要組織的管理帳戶的帳戶 ID。 注意:建立兩個 CloudFormation 堆疊的順序很重要。您必須先將資源部署至共用網路帳戶。在將資源部署到組織的管理帳戶中之前,共用網路帳戶中的角色必須已存在。如需詳細資訊,請參閱 AWS 文件 | DevOps 工程師 |
啟動主要解決方案堆疊的 CloudFormation 範本。 | 主要解決方案堆疊的範本將部署IAM角色、Step Functions 工作流程、Lambda 函數和 CloudWatch 事件。 開啟 Shared Networking 帳戶的AWS管理主控台,然後開啟 CloudFormation 主控台。 使用
如需啟動 CloudFormation 堆疊的詳細資訊,請參閱 AWS 文件 。 | DevOps 工程師 |
確認解決方案已成功啟動。 | 等待 CloudFormation 堆疊達到 CREATE_COMPLETE 狀態。這應該需要不到一分鐘的時間。 開啟 Step Functions 主控台,並確認已建立名為 tgw-attachment-tagger-state-machine 的新狀態機器。 | DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
收集必要的先決條件資訊。 | 若要設定從 Lambda 函數到 AWS Organizations 的跨帳戶存取權API,您需要共用網路帳戶的帳戶 ID。 | DevOps 工程師 |
啟動 Organizations 堆疊的 CloudFormation 範本 | AWS Organizations 堆疊的範本將在組織的管理帳戶中部署IAM角色。 存取組織的管理帳戶的AWS主控台。 然後開啟 CloudFormation 主控台。 使用
對於其他堆疊建立選項,請使用預設值。 | DevOps 工程師 |
確認解決方案已成功啟動。 | 等待 CloudFormation 堆疊達到 CREATE_COMPLETE 狀態。這應該需要不到一分鐘的時間。 開啟 Identity and Access Management (IAM) 主控台,並確認已建立名為 tgw-attachment-tagger-organization-query-role 的新角色。 | DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
執行 狀態機器。 | 開啟 Shared Networking 帳戶的 Step Functions 主控台,然後在導覽窗格中選擇狀態機器。 選取狀態機器 tgw-attachment-tagger-state-機器 ,然後選擇開始執行 。 由於 解決方案不使用此狀態機器的輸入,因此您可以使用預設值。
選擇 Start Execution (開始執行)。 | DevOps 工程師 |
觀察狀態機器直到完成。 | 在開啟的新頁面上,您可以觀看狀態機器執行。持續時間取決於要處理的 Transit Gateway 附件數量。 在此頁面上,您可以檢查狀態機器的每個步驟。您可以在狀態機器中檢視各種任務,並遵循 Lambda 函數 CloudWatch 日誌的連結。對於在地圖中平行執行的任務,您可以使用索引下拉式清單來檢視每個區域的特定實作。 | DevOps 工程師 |
驗證 Transit Gateway 連接標籤。 | 開啟 Shared Networking 帳戶的VPC主控台,然後選擇 Transit Gateway Attachments 。 在主控台上,會為符合條件的附件提供名稱標籤 (附件會傳播到 Transit Gateway 路由表,資源擁有者是組織的成員)。 | DevOps 工程師 |
驗證 CloudWatch 事件啟動。 | 等待 CloudWatch 事件啟動。這是排程於 06:00 UTC。 然後開啟 Shared Networking 帳戶的 Step Functions 主控台,然後在導覽窗格中選擇狀態機器。 選取狀態機器 tgw-attachment-tagger-state- 機器 。確認解決方案在 06:00 執行UTC。 | DevOps 工程師 |