AWS CodeStar の仕組み IAM - 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 の機能https://codecatalyst.aws/exploreおよび料金の詳細をご覧ください CodeCatalyst。

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

AWS CodeStar の仕組み IAM

IAM を使用して へのアクセスを管理する前にAWS CodeStar、 で使用できるIAM機能を理解しておく必要がありますAWS CodeStar。AWS CodeStar およびその他の AWS のサービスが と連携する方法の概要を把握するにはIAM、「 IAMユーザーガイド」のAWS 「 と連携IAMする のサービス」を参照してください。

AWS CodeStar ID ベースのポリシー

IAM アイデンティティベースのポリシーでは、許可または拒否されたアクションとリソース、およびアクションが許可または拒否される条件を指定できます。 AWS CodeStar は、ユーザーに代わって複数のアイデンティティベースのポリシーを作成します。これにより、 は AWS CodeStar プロジェクトの範囲内 AWS CodeStar でリソースを作成および管理できます。AWS CodeStar は、特定のアクション、リソース、および条件キーをサポートします。JSON ポリシーで使用するすべての要素については、 ユーザーガイドのIAMJSON「 ポリシー要素のリファレンスIAM」を参照してください。

アクション

管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action要素は、ポリシーでアクセスを許可または拒否するために使用できるアクションを記述します。ポリシーアクションの名前は通常、関連する AWS APIオペレーションと同じです。一致するAPIオペレーションを持たないアクセス許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられたオペレーションを実行するための権限を付与するポリシーで使用されます。

のポリシーアクションは、アクションの前にプレフィックス AWS CodeStar を使用しますcodestar:。例えば、指定されたIAMユーザーが AWS CodeStar プロジェクトの説明などのプロジェクトの属性を編集できるようにするには、次のポリシーステートメントを使用できます。

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codestar:UpdateProject" ], "Resource" : "arn:aws:codestar:us-east-2:project/my-first-projec" } ] }

ポリシーステートメントには、Action または NotAction 要素を含める必要があります。AWS CodeStar は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

単一ステートメントに複数アクションを指定するには、次のようにカンマで区切ります:

"Action": [ "codestar:action1", "codestar:action2"

ワイルドカード (*) を使用して複数アクションを指定できます。例えば、List という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "codestar:List*"

AWS CodeStar アクションのリストを確認するには、「 ユーザーガイド」の「 で定義されるアクションAWS CodeStarIAM」を参照してください。

リソース

管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Policy ResourceJSON要素は、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

AWS CodeStar プロジェクトリソースには次の がありますARN。

arn:aws:codestar:region:account:project/resource-specifier

の形式の詳細についてはARNs、「Amazon リソースネーム (ARNs)」および AWS 「サービス名前空間」を参照してください。

例えば、次の例では、 AWS という名前の AWS CodeStar プロジェクトをリージョン 111111111111の AWS アカウントmy-first-projecに登録しますus-east-2

arn:aws:codestar:us-east-2:111111111111:project/my-first-projec

以下に、リージョン の AWS アカウントmy-projに登録された名前で始まる AWS CodeStar プロジェクトを指定します111111111111 AWS us-east-2

arn:aws:codestar:us-east-2:111111111111:project/my-proj*

プロジェクトの一覧表示など、一部のAWS CodeStar アクションはリソースで実行できません。このような場合は、ワイルドカード *を使用する必要があります。

"LisProjects": "*"

AWS CodeStar リソースタイプとその のリストを確認するにはARNs、「 IAMユーザーガイド」の「 で定義されるリソースAWS CodeStar」を参照してください。各リソースARNの を指定できるアクションについては、「 で定義されるアクションAWS CodeStar」を参照してください。

条件キー

AWS CodeStar はサービス固有の条件キーを提供しませんが、一部のグローバル条件キーの使用をサポートしています。すべての AWS グローバル条件キーを確認するには、「 IAMユーザーガイドAWS 」の「グローバル条件コンテキストキー」を参照してください。

AWS CodeStar アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS CodeStar ID ベースのポリシーの例

AWS CodeStar リソースベースのポリシー

AWS CodeStar は、リソースベースのポリシーをサポートしていません。

AWS CodeStar タグに基づいた承認

タグをAWS CodeStar プロジェクトにアタッチしたり、 へのリクエストでタグを渡すことができますAWS CodeStar。タグに基づいてアクセスを管理するには、codestar:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。AWS CodeStar リソースのタグ付けの詳細については、「」を参照してくださいAWS CodeStar でのプロジェクトタグの操作

プロジェクトのタグに基づいて AWS CodeStar プロジェクトへのアクセスを制限するためのアイデンティティベースのポリシーの例を表示するには、「」を参照してくださいタグに基づく AWS CodeStar プロジェクトの表示

AWS CodeStar IAM ロール

IAM ロールは、特定のアクセス許可を持つ AWS アカウント内のエンティティです。

ユーザー 、IAMフェデレーティッドユーザー、ルートユーザー、または引き受けたロール AWS CodeStar として を使用できます。適切なアクセス許可を持つすべてのユーザータイプは、 リソースへのプロジェクトアクセス許可を管理できます AWS が、IAMユーザーのプロジェクトアクセス許可は自動的に AWS CodeStar 管理されます。IAM ポリシーロールは、プロジェクトロールに基づいて、そのユーザーにアクセス許可とアクセス許可を付与します。IAM コンソールを使用して、 およびその他のアクセス許可をIAMユーザーに割り当てる AWS CodeStar 他のポリシーを作成できます。

たとえば、ユーザーに AWS CodeStar プロジェクトの表示を許可するが、変更は許可しないとします。この場合、ビューワーロールを持つ AWS CodeStar プロジェクトにIAMユーザーを追加します。すべての AWS CodeStar プロジェクトには、プロジェクトへのアクセスを制御するのに役立つ一連のポリシーがあります。さらに、どのユーザーが にアクセスできるかを制御できます AWS CodeStar。

AWS CodeStar アクセスは、IAMユーザーとフェデレーティッドユーザーでは異なる方法で処理されます。チームに追加できるのはIAMユーザーのみです。プロジェクトへのアクセス許可をIAMユーザーに付与するには、プロジェクトチームにユーザーを追加し、ユーザーにロールを割り当てます。フェデレーティッドユーザーにプロジェクトへのアクセス許可を付与するには、 AWS CodeStar プロジェクトロールの 管理ポリシーをフェデレーティッドユーザーのロールに手動でアタッチします。

この表は、各タイプのアクセス権で利用できるツールについて説明しています。

アクセス許可の機能 IAM ユーザー フェデレーティッドユーザー ルートユーザー
SSH Amazon EC2および Elastic Beanstalk プロジェクトのリモートアクセス用の キー管理
AWS CodeCommit SSH アクセス
IAM によって管理されるユーザーアクセス許可 AWS CodeStar
手動で管理されるプロジェクトのアクセス許可
ユーザーはチームメンバーとしてプロジェクトに追加することができます

IAM へのユーザーアクセス AWS CodeStar

プロジェクトにIAMユーザーを追加し、そのユーザーのロールを選択すると、 AWS CodeStar は適切なポリシーを自動的にIAMユーザーに適用します。IAM ユーザーの場合、 でポリシーやアクセス許可を直接アタッチまたは管理する必要はありませんIAM。 AWS CodeStar プロジェクトにIAMユーザーを追加する方法については、「」を参照してくださいAWS CodeStar プロジェクトにチームメンバーを追加する 。 AWS CodeStar プロジェクトからIAMユーザーを削除する方法については、「」を参照してくださいAWS CodeStar プロジェクトからチームメンバーを削除する

インラインポリシーをIAMユーザーにアタッチする

プロジェクトにユーザーを追加すると、 はユーザーのロールに一致するプロジェクトの 管理ポリシー AWS CodeStar を自動的にアタッチします。プロジェクトの AWS CodeStar 管理ポリシーを IAM ユーザーに手動でアタッチしないでください。を除きAWSCodeStarFullAccess、 AWS CodeStar プロジェクトのIAMユーザーのアクセス許可を変更するポリシーをアタッチすることはお勧めしません。独自のポリシーを作成してアタッチする場合は、「 IAMユーザーガイド」のIAM「ID アクセス許可の追加と削除」を参照してください。

へのフェデレーティッドユーザーアクセス AWS CodeStar

IAM ユーザーを作成するか、ルートユーザーを使用する代わりに、、エンタープライズユーザーディレクトリ AWS Directory Service、ウェブ ID プロバイダー、またはロールを引き受けるIAMユーザーからユーザー ID を使用できます。このようなユーザーはフェデレーションユーザーと呼ばれます。

AWS CodeStar プロジェクトAWS CodeStar レベルのポリシーとアクセス許可で説明されている管理ポリシーをユーザーのロールに手動でアタッチして、フェデレーティッドユーザーにプロジェクトへのアクセスを許可します。 IAMがプロジェクトリソースとIAMロール AWS CodeStar を作成した後、所有者、寄稿者、またはビューワーポリシーをアタッチします。

前提条件:

  • ID プロバイダーを設定する必要があります。例えば、SAMLID プロバイダーをセットアップし、プロバイダーを介して AWS 認証を設定できます。ID プロバイダーの設定の詳細については、IAM「ID プロバイダーの作成」を参照してください。SAML フェデレーションの詳細については、「2.0 SAML ベースのフェデレーションについて」を参照してください。

  • ID プロバイダーを通じてアクセスをリクエストする際に引き受けるフェデレーティッドユーザーのロールを作成済みである必要があります。フェデレーティッドユーザーがロールを引き受けることを許可するSTS信頼ポリシーをロールにアタッチする必要があります。詳細については、「 IAMユーザーガイド」の「フェデレーティッドユーザーとロール」を参照してください。

  • AWS CodeStar プロジェクトを作成し、プロジェクト ID を知っている必要があります。

ID プロバイダーのロールの作成方法については、「サードパーティーの ID プロバイダー (フェデレーション) 用のロールの作成」を参照してください。

フェデレーティッドユーザーロールに AWSCodeStarFullAccess 管理ポリシーをアタッチする

プロジェクトを作成するためのアクセス許可をフェデレーティッドユーザーに付与するには、AWSCodeStarFullAccess 管理ポリシーを添付します。これらのステップを実行するには、ルートユーザー、アカウントの管理者ユーザー、または関連するAdministratorAccess管理ポリシーまたは同等のものを持つIAMユーザーまたはフェデレーティッドユーザーとしてコンソールにサインインしている必要があります。

注記

プロジェクト作成後、プロジェクト所有者のアクセス許可は自動的に適用されません。「プロジェクトの AWS CodeStar ビューワー/コントリビューター/所有者管理ポリシーをフェデレーティッドユーザーロールにアタッチする」に示されているように、アカウントの管理者のアクセス許可を持つロールを使用して、所有者の管理ポリシーをアタッチします。

  1. IAM コンソールを開きます。ナビゲーションペインで、[Policies] (ポリシー) を選択します。

  2. 検索フィールドに「AWSCodeStarFullAccess」と入力します。ポリシータイプが [AWS managed] (マネージド) のポリシー名が表示されます。このポリシーを展開して、ポリシーステートメントのアクセス許可を参照することができます。

  3. ポリシーの横にある円形を選択して、[Policy Actions] (ポリシーアクション) の [Attach] (添付) を選択します。

  4. [Summary] (概要) ページで、 [Attached entities] (添付されたエンティティ) タブを選択します。[Attach] (添付) を選択します。

  5. [Attach Policy] (ポリシーの添付) ページの検索フィールドで、フェデレーティッドユーザーのロールをフィルタリングします。ロールの名前の横にあるボックスを選択し、[Attach policy] (ポリシーの添付) を選択します。[Attached entities] (添付されたエンティティ) タブに、新しいアタッチメントが表示されます。

プロジェクトの AWS CodeStar ビューワー/コントリビューター/所有者管理ポリシーをフェデレーティッドユーザーロールにアタッチする

プロジェクトへのアクセス権をフェデレーティッドユーザーに付与するには、適切な所有者、寄稿者、閲覧者の管理ポリシーをユーザーのロールに添付します。管理ポリシーによって、適切なアクセス許可のレベルが指定されます。IAM ユーザーとは異なり、フェデレーティッドユーザーの 管理ポリシーを手動でアタッチおよびデタッチする必要があります。これは、 のチームメンバーにプロジェクト許可を割り当てるのと同じです AWS CodeStar。これらのステップを実行するには、ルートユーザー、アカウントの管理者ユーザー、または関連するAdministratorAccess管理ポリシーまたは同等のものを持つIAMユーザーまたはフェデレーティッドユーザーとしてコンソールにサインインしている必要があります。

前提条件:

  • フェデレーティッドユーザーが引き受けるロールを作成しているか、既存のロールを設定されている必要があります。

  • 付与するアクセス許可のレベルを把握しておく必要があります。所有者、寄稿者、閲覧者のロールに添付されている管理ポリシーは、プロジェクトのロールベースのアクセス許可を提供します。

  • AWS CodeStar プロジェクトが作成されている必要があります。管理ポリシーは、プロジェクトが作成されIAMるまで では使用できません。

  1. IAM コンソールを開きます。ナビゲーションペインで、[Policies] (ポリシー) を選択します。

  2. 検索フィールドにプロジェクト ID を入力します。ポリシータイプが [Customer managed] (カスタマー管理) で、プロジェクトに一致するポリシー名が表示されます。このポリシーを展開して、ポリシーステートメントのアクセス許可を参照することができます。

  3. これらのうち、いずれかの管理ポリシーを選択します。ポリシーの横にある円形を選択して、[Policy Actions] (ポリシーアクション) の [Attach] (添付) を選択します。

  4. [Summary] (概要) ページで、 [Attached entities] (添付されたエンティティ) タブを選択します。[Attach] (添付) を選択します。

  5. [Attach Policy] (ポリシーの添付) ページの検索フィールドで、フェデレーティッドユーザーのロールをフィルタリングします。ロールの名前の横にあるボックスを選択し、[Attach policy] (ポリシーの添付) を選択します。[Attached entities] (添付されたエンティティ) タブに、新しいアタッチメントが表示されます。

フェデレーティッドユーザーロールから AWS CodeStar マネージドポリシーをデタッチする

AWS CodeStar プロジェクトを削除する前に、フェデレーティッドユーザーのロールにアタッチした管理ポリシーを手動でデタッチする必要があります。これらのステップを実行するには、ルートユーザー、アカウントの管理者ユーザー、または関連するAdministratorAccess管理ポリシーまたは同等のものを持つIAMユーザーまたはフェデレーティッドユーザーとしてコンソールにサインインしている必要があります。

  1. IAM コンソールを開きます。ナビゲーションペインで、[Policies] (ポリシー) を選択します。

  2. 検索フィールドにプロジェクト ID を入力します。

  3. ポリシーの横にある円形を選択して、[Policy Actions] (ポリシーアクション) の [Attach] (添付) を選択します。

  4. [Summary] (概要) ページで、 [Attached entities] (添付されたエンティティ) タブを選択します。

  5. 検索フィールドで、フェデレーティッドユーザーのロールをフィルタリングします。[Detach] (デタッチ) を選択します。

フェデレーティッドユーザーロールに AWS Cloud9 管理ポリシーをアタッチする

AWS Cloud9 開発環境を使用している場合は、 AWSCloud9User管理ポリシーをユーザーのロールにアタッチして、フェデレーティッドユーザーにその環境へのアクセスを許可します。IAM ユーザーとは異なり、フェデレーティッドユーザーの管理ポリシーを手動でアタッチおよびデタッチする必要があります。これらのステップを実行するには、ルートユーザー、アカウントの管理者ユーザー、または関連する AdministratorAccess管理ポリシーまたは同等のポリシーを持つIAMユーザーまたはフェデレーティッドユーザーとしてコンソールにサインインしている必要があります。

前提条件:

  • フェデレーティッドユーザーが引き受けるロールを作成しているか、既存のロールを設定されている必要があります。

  • 付与するアクセス許可のレベルを把握しておく必要があります。

    • AWSCloud9User 管理ポリシーでは、ユーザーによる次の操作を許可します:

      • 独自の AWS Cloud9 開発環境を作成します。

      • 環境に関する情報を取得する。

      • 環境の設定を変更する。

    • AWSCloud9Administrator 管理ポリシーでは、自分自身または他のユーザーに対する次の操作をユーザーに許可します:

      • 環境を作成する。

      • 環境に関する情報を取得する。

      • 環境を削除する。

      • 環境の設定を変更する。

  1. IAM コンソールを開きます。ナビゲーションペインで、[Policies] (ポリシー) を選択します。

  2. 検索フィールドにポリシー名を入力します。ポリシータイプが AWS マネージドの管理ポリシーが表示されます。このポリシーを展開して、ポリシーステートメントのアクセス許可を参照することができます。

  3. これらのうち、いずれかの管理ポリシーを選択します。ポリシーの横にある円形を選択して、[Policy Actions] (ポリシーアクション) の [Attach] (添付) を選択します。

  4. [Summary] (概要) ページで、 [Attached entities] (添付されたエンティティ) タブを選択します。[Attach] (添付) を選択します。

  5. [Attach Policy] (ポリシーの添付) ページの検索フィールドで、フェデレーティッドユーザーのロールをフィルタリングします。ロールの名前の横にあるボックスを選択し、[Attach Policy] (ポリシーの添付) を選択します。[Attached entities] (添付されたエンティティ) タブに、新しいアタッチメントが表示されます。

フェデレーティッドユーザーロールから AWS Cloud9 マネージドポリシーをデタッチする

AWS Cloud9 開発環境を使用している場合は、アクセスを許可するポリシーをデタッチすることで、フェデレーティッドユーザーのアクセスを削除できます。これらのステップを実行するには、ルートユーザー、アカウントの管理者ユーザー、または関連するAdministratorAccess管理ポリシーまたは同等のものを持つIAMユーザーまたはフェデレーティッドユーザーとしてコンソールにサインインしている必要があります。

  1. IAM コンソールを開きます。ナビゲーションペインで、[Policies] (ポリシー) を選択します。

  2. 検索フィールドにプロジェクト名を入力します。

  3. ポリシーの横にある円形を選択して、[Policy Actions] (ポリシーアクション) の [Attach] (添付) を選択します。

  4. [Summary] (概要) ページで、 [Attached entities] (添付されたエンティティ) タブを選択します。

  5. 検索フィールドで、フェデレーティッドユーザーのロールをフィルタリングします。[Detach] (デタッチ) を選択します。

での一時的な認証情報の使用 AWS CodeStar

一時的な認証情報を使用して、フェデレーションでサインインしたり、 IAMロールを引き受けたり、クロスアカウントロールを引き受けたりすることができます。一時的なセキュリティ認証情報を取得するには、 AssumeRoleや などのオペレーションを呼び出し AWS STS APIますGetFederationToken

AWS CodeStar は一時的な認証情報の使用をサポートしますが、 AWS CodeStar チームメンバーの機能はフェデレーティッドアクセスでは機能しません。 AWS CodeStar チームメンバー機能は、チームメンバーとしてのIAMユーザーの追加のみをサポートします。

サービスリンクロール

サービスにリンクされたロールを使用すると、 AWS サービスは他の サービスのリソースにアクセスして、ユーザーに代わってアクションを実行できます。サービスにリンクされたロールはIAMアカウントに表示され、サービスによって所有されます。 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

AWS CodeStar は、サービスにリンクされたロールをサポートしていません。

サービスロール

この機能により、ユーザーに代わってサービスがサービスロールを引き受けることが許可されます。このロールにより、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールはIAMアカウントに表示され、アカウントによって所有されます。つまり、 管理者は、このロールのアクセス許可を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

AWS CodeStar は、サービスロールをサポートします。 は、プロジェクトのリソースを作成および管理するときに aws-codestar-service-role、サービスロール AWS CodeStar を使用します。詳細については、「 ユーザーガイド」の「ロールの用語と概念」を参照してください。 IAM

重要

このサービスロールを作成するには、 管理ユーザーまたはルートアカウントとしてサインインする必要があります。詳細については、 IAMユーザーガイド「初回アクセスのみ: ルートユーザーの認証情報」および「最初の管理者ユーザーとグループの作成」を参照してください。

このロールは、 で初めてプロジェクトを作成するときに自動的に作成されます AWS CodeStar。サービスロールは、ユーザーに代わって以下のことを行います:

  • プロジェクト作成時に選択したリソースを作成する。

  • これらのリソースに関する情報を AWS CodeStar プロジェクトダッシュボードに表示します。

また、プロジェクトのリソースを管理するときにも、ユーザーの代わりに機能します。このポリシーステートメントの例については、「 AWSCodeStarServiceRole ポリシー」を参照してください。

さらに、 はプロジェクトタイプに応じて、プロジェクト固有のサービスロールを複数 AWS CodeStar 作成 AWS CloudFormation します。また、ツールチェーンロールはプロジェクトタイプごとに作成されます。

  • AWS CloudFormation ロールを使用すると AWS CodeStar 、 AWS CloudFormation にアクセスして AWS CodeStar 、プロジェクトのスタックを作成および変更できます。

  • ツールチェーンロールを使用すると AWS CodeStar 、 は他の AWS のサービスにアクセスして、 AWS CodeStar プロジェクトのリソースを作成および変更できます。