View a markdown version of this page

Enterprise Blueprint Factory の使用 - AWS 規範ガイダンス

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

Enterprise Blueprint Factory の使用

このセクションでは、 環境でブループリントを作成、更新、削除する方法について説明します。ライフサイクル全体でブループリントを管理するための詳細な手順を示します。

カスタムブループリントを作成または更新するには、 AWS CloudFormation テンプレートや AWS Cloud Development Kit (AWS CDK) コンストラクトなどの IaC テンプレートを作成する方法を理解している必要があります。このガイドには、Enterprise Blueprint Factory を通じてリリースするブループリントを定義する方法に関する情報や手順は含まれていません。

前提条件

以下は、 AWS 環境で Enterprise Blueprint Factory を使用するための前提条件です。

  • AWS Command Line Interface (AWS CLI)、インストールおよび設定済み

  • ServiceCatalogEndUserRole AWS Identity and Access Management (IAM) ロールを引き受けるアクセス許可

  • CloudFormation テンプレートまたは AWS CDK コンストラクト

ブループリントの作成

Enterprise Blueprint Factory パイプラインは、設定ファイルで定義したブループリントをデプロイします。開発者は、設定ファイルを設定リポジトリにマージして設定パイプラインを開始します。次に、エンタープライズブループリントファクトリーは を使用してServiceCatalogLaunchConstraintRole、ブループリントを Service Catalog の製品としてデプロイします。ブループリントの作成時に設定パイプラインとリリースパイプラインが実行するアクションの詳細については、このガイドの「ブループリントの作成」を参照してください。

設計図を製品リポジトリに追加するには
  1. このガイドの「エンタープライズブループリントファクトリーのセットアップ」の指示に従って、エンタープライズブループリントファクトリーをセットアップしていることを確認します。

  2. ServiceCataloglogLaunchConstraintRole ロールのポリシーで、ブループリントで定義されたリソースをプロビジョニングできることを確認します。

  3. 製品リポジトリ (ServiceCatalog-BlueprintProductRepo) で、新しいブループリントのフォルダを作成します。

  4. IaC テンプレート (CloudFormation テンプレートまたは AWS CDK コンストラクト) を、作成したフォルダに貼り付けます。

  5. 作成したフォルダに product_config.json という名前のファイルを作成します。

  6. product_config.json ファイルを開き、ファイルに以下を貼り付けます。

    { "SchemaVersion": "1.0", "ProductVersionName": "1.0.1", "Deprecated_Versions" : [], "ProductVersionDescription": "<description>", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "./<folder name>/<file name>" } }

    コードの説明は以下のとおりです。

    • <description> は、ブループリントバージョンの簡単な説明です。

    • <folder name> は、製品リポジトリで作成したフォルダの名前です。

    • <file name> は IaC テンプレートの名前です

    注記

    スキーマバージョンまたは製品バージョン名は、組織のポリシーに合わせて更新できます。

  7. product_config.json ファイルを保存して閉じます。

  8. 次のコマンドを入力して、変更を製品リポジトリにマージします。

    cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "The first version of <file name> blueprint" git push origin main
設定ファイルを更新するには
  1. 設定リポジトリ (ServiceCatalog-ConfigRepo) で、config.yml ファイルを開きます。

  2. 新しいブループリントに必要な portfolios セクションと productsセクションを編集します。詳細については、このガイドの「設定ファイル」を参照してください。

  3. config.yml ファイルを保存して閉じます。

  4. 次のコマンドを入力して、変更を設定リポジトリにマージします。

    cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin main

    このプルリクエストを承認すると、設定パイプラインが開始されます。設定パイプラインは、製品のリリースパイプラインを作成します。

デプロイログを確認するには
  1. Enterprise Blueprint Factory 管理アカウントにサインインします。

  2. AWS CodePipeline コンソールを開きます。

  3. Name で、製品のリリースパイプラインを選択します。デフォルトでは、パイプライン名は ですBluePrint_<Product-Name>-<CloudFormation-Stack-Name>

  4. [View history (履歴の表示)] を選択します。

  5. パイプラインとステージ実行のステータスを表示します。ステータスの詳細については、CodePipeline ドキュメントの「実行ステータスの表示」を参照してください。

  6. パイプラインが失敗した場合、失敗の原因を確認します。パイプラインのモニタリングを設定する方法については、CodePipeline ドキュメントの「パイプラインのモニタリング」を参照してください。cfn-lint または cfn_nag チェックが原因でリリースパイプラインが失敗した場合は、テンプレートのエラーを修正します。別のプルリクエストを製品リポジトリに送信します。これにより、リリースパイプラインが再起動されます。テンプレートエラーの修正の詳細については、このガイドの「トラブルシューティング」セクションを参照してください。

  7. リリースパイプラインのステータスが になるまで待ちますSucceeded

デプロイを検証するには
  1. 組織内のコンシューマーアカウントにサインインします。

  2. IAM ServiceCatalogEndUserRole ロールを引き受けます。

  3. Service Catalog コンソールを開きます。

  4. ナビゲーションペインで、[Products] (製品) を選択します。

  5. 新製品が製品リストで使用可能であることを確認します。

設計図の更新

ブループリントの作成時に設定パイプラインとリリースパイプラインが実行するアクションの詳細については、このガイドの「ブループリントの更新」を参照してください。

ブループリントを更新するには
  1. 製品リポジトリで、製品の フォルダに移動します。

  2. 更新された IaC テンプレートを貼り付けます。ファイル名が以前のバージョンと同じであることを確認します。

  3. product_config.json ファイルを開きます。

  4. ではProductVersionName、バージョン番号を更新します。

  5. 以前の製品バージョンが将来デプロイされないようにするには、 にDeprecated_Versions以前のバージョン番号をカンマ区切りリストに入力します。

  6. 次のコマンドを入力して、変更を製品リポジトリにマージします。

    cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "Version <number> of <file name> blueprint" git push origin main

    このプルリクエストを承認すると、製品のリリースパイプラインが開始されます。

デプロイログを確認するには
  1. Enterprise Blueprint Factory 管理アカウントにサインインします。

  2. AWS CodePipeline コンソールを開きます。

  3. Name で、リリースパイプラインを選択します。デフォルトでは、パイプライン名は ですBluePrint_<Product-Name>-<CloudFormation-Stack-Name>

  4. [View history (履歴の表示)] を選択します。

  5. パイプラインとステージ実行のステータスを表示します。ステータスの詳細については、CodePipeline ドキュメントの「実行ステータスの表示」を参照してください。

  6. パイプラインが失敗した場合、失敗の原因を確認します。パイプラインのモニタリングを設定する方法については、CodePipeline ドキュメントの「パイプラインのモニタリング」を参照してください。cfn-lint または cfn_nag チェックが原因でリリースパイプラインが失敗した場合は、テンプレートのエラーを修正します。別のプルリクエストを製品リポジトリに送信します。これにより、リリースパイプラインが再起動されます。テンプレートエラーの修正の詳細については、このガイドの「トラブルシューティング」セクションを参照してください。

  7. リリースパイプラインのステータスが になるまで待ちますSucceeded

更新を検証するには
  1. 組織内のコンシューマーアカウントにサインインします。

  2. IAM ServiceCatalogEndUserRole ロールを引き受けます。

  3. Service Catalog コンソールを開きます。

  4. ナビゲーションペインで、[Products] (製品) を選択します。

  5. 新しい製品バージョンが製品リストで使用可能であることを確認します。

ブループリントの削除

製品を削除すると、Service Catalog は製品を含むすべてのポートフォリオからすべての製品バージョンを削除します。詳細については、Service Catalog ドキュメントの「製品の削除」を参照してください。ブループリントの作成時に設定パイプラインとリリースパイプラインが実行するアクションの詳細については、このガイドの「ブループリントの削除」を参照してください。

ブループリントを削除するには
  1. 設定リポジトリで、config.yml ファイルを開きます。

  2. 製品セクションを編集し、削除する製品を削除またはコメントアウトします。

  3. config.yml ファイルを保存して閉じます。

  4. 次のコマンドを入力して、変更を設定リポジトリにマージします。

    cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin main

    このプルリクエストを承認すると、設定パイプラインが開始されます。設定パイプラインは、製品とそのリリースパイプラインを削除します。

  5. 製品リポジトリで、製品の内容を含む製品のフォルダを削除します。

  6. 次のコマンドを入力して、変更を製品リポジトリにマージします。

    cd ServiceCatalog-BlueprintProductRepo git add . git commit -m "Delete <file name> blueprint" git push origin main
削除を検証するには
  1. 組織内のコンシューマーアカウントにサインインします。

  2. IAM ServiceCatalogEndUserRole ロールを引き受けます。

  3. Service Catalog コンソールを開きます。

  4. ナビゲーションペインで、[Products] (製品) を選択します。

  5. 削除した製品が使用できなくなったことを確認します。

トラブルシューティング

ブループリントを作成または更新すると、cfn-lint ツールと cfn-nag ツールによってブループリントが検証されます。リリースパイプラインの検証の詳細については、このガイドの「リリースパイプライン」を参照してください。報告された構文またはセキュリティエラーにより、パイプラインは失敗します。リリースパイプラインを介してブループリントを正常にデプロイするには、ブループリントのエラーを修正する必要があります。

以下は、障害と警告の 2 つのセキュリティ関連のエラーを示す出力例です。

BP-SNS.yml --------------------------------------------------- BP-SNS.yml --------------------------------------------------- | WARN W47 | | Resource: ["ExampleTopic"] | Line numbers: [5] | | SNS Topic should specify KmsMasterKeyId property --------------------------------------------------- | FAIL F18 | | Resource: ["ExampleTopicPolicy"] | Line numbers: [10] | | SNS topic policy should not allow * principal Failures count: 1 Warnings count: 1

これらのエラーを修正するには、設計図ファイルで、Amazon Simple Notification Service (Amazon SNS) トピックポリシーの*プリンシパルを置き換え、 AWS Key Management Service (AWS KMS) キーをトピックに関連付けます。次のコード例は、これらの更新を示しています。

ExampleTopic: Type: AWS::SNS::Topic Properties: TopicName: ExampleTopic ExampleTopicPolicy: Type: AWS::SNS::TopicPolicy Properties: KmsMasterKeyId: alias/aws/sns # Added KMS key PolicyDocument: Id: Id1 Version: '2012-10-17' Statement: - Sid: Sid2 Effect: Allow Principal: "Service" : "s3.amazonaws.com" # Replaced "AWS": '*' Action: 'sns:Publish' Resource: !Ref ExampleTopic Topics: - !Ref ExampleTopic