AWS と IAM CodeStar の連携方法 - 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 と IAM CodeStar の連携方法

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

AWS CodeStar アイデンティティベースのポリシー

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

アクション

管理者は 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 アクションのリストを確認するには、「IAM ユーザーガイド」の「AWS で定義されるアクション CodeStar」を参照してください。

リソース

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

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

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

"Resource": "*"

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

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

ARN の形式の詳細については、「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」の「AWS で定義されるリソース CodeStar」を参照してください。 どのアクションで各リソースの ARN を指定できるかについては、「AWS で定義されるアクション CodeStar」を参照してください。

条件キー

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

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

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 ユーザー フェデレーティッドユーザー ルートユーザー
Amazon EC2 および Elastic Beanstalk プロジェクトへのリモートアクセスに使用する SSH キーの管理 Checkmark symbol indicating completion or confirmation.
AWS CodeCommit SSH アクセス Checkmark symbol indicating completion or confirmation.
によって管理される IAM ユーザーアクセス許可 AWS CodeStar Checkmark symbol indicating completion or confirmation.
手動で管理されるプロジェクトのアクセス許可 Checkmark symbol indicating completion or confirmation. Checkmark symbol indicating completion or confirmation.
ユーザーはチームメンバーとしてプロジェクトに追加することができます Checkmark symbol indicating completion or confirmation.

AWS CodeStarに対する IAM ユーザーアクセス

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

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

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

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

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

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

前提条件:

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

  • 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 プロジェクトのリソースを作成および変更できます。