本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS CloudFormation 自訂資源和 Amazon SNS 建立 Infoblox 物件
由 Tim Sutton (AWS) 建立
Summary
注意: AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解
Infoblox 網域名稱系統 (DNS)、動態主機組態通訊協定 (DHCP) 和 IP 地址管理 (Infoblox DDI
此模式說明如何透過呼叫 Infoblox WAPI API,使用 AWS CloudFormation 自訂資源來建立 Infoblox 物件 (例如 DNS 記錄或 IPAM 物件)。如需 Infoblox WAPI 的詳細資訊,請參閱 Infoblox 文件中的 WAPI
透過使用此模式的方法,除了移除建立記錄和佈建網路的手動程序之外,您還可以取得 AWS 和內部部署環境的 DNS 記錄和 IPAM 組態的統一檢視。您可以針對下列使用案例使用此模式的方法:
在建立 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體之後新增 A 記錄
在建立 Application Load Balancer 之後新增 CNAME 記錄
在建立虛擬私有雲端 (VPC) 之後新增網路物件
提供下一個網路範圍,並使用該範圍來建立子網路
您也可以擴展此模式,並使用其他 Infoblox 裝置功能,例如新增不同的 DNS 記錄類型或設定 Infoblox vDiscovery。
此模式使用中hub-and-spoke設計,其中中樞需要連線至 AWS 雲端或內部部署上的 Infoblox 設備,並使用 AWS Lambda 呼叫 Infoblox API。輪輻位於 AWS Organizations 中相同組織中的相同或不同帳戶中,並使用 AWS CloudFormation 自訂資源呼叫 Lambda 函數。
先決條件和限制
先決條件
安裝在 AWS 雲端、內部部署或兩者上的現有 Infoblox 設備或網格,並使用可管理 IPAM 和 DNS 動作的管理員使用者進行設定。如需詳細資訊,請參閱 Infoblox 文件中的關於管理帳戶
。 您要在 Infoblox 設備上新增記錄的現有 DNS 授權區域。如需詳細資訊,請參閱 Infoblox 文件中的設定授權區域
。 AWS Organizations 中的兩個作用中 AWS 帳戶。一個帳戶是中樞帳戶,另一個帳戶是發言帳戶。
中樞和輻條帳戶必須位於相同的 AWS 區域。
中樞帳戶的 VPC 必須連線至 Infoblox 設備;例如,使用 AWS Transit Gateway 或 VPC 對等互連。
AWS Serverless Application Model (AWS SAM),本機安裝並設定 AWS Cloud9 或 AWS CloudShell。
Infoblox-Hub.zip
和ClientTest.yaml
檔案 (已連接),下載至包含 AWS SAM 的本機環境。
限制
AWS CloudFormation 自訂資源的服務權杖必須來自建立堆疊的相同區域。我們建議您在每個區域中使用中樞帳戶,而不是在一個區域中建立 Amazon Simple Notification Service (Amazon SNS) 主題,並在另一個區域中呼叫 Lambda 函數。
產品版本
Infoblox WAPI 2.7 版
架構
下圖顯示此模式的工作流程。

下圖顯示此模式解決方案的下列元件:
AWS CloudFormation 自訂資源可讓您在建立、更新或刪除堆疊時,在 AWS CloudFormation 執行的範本中撰寫自訂佈建邏輯。當您建立堆疊時,AWS CloudFormation 會將
create
請求傳送至 SNS 主題,該主題由在 EC2 執行個體上執行的應用程式監控。來自 AWS CloudFormation 自訂資源的 Amazon SNS 通知會透過特定 AWS Key Management Service (AWS KMS) 金鑰加密,且存取權僅限於 Organizations 中組織中的帳戶。SNS 主題會啟動呼叫 Infoblox WAPI API 的 Lambda 資源。
Amazon SNS 調用下列 Lambda 函數,以使用 Infoblox WAPI URL、使用者名稱和密碼 AWS Secrets Manager Amazon Resource Names (ARNs) 做為環境變數:
dnsapi.lambda_handler
– 從 AWS CloudFormation 自訂資源接收DNSName
、 和DNSValue
值DNSType
,並使用它們來建立 DNS A 記錄和 CNAMES。ipaddr.lambda_handler
– 從 AWS CloudFormation 自訂資源接收VPCCIDR
、SubnetPrefix
、Type
和Network Name
值,並使用它們將網路資料新增至 Infoblox IPAM 資料庫,或為自訂資源提供可用於建立新子網路的下一個可用網路。describeprefixes.lambda_handler
– 使用"com.amazonaws."+Region+".s3"
篩選條件來擷取所需的 ,以呼叫describe_managed_prefix_lists
AWS APIprefix ID
。
重要
這些 Lambda 函數是以 Python 撰寫,彼此類似,但呼叫不同的 APIs。
您可以將 Infoblox 網格部署為實體、虛擬或雲端型網路設備。 它可以使用一系列的 Hypervisor 部署在內部部署或做為虛擬設備,包括 VMware ESXi、Microsoft Hyper-V、Linux KVM 和 Xen。您也可以使用 Amazon Machine Image (AMI) 在 AWS 雲端部署 Infoblox 網格。
圖表顯示 Infoblox 網格的混合解決方案,其提供 DNS 和 IPAM 給 AWS 雲端和內部部署上的資源。
技術堆疊
AWS CloudFormation
IAM
AWS KMS
AWS Lambda
AWS SAM
AWS Secrets Manager
Amazon SNS
Amazon VPC
工具
AWS CloudFormation 可協助您設定 AWS 資源、快速且一致地佈建資源,並在其整個生命週期中跨 AWS 帳戶和區域管理資源。
AWS Identity and Access Management (IAM) 可透過控制已驗證並授權使用的人員,協助您安全地管理對 AWS 資源的存取。
AWS Key Management Service (AWS KMS) 可協助您建立和控制密碼編譯金鑰,以協助保護您的資料。
AWS Lambda 是一種運算服務,可協助您執行程式碼,而不需要佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需支付您使用的運算時間。
AWS Organizations 是一種帳戶管理服務,可協助您將多個 AWS 帳戶合併到您建立並集中管理的組織。
AWS Secrets Manager 可協助您以 API 呼叫 Secrets Manager,以程式設計方式擷取秘密,取代程式碼中的硬式編碼登入資料,包括密碼。
AWS Serverless Application Model (AWS SAM) 是一種開放原始碼架構,可協助您在 AWS 雲端中建置無伺服器應用程式。
Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和用戶端之間的訊息交換,包括 Web 伺服器和電子郵件地址。
Amazon Virtual Private Cloud (Amazon VPC) 可協助您將 AWS 資源啟動至您定義的虛擬網路。這個虛擬網路類似於傳統網路,您會在自己的資料中心中操作,並享有使用 AWS 可擴展基礎設施的優勢。
Code
您可以使用ClientTest.yaml
範例 AWS CloudFormation 範本 (已連接) 來測試 Infoblox 中樞。您可以自訂 AWS CloudFormation 範本,以包含下表中的自訂資源。
使用 Infoblox 發言者自訂資源建立 A 記錄 | 傳回值:
資源範例:
|
使用 Infoblox 語音自訂資源建立 CNAME 記錄 | 傳回值:
資源範例:
|
使用 Infoblox 發言自訂資源建立網路物件 | 傳回值:
資源範例:
|
使用 Infoblox 發言自訂資源擷取下一個可用的子網路 | 傳回值:
資源範例:
|
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
建立與 Infoblox 設備連線的 VPC。 | 登入您中樞帳戶的 AWS 管理主控台,並依照 AWS Quick Starts 中 AWS Cloud Quick Start 參考部署上的 Amazon VPC 重要VPC 必須具有與 Infoblox 設備的 HTTPS 連線,建議您為此連線使用私有子網路。 | 網路管理員、系統管理員 |
(選用) 建立私有子網路的 VPC 端點。 | VPC 端點為您的私有子網路提供公有服務的連線。需要下列端點:
如需為私有子網路建立端點的詳細資訊,請參閱《Amazon VPC 文件》中的 VPC 端點。 | 網路管理員、系統管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建置 AWS SAM 範本。 |
| 開發人員、系統管理員 |
部署 AWS SAM 範本。 |
下列範例程式碼示範如何部署 AWS SAM 範本:
重要您每次都必須使用 | 開發人員、系統管理員 |
相關資源
使用 Postman 開始使用 WAPIs
(Infoblox 部落格) 使用 BYOL 模型佈建 AWS 的 vNIOS
(Infoblox 文件) quickstart-aws-vpc
(GitHub 儲存庫) describe_managed_prefix_lists
(適用於 Python 文件的 AWS 開發套件)
附件
若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip