複数のAWSアカウントとAWSリージョンで AWS Service Catalog 製品を管理する - AWS 規範ガイダンス

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

複数のAWSアカウントとAWSリージョンで AWS Service Catalog 製品を管理する

作成者: Ram Kandaswamy (AWS)

環境:本稼働

テクノロジー: 管理とガバナンス、インフラストラクチャ、モダナイゼーション

ワークロード:その他すべてのワークロード

AWS サービス: AWS Service Catalog AWS CloudFormation

[概要]

Amazon Web Services (AWS) Service Catalog は、企業向けのコードとしてのインフラストラクチャ (IaC) テンプレートのガバナンスと分散を簡素化し、高速化します。AWS CloudFormation テンプレートを使用して、製品に必要なAWSリソース (スタック) のコレクションを定義します。AWS CloudFormation StackSets は、単一のオペレーションで複数のアカウントとAWSリージョンにまたがるスタックを作成、更新、または削除できるようにすることで、この機能を拡張します。

AWS Service Catalog 管理者は、デベロッパーによって作成された CloudFormation テンプレートを使用して製品を作成し、公開します。その後、これらの製品はポートフォリオに関連付けられ、ガバナンスに制約が適用されます。他のAWSアカウントまたは組織単位 (OUs) のユーザーが製品を利用できるようにするには、通常、ポートフォリオをユーザーと共有します。このパターンは、 に基づく AWS Service Catalog 製品オファリングを管理するための代替アプローチについて説明しますAWS CloudFormation StackSets。ポートフォリオを共有する代わりに、スタックセットの制約を使用して、製品をデプロイして使用できるAWSリージョンとアカウントを設定します。このアプローチを使用すると、AWSサービスカタログ製品を複数のアカウント、、OUsAWSリージョンにプロビジョニングし、ガバナンス要件を満たしながら一元管理できます。 

この方法の利点:

  • 製品はプライマリアカウントからプロビジョニング、管理され、他のアカウントと共有されることはありません。

  • この方法では、特定の製品に基づいてプロビジョニングされたすべての製品 (スタック) を統合して表示できます。

  • AWS Service Management Connector での設定は、1 つのアカウントのみを対象とするため、簡単です。

  • AWS Service Catalog から製品をクエリして使用するのは簡単です。

前提条件と制限

前提条件

  • AWS CloudFormation IaC とバージョニング用の テンプレート

  • AWS リソースのプロビジョニングと管理のためのマルチアカウント設定と AWS Service Catalog

機能制限

  • このアプローチでは を使用しAWS CloudFormation StackSets、 の制限 StackSets が適用されます。

    • StackSets は、マクロを介した CloudFormation テンプレートのデプロイをサポートしていません。マクロを使用してテンプレートを前処理している場合、 StackSetsベースのデプロイは使用できません。

    • StackSets では、スタックセットからスタックの関連付けを解除できるため、特定のスタックをターゲットにして問題を解決できます。ただし、関連付けを解除したスタックをスタックセットに再関連付けることはできません。

  • AWS Service Catalog は StackSet 名前を自動生成します。カスタマイズは現在サポートされていません。

アーキテクチャ

ターゲット アーキテクチャ

ユーザーはAWS CloudFormation 、 テンプレートと を使用して AWS Service Catalog 製品を管理します StackSets。
  1. ユーザーは、 JSONまたは YAML形式でAWSリソースをプロビジョニングするためのAWS CloudFormation テンプレートを作成します。

  2. CloudFormation テンプレートは AWS Service Catalog に製品を作成し、ポートフォリオに追加します。

  3. ユーザーはプロビジョニングされた製品を作成し、ターゲットアカウントに CloudFormation スタックを作成します。

  4. 各スタックは、 CloudFormation テンプレートで指定されたリソースをプロビジョニングします。

ツール

AWS サービス

  • AWS CloudFormation は、AWSリソースをセットアップし、迅速かつ一貫してプロビジョニングし、AWSアカウントとリージョン全体のライフサイクルを通じてリソースを管理するのに役立ちます。

  • AWS コマンドラインインターフェイス (AWS CLI) は、コマンドラインシェル内のコマンドを使用してAWSサービスとやり取りするのに役立つオープンソースツールです。

  • AWS Identity and Access Management (IAM) は、誰が認証され、誰に使用を許可されているかを制御することで、AWSリソースへのアクセスを安全に管理できます。

  • AWS Service Catalog を使用すると、 用に承認された IT サービスのカタログを一元管理できますAWS。エンドユーザーは、組織によって設定された制約に従って、必要な承認済みの IT サービスのみをすばやくデプロイできます。

エピック

タスク説明必要なスキル

ポートフォリオを作成します。

ポートフォリオは、特定の基準に基づき、グループ化された 1 つ以上の製品を含むコンテナです。ポートフォリオを製品に使用すると、製品セット全体に共通の制約を適用しやすくなります。

ポートフォリオを作成するには、AWSService Catalog ドキュメントの手順に従ってください。を使用している場合はAWSCLI、 コマンドの例を次に示します。

aws servicecatalog create-portfolio --provider-name my-provider --display-name my-portfolio

詳細については、AWS「 CLIドキュメント」を参照してください。

AWS Service Catalog、 IAM

CloudFormation テンプレートを作成します。

リソースを記述する CloudFormation テンプレートを作成します。必要に応じて、リソースプロパティをパラメータ化する必要があります

AWS CloudFormation, JSON/YAML

バージョン情報を使用して製品を作成します。

CloudFormation テンプレートは、AWSService Catalog で発行すると製品になります。オプションのバージョン詳細パラメータ (バージョンタイトルや説明など) に値を指定することは、後で製品について問い合わせるときに役立ちます。

製品を作成するには、AWSService Catalog ドキュメント の手順に従ってください。を使用している場合AWSCLI、コマンドの例は次のとおりです。

aws servicecatalog create-product --cli-input-json file://create-product-input.json

create-product-input.json は製品のパラメータを渡すファイルはどこですか。注:ファイルの例として、このパターンの「追加情報」セクションを参照してください。詳細については、AWS「 CLIドキュメント」を参照してください。

AWS Service Catalog

制約を適用します。

スタックセットの制約をポートフォリオに適用して、複数のAWSアカウント、リージョン、アクセス許可などの製品デプロイオプションを設定します。手順については、AWS「Service Catalog ドキュメント」を参照してください。

AWS Service Catalog

アクセス許可を追加します。

ユーザーがポートフォリオ内の製品を起動できるようにアクセス権限を付与します。コンソールの手順については、AWS「Service Catalog ドキュメント」を参照してください。を使用している場合はAWSCLI、 コマンドの例を次に示します。

aws servicecatalog associate-principal-with-portfolio \ --portfolio-id port-2s6abcdefwdh4 \ --principal-arn arn:aws:iam::444455556666:role/Admin \ --principal-type IAM

詳細については、AWS「 CLIドキュメント」を参照してください。

AWS Service Catalog、 IAM

製品をプロビジョニングします。

プロビジョニングされた製品は、製品のリソースインスタンスです。 CloudFormation テンプレートに基づいて製品をプロビジョニングすると、 CloudFormation スタックとその基盤となるリソースが起動します。

スタックセットの制約に基づいて、該当するAWSリージョンとアカウントをターゲットにして製品をプロビジョニングします。ではAWSCLI、 コマンドの例を次に示します。

aws servicecatalog provision-product \ --product-id prod-abcdfz3syn2rg \ --provisioning-artifact-id pa-abc347pcsccfm \ --provisioned-product-name "mytestppname3"

詳細については、AWS「 CLIドキュメント」を参照してください。

AWS Service Catalog

関連リソース

リファレンス

チュートリアルと動画

追加情報

create-product コマンドを使用すると、 cli-input-jsonパラメータは、製品所有者、サポート E メール、 CloudFormation テンプレートの詳細などの情報を指定するファイルを指します。以下にそのようなファイルの例を示します。

{ "Owner": "Test admin", "SupportDescription": "Testing", "Name": "SNS", "SupportEmail": "example@example.com", "ProductType": "CLOUD_FORMATION_TEMPLATE", "AcceptLanguage": "en", "ProvisioningArtifactParameters": { "Description": "SNS product", "DisableTemplateValidation": true, "Info": { "LoadTemplateFromURL": "<url>" }, "Name": "version 1" }