翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Enterprise Blueprint Factory のセットアップ
このセクションでは、 AWS 環境で Enterprise Blueprint Factory をセットアップする方法について説明します。これには、Enterprise Blueprint Factory に必要なリポジトリと AWS リソースをセットアップするための詳細な手順が含まれています。
前提条件
以下は、 AWS 環境で Enterprise Blueprint Factory をセットアップするための前提条件です。
-
以下を実行します AWS アカウント。
-
Enterprise Blueprint Factory の管理と製品のリリースに使用される アカウント
-
リリースされた製品を消費する 1 つ以上のアカウント
-
-
すべてのアカウントは次のとおりです。
-
で組織として管理 AWS Organizations
-
同じ組織単位 (OU) にある
-
-
次の AWS リソースを作成する AWS CloudFormation スタックをデプロイするアクセス許可。
-
Amazon CloudWatch Logs ロググループ
-
AWS CodePipeline パイプライン
-
AWS CodeBuild プロジェクト
-
Amazon EventBridge イベントバスポリシーとルール
-
AWS Identity and Access Management (IAM) ロールとポリシー
-
AWS Key Management Service (AWS KMS) キーとキーポリシー
-
AWS Service Catalog ポートフォリオ、製品、プロビジョニング済み製品
-
Amazon Simple Notification Service (Amazon SNS) トピック、トピックポリシー、サブスクリプション
-
Amazon Simple Storage Service (Amazon S3) の バケット
-
AWS Systems Manager Parameter Store パラメータ
これらのアクセス許可の設定の詳細については、CloudFormation ドキュメント」および「最小特権アクセス許可のポリシーの実装 AWS CloudFormation」を参照してください。
-
-
GitHub アカウント
ベストプラクティス
AWS 環境で Enterprise Blueprint Factory を設定するときは、次のベストプラクティスに従うことをお勧めします。
-
Enterprise Blueprint Factory をデプロイするために必要なアクセス許可を設定するときは、最小権限の原則に従い、必要な最小限のアクセス許可を付与します。詳細については、IAM ドキュメントの「最小特権の付与」と「セキュリティのベストプラクティス」を参照してください。
-
Service Catalog ポートフォリオへのアクセスを設定するときは、最小特権の原則に従い、特定のロール、ユーザー、または管理者にのみアクセスを許可します。Service Catalog のセキュリティのベストプラクティスに従ってください。
リポジトリの作成
このセクションでは、Enterprise Blueprint Factory の設定リポジトリと製品リポジトリを設定するのに役立ちます。リポジトリを設定するには、GitHub で指定されたリポジトリをフォーク
GitHub リポジトリをフォークするには
-
GitHub
にログインします。 -
Configuration repo
GitHub リポジトリに移動します。 -
フォークを選択します。
-
「新しいフォークを作成する」ページの「リポジトリ名」ボックスに「」と入力します
ServiceCatalog-ConfigRepo。 -
(オプション) 説明を入力します。
-
メインブランチのみをコピーを選択します。
-
フォークの作成 を選択します。
-
これらのステップを繰り返して、Code repo
GitHub リポジトリをフォークします。このリポジトリ ServiceCatalog-CodeRepoの名前を入力します。 -
これらのステップを繰り返して、Product repo
GitHub リポジトリをフォークします。このリポジトリ ServiceCatalog-BlueprintProductRepoの名前を入力します。
CodeConnections 接続を作成するには
-
AWS CLI で次のコマンドを入力して、GitHub への CodeConnections 接続を作成します。
aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection> -
AWS デベロッパーツールコンソールを使用して接続を完了します。詳細については、「Update a pending connection」を参照してください。
フォークされたリポジトリのクローンを作成するには
-
次のコマンドを入力して、GitHub リポジトリをローカルワークステーションにクローンします。
git clone git@github.com:<user>/aws-enterprise-blueprint-factory-config-repo ServiceCatalog-ConfigRepo git clone git@github.com:<user>/aws-enterprise-blueprint-factory-blueprint-repo ServiceCatalog-BlueprintProductRepo git clone git@github.com:<user>/aws-enterprise-blueprint-factory-code-repo ServiceCatalog-CodeRepo
Enterprise Blueprint Factory のセットアップ
このセクションの手順では、ターゲットアカウントで Enterprise Blueprint Factory を設定する方法について説明します。GitHub からクローンした製品リポジトリには、2 つのサンプル CloudFormation テンプレート BP-S3と が含まれていますBP-SNS。これらの手順に従って、これら 2 つのサンプルブループリントを製品として Service Catalog にデプロイします。
ロールを設定するには
-
ブループリント開発者のアカウントで、次の信頼ポリシーを作成し、次のように保存します
sc-enduserrole-trust-policy.json。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole" }, "Action": "sts:AssumeRole" } } -
ServiceCatalogEndUserRoleIAM ロールを作成するには、次のコマンドを入力します。aws iam create-role \ --role-name ServiceCatalogEndUserRole \ --assume-role-policy-document file://sc-enduserrole-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \ -- role-name ServiceCatalogEndUserRole注記
開発者は、
ServiceCatalogEndUserRoleロールを使用して Service Catalog 製品をプロビジョニングします。このロールには、ブループリントで定義されたリソースを作成するためのアクセス許可は必要ありません。これは、最小特権のアクセス許可と職務分離のベストプラクティスに従います。 -
次の信頼ポリシーを作成し、 として保存します
sc-launchconstraintrole-trust-policy.json。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
ServiceCataloglogLaunchConstraintRoleIAM ロールを作成するには、次のコマンドを入力します。aws iam create-role \ --role-name ServiceCataloglogLaunchConstraintRole \ --assume-role-policy-document file://sc-launchconstraintrole-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSCloudFormationFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole -
IAM
ServiceCataloglogLaunchConstraintRoleロールに次のポリシーを追加します。Service Catalog ドキュメントの「起動ロールの設定」で説明されているように、製品リソースに必要なその他のアクセス許可を含めます。{ "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }注記
Service Catalog は、このロールを使用して CloudFormation スタックを Service Catalog の製品としてデプロイします。このロールの信頼ポリシーにより、Service Catalog のみが引き受けることができます。他のユーザーまたはサービスは、このロールを引き受けることができません。これは職務分離のベストプラクティスに従います。
-
次の信頼ポリシーを作成し、次のように保存します
sc-codebuild-trust-policy.json。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
IAM
codebuild-servicecatalog-admin-roleロールを作成するには、次のコマンドを入力します。aws iam create-role \ --role-name codebuild-servicecatalog-admin-role \ --assume-role-policy-document file://sc-codebuild-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess \ --role-name codebuild-servicecatalog-admin-role注記
設定パイプラインの CodeBuild ジョブはこのロールを使用します。
Amazon S3 バケットを設定するには
-
CodePipeline アーティファクトの保存に使用される Amazon Simple Storage Service (Amazon S3) バケットを作成するには、Amazon S3 ドキュメントの「バケットの作成」の手順に従います。Amazon S3 のセキュリティのベストプラクティスに従います。
AWS Systems Manager パラメータを設定するには
-
次の表の Systems Manager パラメータを作成するには、「Systems Manager でパラメータストアパラメータを作成する」の手順に従います。これらのパラメータは、設定パイプラインをデプロイする CloudFormation テンプレートで使用されます。
パラメータ名 型 説明 /blueprints/resources/vpc_id文字列 ターゲット Virtual Private Cloud (VPC) の ID を保存するパラメータ。 /blueprints/resources/subnetsStringList ターゲットサブネットIDs を保存するパラメータ。 /blueprints/resources/securitygroupsStringList ターゲットセキュリティグループの IDs を保存するパラメータ。 /blueprints/resources/artifacts-bucket-name文字列 CodePipeline アーティファクトに使用される Amazon S3 バケット名を保存するパラメータ。 /blueprints/resources/BlueprintRepo文字列 Enterprise Blueprint Factory ブループリントが保存されている GitHub リポジトリを保存するパラメータ。デフォルト値は <user>/aws-enterprise-blueprint-factory-blueprint-repoです。/blueprints/resources/CodeRepo文字列 Enterprise Blueprint Factory 設定パイプラインコードと Bootstrapping-Admin-Productコードが保存される GitHub リポジトリを保存するパラメータ。デフォルト値は<user>/aws-enterprise-blueprint-factory-code-repoです。/blueprints/resources/ConfigRepo文字列 Enterprise Blueprint Factory 設定ファイルが保存されている GitHub リポジトリを保存するパラメータ。デフォルト値は <user>/aws-enterprise-blueprint-factory-config-repoです。
CloudFormation テンプレートを更新するには
-
コードリポジトリ (
ServiceCatalog-CodeRepo) で、ServiceCatalog-Pipeline.yml ファイルを開きます。 -
このファイルの次のパラメータのデフォルト値を編集します。
-
ConfigRepositoryNameは、Enterprise Blueprint Factory 設定ファイルが保存されている GitHub リポジトリを保存する Systems Manager パラメータです。デフォルト値は/blueprints/resources/ConfigRepoです。 -
CodeRepositoryNameは、Enterprise Blueprint Factory 設定パイプラインコードとBootstrapping-Admin-Productコードが保存されている GitHub リポジトリを保存する Systems Manager パラメータです。デフォルト値は/blueprints/resources/CodeRepoです。 -
BlueprintRepositoryNameは、Enterprise Blueprint Factory ブループリントが保存されている GitHub リポジトリを保存する Systems Manager パラメータです。デフォルト値は/blueprints/resources/BlueprintRepoです。 -
BranchNameは、設定ファイルが保存されている設定リポジトリのブランチです。デフォルト値はmainです。 -
VPCIDは、ターゲット VPC の ID を保存する Systems Manager パラメータです。デフォルト値は/blueprints/resources/vpc_idです。 -
Subnetsは、ターゲットサブネットの IDs を保存する Systems Manager パラメータです。デフォルト値は/blueprints/resources/subnetsです。 -
SecurityGroupIdsは、ターゲットセキュリティグループの IDs パラメータです。デフォルト値は/blueprints/resources/securitygroupsです。 -
IamRoleNameは、CodeBuild ジョブが使用する IAM ロールの名前です。デフォルト値は ですcodebuild-servicecatalog-admin-role。 -
EnvironmentTypeは、Enterprise Blueprint Factory をデプロイする環境です。デフォルト値はDEVです。 -
ArtifactBucketは、CodePipeline がアーティファクトを保存する Amazon S3 バケットを保存する Systems Manager パラメータです。デフォルト値は です/blueprints/resources/artifacts-bucket-name。 -
CodeConnectionArnは、GitHub への CodeConnections 接続の Amazon リソースネーム (ARN) です。
-
-
ServiceCatalog-Pipeline.yml ファイルを保存して閉じます。
-
次のコマンドを入力して、変更をコードリポジトリにマージします。
cd ServiceCatalog-CodeRepo git add ServiceCatalog-Pipeline.yml git commit -m "<description of change>" git push origin main -
設定リポジトリ (
ServiceCatalog-ConfigRepo) で、bp_config.yml ファイルを開きます。 -
組織に必要なポートフォリオセクションの値を更新します。たとえば、
portfolio_access_rolesおよびshare_to_ou属性を更新します。詳細については、このガイドの「設定ファイル」を参照してください。 -
bp_config.yml ファイルを保存して閉じます。
-
次のコマンドを入力して、変更をコードリポジトリにマージします。
cd ServiceCatalog-ConfigRepo git add bp_config.yml git commit -m "<description of change>" git push origin main
CloudFormation スタックをデプロイするには
-
Enterprise Blueprint Factory 管理アカウントにサインインします。
-
管理権限を持つ IAM ロールに切り替えます。
-
クラウドフォーメーション コンソール
を開きます。 -
画面上部のナビゲーションバーで、ターゲットを選択します AWS リージョン。
-
[スタック] ページでは、右上の [スタックの作成] を選択してから、[新しいリソースを使用 (標準)] を選択します。
-
[Prepare template] (テンプレートの準備) の [Template is ready] (テンプレートの準備が完了しました) を選択します。
-
[テンプレートの指定] で、[テンプレートファイルのアップロード] を選択します。
-
ファイルの選択 を選択し、
ServiceCatalog-CodeRepoフォルダに移動し、ServiceCatalog-Pipeline.yml を選択します。 -
[次へ] を選択して続行し、テンプレートを検証します。
-
スタック名には、スタックの名前を入力します。
-
パラメータセクションで、デフォルト値を変更しないでください。
-
[次へ] を選択します。
-
スタックオプションの設定ページで、デフォルト値を変更せずに、次へを選択します。
-
確認と作成ページで、テンプレートとスタックの詳細を確認し、送信を選択します。
-
スタックデプロイの進行状況をモニタリングします。詳細については、CloudFormation ドキュメントを参照してください。
-
ステータスが に変わるまで待ちます
CREATE_COMPLETE。
デプロイを検証するには
-
ナビゲーションペインで、[Products] (製品) を選択します。
-
ServiceCatalog-Pipeline が製品リストで使用可能であることを確認します。
-
AWS CodePipeline コンソール
を開きます。 -
Name で、設定パイプラインを選択します。デフォルトでは、パイプライン名は です
ServiceCatalog-Pipeline。 -
[View history (履歴の表示)] を選択します。
-
パイプラインとステージの実行のステータスを表示します。ステータスの詳細については、CodePipeline ドキュメントの「実行ステータスの表示」を参照してください。
-
設定パイプラインのステータスが になるまで待ちます
Succeeded。 -
Service Catalog コンソール
を開きます。 -
ナビゲーションペインで、[Products] (製品) を選択します。
-
BP-S3-Product および BP-SNS-Product 製品が使用可能であることを確認します。これは、サンプルブループリントの製品リリースパイプラインが正常に完了したことを示します。
-
Enterprise Blueprint Factory のセットアップ時にデプロイしたサンプルブループリントを削除する場合は、「ブループリントの削除」の手順に従います。
Enterprise Blueprint Factory を削除する
Enterprise Blueprint Factory を使用していない場合は、それを削除して、その AWS リソースに関連するコストの発生を停止できます。
リソースを削除するには
-
Enterprise Blueprint Factory 管理アカウントにデプロイされた IAM ロールを削除するには、次のコマンドを入力します。
aws iam detach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \ --role-name ServiceCatalogEndUserRole aws iam delete-role --role-name ServiceCatalogEndUserRole aws iam detach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole aws iam delete-role --role-name ServiceCataloglogLaunchConstraintRole -
Enterprise Blueprint Factory の CloudFormation スタックを削除します。手順については、CloudFormation コンソールからスタックを削除する」または「 からスタックを削除する AWS CLI」を参照してください。
-
CodePipeline アーティファクトの保存に使用される Amazon S3 バケットを削除します。手順については、Amazon S3 ドキュメントの「バケットの削除」を参照してください。
-
Parameter Store から次の Systems Manager パラメータを削除します。
-
/blueprints/resources/vpc_id -
/blueprints/resources/subnets -
/blueprints/resources/securitygroups -
/blueprints/resources/artifacts-bucket-name -
/blueprints/resources/BlueprintRepo -
/blueprints/resources/CodeRepo -
/blueprints/resources/ConfigRepo
手順については、Systems Manager ドキュメントの「パラメータストアからのパラメータの削除」を参照してください。
-