リソースをプロジェクトに追加する - AWS CodeStar

2024 年 7 月 31 日をもって、Amazon Web Services (AWS) は AWS CodeStar プロジェクトの作成と閲覧のサポートを終了します。2024 年 7 月 31 日以降、AWS CodeStar コンソールにアクセスしたり、新しいプロジェクトを作成したりできなくなります。ただし、AWS CodeStar によって作成された AWS リソース (ソースリポジトリ、パイプライン、ビルドなど) は、この変更の影響を受けず、引き続き機能します。AWS CodeStarこの廃止による接続および AWS CodeStar 通知への影響はありません。

 

作業の追跡、コードの開発、アプリケーションのビルド、テスト、デプロイをご希望の場合、Amazon CodeCatalyst に、合理化された導入プロセスと、ソフトウェアプロジェクトを管理するための追加機能が用意されています。Amazon CodeCatalyst の機能価格について詳しくは、リンク先をご覧ください。

リソースをプロジェクトに追加する

すべてのプロジェクトの AWS CodeStar テンプレートにはそれぞれ、アプリケーションの AWS ランタイム依存関係 (データベーステーブルや Lambda 関数など) をモデリングする AWS CloudFormation ファイルが含まれています。これは、ファイル /template.yml のソースリポジトリに保存されています。

注記

以下のプロジェクトサポートの変更により作成された以下のプロジェクトでは、これらのステップを使用できます。

  • 任意の Lambda プロジェクト。

  • 2018 年 8 月 3 日以降に作成された Amazon EC2 または Elastic Beanstalk プロジェクトの場合、AWS CodeStar により、プロジェクトリポジトリに /template.yml ファイルがプロビジョニングされています。

このファイルを変更するには、AWS CloudFormation リソースを Resources セクションに追加します。template.yml ファイルを変更することで、AWS CodeStar および AWS CloudFormation で、新しいリソースをプロジェクトに追加できるようになります。一部のリソースでは、他のアクセス許可をプロジェクトの CloudFormation ワーカーロールのポリシーに追加する必要があります。テンプレート要素およびフォーマットについては、「AWS リソースタイプのリファレンス」を参照してください。

プロジェクトに追加する必要のあるリソースを決定したら、テンプレートをカスタマイズするための大まかな手順に従って実行します。AWS CloudFormation リソースとその必要なプロパティのリストについては、「AWS リソースタイプのリファレンス」を参照してください。

このセクションのステップに従って、AWS CodeStar プロジェクトテンプレートの変更とリソースの追加を行い、プロジェクトの CloudFormation ワーカーロールのアクセス許可を IAM で展開します。この例では、AWS::SQS::Queue リソースは、template.yml ファイルに追加されます。この変更によって、AWS CloudFormation の自動応答が開始され、Amazon Simple キューサービスキューがプロジェクトに追加されます。

ステップ 1: IAM で CloudFormation ワーカーロールを編集する

ステップ 1 および 5 を実行するには、管理者ユーザーとしてサインインする必要があります。

注記

プロジェクトがアクセス許可の境界ポリシーでプロビジョニングされた場合は、このステップをスキップできます。

2018 年 12 月 6 日 (PDT) 以降に作成されたプロジェクトの場合、AWS CodeStar により、アクセス許可の境界ポリシーを使用してプロジェクトがプロビジョニングされています。

  1. AWS Management Consoleにサインインして、https://console.aws.amazon.com/codestar/ で、AWS CodeStar コンソールを開きます。

  2. プロジェクトを作成するか、template.yml file を含む既存のプロジェクトを選択して、[Project resources] (プロジェクトリソース) ページを開きます。

  3. [Project Resources] (プロジェクトリソース) のリソースリストで、CodeStarWorker/AWS CloudFormation ロール用に作成した IAM ロールを検索します。ルール名の形式は次のとおりです: role/CodeStarWorker-Project_name-CloudFormation

  4. ロールが IAM コンソールで開きます。[Permissions] (アクセス許可) タブの [Inline Policies] (インラインポリシー) で、サービスロールポリシーの列を開き、[Edit Policy] (ポリシーの編集) を選択します。

  5. [JSON] タブを選択してポリシーを編集します。

    注記

    ワーカーロールに添付されるポリシーは CodeStarWorkerCloudFormationRolePolicy です。

  6. [JSON] フィールドで、Statement 要素に次のポリシーステートメントを追加します。

    { "Action": [ "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sqs:ListQueues", "sqs:GetQueueUrl" ], "Resource": [ "*" ], "Effect": "Allow" }
  7. [Review policy] (ポリシーの確認) を選択して、ポリシーにエラーがないことを確認し、[Save changes] (変更の保存) を選択します。

ステップ 2: template.yml ファイルを変更する

  1. https://console.aws.amazon.com/codestar/ で AWS CodeStar コンソールを開きます。

  2. サーバーレスプロジェクトを選択し、[Code] (コード) ページを開きます。リポジトリの最上位にある template.yml の場所を書き留めます。

  3. リポジトリの template.yml ファイルを編集するには、IDE、コンソール、またはコマンドラインをローカルリポジトリで使用します。リソースを Resources セクションに貼り付けます。この例では、以下のテキストをコピーすると、Resources セクションが追加されます。

    Resources: TestQueue: Type: AWS::SQS::Queue

    この例では、変更後のテンプレートを示します。

ステップ 3: テンプレートの変更をコミットおよびプッシュする

  • ステップ 2 で保存した template.yml ファイルの変更をコミットおよびプッシュします。

    注記

    これにより、パイプラインが開始されます。IAM アクセス許可を更新する前に変更をコミットすると、パイプライン開始後、AWS CloudFormation スタック更新でエラーが発生します。その結果、このスタック更新はロールバックされます。この問題が発生した場合は、アクセス許可を修正し、パイプランを再起動します。

ステップ 4: AWS CloudFormation スタック更新をモニタリングする

  1. プロジェクトのパイプランでデプロイステージがスタートされると、AWS CloudFormation スタック更新がスタートします。パイプラインの AWS CloudFormation ステージを AWS CodeStar ダッシュボードで選択し、スタック更新を表示します。

    トラブルシューティング:

    必要なリソースのアクセス許可が不足している場合、このスタック更新は失敗します。AWS CodeStar ダッシュボードビューのエラーステータスを表示して、プロジェクトのパイプラインを確認します。

    パイプラインのデプロイステージの [CloudFormation] リンクを選択して、AWS CloudFormation コンソールで障害をトラブルシューティングします。コンソールの [Events] (イベント) リストで、プロジェクトを選択して、スタック作成の詳細を表示します。障害の詳細が記載されたメッセージが表示されます。この例では、sqs:CreateQueue のアクセス許可が不足しています。

    必要なアクセス許可を追加するには、プロジェクトの AWS CloudFormation ワーカーロールに添付されているポリシーを編集します。「ステップ 1: IAM で CloudFormation ワーカーロールを編集する」を参照してください。

  2. パイプラインが正常に実行されると、AWS CloudFormation スタックでリソースが作成されます。AWS CloudFormation リストの [Resources] (リソース) で、プロジェクト用に作成されたリソースを表示します。この例では、TestQueue キューが [Resources] (リソース) セクションに一覧表示されています。

    キュー URL は、AWS CloudFormation で利用できます。キュー URL はこの形式に従います。

    https://{REGION_ENDPOINT}/queue.|api-domain|/{YOUR_ACCOUNT_NUMBER}/{YOUR_QUEUE_NAME}

    詳細については、[Send an Amazon SQS Message] (Amazon SQS メッセージの送信)、[Receive a Message from an Amazon SQS Queue] (Amazon SQS キューからのメッセージの受信)、および [Delete a Message from an Amazon SQS Queue] (Amazon SQS キューからのメッセージの削除) を参照してください。

ステップ 5: インラインポリシーでリソースのアクセス許可を追加する

新しいリソースへのアクセス権をチームメンバーに付与するには、適切なインラインポリシーをユーザーのロールに追加します。必ずしもすべてのリソースでアクセス許可を追加する必要があるわけではありません。以下のステップを実行するには、ルートユーザー、アカウントの管理者ユーザー、または AdministratorAccess 管理ポリシーか同等のポリシーが添付されている IAM ユーザーかフェデレーティッドユーザーとして、コンソールにサインイン済みである必要があります。

JSON ポリシーエディタを使用してポリシーを作成するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左側のナビゲーションペインで、[ポリシー] を選択します。

    初めて [ポリシー] を選択する場合には、[管理ポリシーにようこそ] ページが表示されます。[Get Started] (今すぐ始める) を選択します。

  3. ページの上部で、[ポリシーの作成] を選択します。

  4. [ポリシーエディタ] セクションで、[JSON] オプションを選択します。

  5. 次の JSON ポリシードキュメントを入力します。

    { "Action": [ "sqs:CreateQueue", "sqs:DeleteQueue", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sqs:ListQueues", "sqs:GetQueueUrl" ], "Resource": [ "*" ], "Effect": "Allow" }
  6. [Next] (次へ) をクリックします。

    注記

    いつでも [Visual] と [JSON] エディタオプションを切り替えることができます。ただし、[Visual] エディタで [] に変更または選択した場合、IAM はポリシーを再構成して visual エディタに合わせて最適化することがあります。詳細については、IAM ユーザーガイドの「ポリシーの再構成」を参照してください。

  7. [確認と作成] ページで、作成するポリシーの [ポリシー名][説明] (オプション) を入力します。[このポリシーで定義されているアクセス許可] を確認して、ポリシーによって付与されたアクセス許可を確認します。

  8. [Create Policy] (ポリシーの作成) をクリックして、新しいポリシーを保存します。