AWS CloudFormation カスタムリソースと Amazon を使用して Infoblox オブジェクトを作成する SNS - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudFormation カスタムリソースと Amazon を使用して Infoblox オブジェクトを作成する SNS

作成者: Tim Sutton (AWS)

概要

注意: AWS Cloud9 は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS Cloud9 引き続き使用できます。詳細はこちら

Infoblox ドメインネームシステム (DNS)、動的ホスト設定プロトコル (DHCP)、および IP アドレス管理 (Infoblox DDI) を使用すると、複雑なハイブリッド環境を一元化して効率的に制御できます。Infoblox を使用するとDDI、同じアプライアンスを使用して、オンプレミスとアマゾン ウェブ サービス (IPAM) クラウドで管理することに加えて、すべてのネットワークアセットを 1 DNS つの権威 IP アドレス管理 (AWS) データベースで検出して記録できます。

このパターンでは、Infoblox を呼び出して、AWS CloudFormation カスタムリソースを使用して Infoblox オブジェクト (DNSレコードやIPAMオブジェクトなど) を作成する方法について説明しますWAPIAPI。Infoblox の詳細についてはWAPI、Infoblox WAPIドキュメントのドキュメントを参照してください。

このパターンのアプローチを使用すると、DNSレコードを作成してネットワークをプロビジョニングする手動プロセスを削除するだけでなく、 AWS とオンプレミス環境のレコードとIPAM設定を一元的に表示できます。このパターンのアプローチは、以下のユースケースに使用できます。

  • Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを作成した後の A レコードの追加 

  • Application Load Balancer を作成した後のCNAMEレコードの追加

  • 仮想プライベートクラウドを作成した後のネットワークオブジェクトの追加 (VPC)

  • 次のネットワーク範囲を指定し、その範囲を使用してサブネットを作成する

このパターンを拡張し、異なるDNSレコードタイプの追加や Infoblox の設定など、他の Infoblox デバイス機能を使用することもできますvDiscovery。 

このパターンでは、 hub-and-spokeハブが AWS クラウドまたはオンプレミスの Infoblox アプライアンスへの接続を必要とし、AWSLambda を使用して Infoblox を呼び出す設計を使用しますAPI。スポークは、AWSOrganizations の同じ組織内の同じアカウントまたは別のアカウントにあり、AWS CloudFormation カスタムリソースを使用して Lambda 関数を呼び出します。

前提条件と制限

前提条件

  • AWS クラウド、オンプレミス、またはその両方にインストールされ、 IPAM および DNSアクションを管理できる管理者ユーザーで設定された既存の Infoblox アプライアンスまたはグリッド。詳細については、Infoblox ドキュメントの「管理者アカウントについて」を参照してください。 

  • Infoblox アプライアンスにレコードを追加する既存のDNS権限ゾーン。詳細については、Infoblox ドキュメントの「権限のあるゾーンの設定」を参照してください。 

  • AWS Organizations の 2 つのアクティブなAWSアカウント。1 つのアカウントはハブアカウントで、もう 1 つのアカウントはスポークアカウントです。

  • ハブアカウントとスポークアカウントは同じAWSリージョンに存在する必要があります。 

  • ハブアカウントの は、AWSTransit Gateway やVPCピアリングなどを使用して Infoblox アプライアンスに接続VPCする必要があります。

  • AWS サーバーレスアプリケーションモデル (AWSSAM)。ローカルにインストールされ、AWSCloud9 または で設定されますAWS CloudShell。

  • Infoblox-Hub.zip および ClientTest.yaml ファイル (添付)AWS。 を含むローカル環境にダウンロードされますSAM。

機能制限

  • AWS CloudFormation カスタムリソースのサービストークンは、スタックが作成されるのと同じリージョンからのものである必要があります。あるリージョンで Amazon Simple Notification Service (Amazon SNS) トピックを作成し、別のリージョンで Lambda 関数を呼び出す代わりに、各リージョンでハブアカウントを使用することをお勧めします。

製品バージョン

  • Infoblox WAPIバージョン 2.7

アーキテクチャ

以下の図表に、このパターンのワークフローを示しています。 

AWS CloudFormation カスタムリソースと Amazon を使用した Infoblox オブジェクトの作成SNS。

この図は、このパターンのソリューションを構成する以下のコンポーネントを示しています。

  1. AWS CloudFormation カスタムリソースを使用すると、スタックの作成、更新、または削除時にAWS CloudFormation 実行されるテンプレートにカスタムプロビジョニングロジックを記述できます。スタックを作成すると、 は、EC2インスタンスで実行されているアプリケーションによってモニタリングされる SNSトピックにcreateリクエストAWS CloudFormation を送信します。

  2. AWS CloudFormation カスタムリソースからの Amazon SNS通知は、特定の AWS Key Management Service (AWS KMS) キーを使用して暗号化され、アクセスは Organizations の組織内のアカウントに制限されます。SNS トピックは、Infoblox を呼び出す Lambda リソースを開始しますWAPIAPI。

  3. Amazon は、Infoblox WAPIURL、ユーザー名、パスワード AWS Secrets Manager Amazon リソースネーム (ARNs) を環境変数として取る次の Lambda 関数をSNS呼び出します。 

    • dnsapi.lambda_handler – AWS CloudFormation カスタムリソースから DNSNameDNSType、および DNSValueの値を受け取り、これらを使用して DNS A レコードと を作成しますCNAMES。

    • ipaddr.lambda_handler – AWS CloudFormation カスタムリソースから VPCCIDRType、、および Network Nameの値を受け取りSubnetPrefix、これらを使用してネットワークデータを Infoblox IPAM データベースに追加するか、新しいサブネットの作成に使用できる次に利用可能なネットワークをカスタムリソースに提供します。

    • describeprefixes.lambda_handler"com.amazonaws."+Region+".s3"フィルターdescribe_managed_prefix_listsAWSAPIを使用して を呼び出し、必要な を取得しますprefix ID

    重要

    これらの Lambda 関数は Python で記述され、互いに似ていますが、異なる を呼び出しますAPIs。

  4. Infoblox グリッドは、物理、仮想、またはクラウドベースのネットワークアプライアンスとしてデプロイできます。 オンプレミスでデプロイすることも、、、Microsoft Hyper-V、LinuxESXi、KVMXen VMware などのさまざまなハイパーバイザーを使用して仮想アプライアンスとしてデプロイすることもできます。Amazon マシンイメージ () を使用して、Infoblox グリッドを AWS クラウドにデプロイすることもできますAMI。

  5. この図は、 AWS クラウドとオンプレミスのリソースIPAMに DNSと を提供する Infoblox グリッドのハイブリッドソリューションを示しています。

テクノロジースタック

  • 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 は、パスワードを含むコード内のハードコードされた認証情報を Secrets Manager へのAPI呼び出しに置き換えて、プログラムでシークレットを取得するのに役立ちます。

  • AWS サーバーレスアプリケーションモデル (AWSSAM) は、 AWS クラウドでサーバーレスアプリケーションを構築するのに役立つオープンソースフレームワークです。

  • Amazon Simple Notification Service (Amazon SNS) は、ウェブサーバーや E メールアドレスなど、パブリッシャーとクライアント間のメッセージ交換の調整と管理に役立ちます。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した仮想ネットワークでAWSリソースを起動するのに役立ちます。この仮想ネットワークは、ユーザー自身のデータセンターで運用されていた従来のネットワークと似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるという利点があります。

コード

ClientTest.yaml サンプルAWS CloudFormation テンプレート (添付) を使用して、Infoblox ハブをテストできます。テンプレートをカスタマイズAWS CloudFormation して、次の表のカスタムリソースを含めることができます。

Infoblox スポークカスタムリソースを使用して A レコードを作成します。

戻り値: 

infobloxref — Infoblox のリファレンス

リソースの例

ARECORDCustomResource: Type: "Custom::InfobloxAPI" Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfobloxDNSFunction DNSName: 'arecordtest.company.com' DNSType: 'ARecord' DNSValue: '10.0.0.1'

Infoblox スポークカスタムリソースを使用してCNAMEレコードを作成する

戻り値: 

infobloxref — Infoblox のリファレンス

リソースの例

CNAMECustomResource: Type: "Custom::InfobloxAPI" Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfoblox DNSFunction DNSName: 'cnametest.company.com' DNSType: 'cname' DNSValue: 'aws.amazon.com'

Infoblox スポークカスタムリソースを使用してネットワークオブジェクトを作成します。

戻り値

infobloxref — Infoblox のリファレンス

network— ネットワーク範囲 (と同じ) VPCCIDR

リソースの例

VPCCustomResource: Type: 'Custom::InfobloxAPI' Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfobloxNextSubnetFunction VPCCIDR: !Ref VpcCIDR Type: VPC NetworkName: My-VPC

Infoblox スポークカスタムリソースを使用して、次に使用可能なサブネットを取得します。

戻り値

infobloxref— Infoblox のリファレンス

network — サブネットのネットワーク範囲

リソースの例

Subnet1CustomResource: Type: 'Custom::InfobloxAPI' DependsOn: VPCCustomResource Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfobloxNextSubnetFunction VPCCIDR: !Ref VpcCIDR Type: Subnet SubnetPrefix: !Ref SubnetPrefix NetworkName: My-Subnet

エピック

タスク説明必要なスキル

Infoblox アプライアンスVPCに接続する を作成します。

ハブアカウントの AWSマネジメントコンソールにサインインしVPC、「Amazon VPC on the AWS Cloud Quick Start reference deployment from AWS Quick Starts」の手順に従って を作成します。

重要

には Infoblox アプライアンスHTTPSへの接続VPCが必要です。この接続にはプライベートサブネットを使用することをお勧めします。

ネットワーク管理者、システム管理者

(オプション) プライベートサブネットのVPCエンドポイントを作成します。

VPC エンドポイントは、プライベートサブネットのパブリックサービスへの接続を提供します。次のエンドポイントが必要です。

  • Lambda が と通信できるようにする Amazon Simple Storage Service (Amazon S3) のゲートウェイエンドポイント AWS CloudFormation

  • Secrets Manager との接続を有効にするSecrets Manager のインターフェースエンドポイント

  • SNS トピックと Secrets Manager シークレットの暗号化を許可する AWS KMS のインターフェイスエンドポイント

プライベートサブネットのエンドポイントの作成の詳細については、Amazon VPCドキュメントの「 VPCエンドポイント」を参照してください。

ネットワーク管理者、システム管理者
タスク説明必要なスキル

AWS SAM テンプレートを構築します。

  1. を含む環境で unzip Infoblox-Hub.zip コマンドを実行しますAWSSAM。

  2. cd Hub/コマンドを実行して、ディレクトリをHubディレクトリに変更します。

  3. sam build コマンドを実行して、AWSSAMテンプレートファイル、アプリケーションコード、および言語固有のファイルと依存関係を処理します。このsam buildコマンドは、ワークフローの続きに期待される形式と場所へのビルドアーティファクトのコピーも実行します。

開発者、システム管理者

AWS SAM テンプレートをデプロイします。

sam deploy コマンドは、必要なパラメータを取得し、 samconfig.toml ファイルに保存します。次に、AWS CloudFormation テンプレートと Lambda 関数を S3 バケットに保存し、そのAWS CloudFormation テンプレートをハブアカウントにデプロイします。 

次のサンプルコードは、AWSSAMテンプレートをデプロイする方法を示しています。

$ sam deploy --guided Configuring SAM deploy ====================== Looking for config file [samconfig.toml] : Found Reading default arguments : Success Setting default arguments for 'sam deploy' ========================================= Stack Name [Infoblox-Hub]: AWS Region [eu-west-1]: Parameter InfobloxUsername: Parameter InfobloxPassword: Parameter InfobloxIPAddress [xxx.xxx.xx.xxx]: Parameter AWSOrganisationID [o-xxxxxxxxx]: Parameter VPCID [vpc-xxxxxxxxx]: Parameter VPCCIDR [xxx.xxx.xxx.xxx/16]: Parameter VPCSubnetID1 [subnet-xxx]: Parameter VPCSubnetID2 [subnet-xxx]: Parameter VPCSubnetID3 [subnet-xxx]: Parameter VPCSubnetID4 []: #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [Y/n]: y #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation [Y/n]: n Capabilities [['CAPABILITY_NAMED_IAM']]: Save arguments to configuration file [Y/n]: y SAM configuration file [samconfig.toml]: SAM configuration environment [default]:
重要

Infoblox のサインイン認証情報は samconfig.toml ファイルに保存されないため、毎回 --guidedオプションを使用する必要があります。

開発者、システム管理者

関連リソース

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip