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

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

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

作成者: Ram Kandaswamy (AWS)

概要

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

AWS Service Catalog 管理者は、開発者が作成した CloudFormation テンプレートを使用して製品を作成し、公開します。その後、これらの製品はポートフォリオに関連付けられ、ガバナンスに制約が適用されます。他の AWSアカウントまたは組織単位 (OUs) のユーザーが製品を利用できるようにするには、通常、ポートフォリオを共有します。このパターンは、 に基づく AWS Service Catalog 製品を管理するための代替アプローチを示していますAWS CloudFormation StackSets。ポートフォリオを共有する代わりに、スタックセット制約を使用して、製品をデプロイして使用できるAWSリージョンとアカウントを設定します。このアプローチを使用すると、AWSService Catalog 製品を複数のアカウント、、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. ユーザーは、 AWSリソースを JSONまたは YAML形式でプロビジョニングするための 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

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

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 は製品のパラメータを渡すファイルはどこですか。注:ファイルの例として、このパターンの「追加情報」セクションを参照してください。詳細については、 AWSCLIドキュメントを参照してください。

AWS Service Catalog

制約を適用します。

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

AWS Service Catalog

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

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

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

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

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"

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

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" }