の ID とアクセスの管理 AWS Cloud9 - AWS Cloud9

AWS Cloud9 は、新しいお客様では利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

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

の ID とアクセスの管理 AWS Cloud9

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を認証 (サインイン) し、誰に AWS Cloud9 リソースの使用を許可する (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで AWS のサービス 使用できる です。

対象者

AWS Identity and Access Management (IAM) の使用方法は、 で行う作業によって異なります AWS Cloud9。

サービスユーザー – AWS Cloud9 サービスを使用してジョブを実行する場合、管理者は必要な認証情報とアクセス許可を提供します。より多くの AWS Cloud9 機能を使用して作業を行う際に、追加のアクセス許可が必要になる場合があります。アクセスの管理方法を理解すると、管理者から適切な権限をリクエストするのに役に立ちます。 AWS Cloud9機能にアクセスできない場合は、「AWS Cloud9 ID とアクセスのトラブルシューティング」を参照してください。

サービス管理者 – 社内の AWS Cloud9 リソースを担当している場合は、 へのフルアクセスがある可能性があります AWS Cloud9。サービスユーザーがどの AWS Cloud9 機能やリソースにアクセスできるかを判断するのは、お客様の仕事です。その後、IAM管理者にリクエストを送信して、サービスユーザーのアクセス許可を変更する必要があります。このページの情報を確認して、 の基本概念を理解しますIAM。会社IAMで を使用する方法の詳細については AWS Cloud9、「」を参照してくださいと AWS Cloud9 の仕組み IAM

IAM 管理者 – IAM管理者の場合は、 へのアクセスを管理するためのポリシーの作成方法の詳細を知りたい場合があります AWS Cloud9。で使用できる AWS Cloud9 アイデンティティベースのポリシーの例を表示するにはIAM、「」を参照してくださいAWS Cloud9のアイデンティティベースのポリシーの例

アイデンティティを使用した認証

認証は、アイデンティティ認証情報 AWS を使用して にサインインする方法です。として、IAMユーザーとして AWS アカウントのルートユーザー、またはIAMロールを引き受けることで、認証 ( にサインイン AWS) される必要があります。

ID ソースを介して提供された認証情報を使用して、フェデレーティッド ID AWS として にサインインできます。 AWS IAM Identity Center (IAM Identity Center) ユーザー、会社のシングルサインオン認証、Google または Facebook 認証情報は、フェデレーティッド ID の例です。フェデレーティッド ID としてサインインすると、管理者は以前にIAMロールを使用して ID フェデレーションをセットアップしていました。フェデレーション AWS を使用して にアクセスすると、間接的にロールを引き受けることになります。

ユーザーのタイプに応じて、 AWS Management Console または AWS アクセスポータルにサインインできます。へのサインインの詳細については AWS、 AWS サインイン ユーザーガイド「 へのサインイン方法 AWS アカウント」を参照してください。

AWS プログラムで にアクセスする場合、 はソフトウェア開発キット (SDK) とコマンドラインインターフェイス (CLI) AWS を提供し、認証情報を使用してリクエストに暗号化して署名します。 AWS ツールを使用しない場合は、自分でリクエストに署名する必要があります。推奨される方法を使用してリクエストに署名する方法の詳細については、 IAM ユーザーガイドAWS API「リクエストの署名バージョン 4」を参照してください。

使用する認証方法を問わず、追加セキュリティ情報の提供をリクエストされる場合もあります。例えば、 では、アカウントのセキュリティを高めるために多要素認証 (MFA) を使用する AWS ことをお勧めします。詳細については、AWS IAM Identity Center 「 ユーザーガイド」の「多要素認証」とIAM「 ユーザーガイド」のAWS 「多要素認証IAM」を参照してください。

AWS アカウント ルートユーザー

を作成するときは AWS アカウント、アカウント内のすべての および リソースへの AWS のサービス 完全なアクセス権を持つ 1 つのサインイン ID から始めます。この ID は AWS アカウント ルートユーザーと呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでサインインしてアクセスします。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザーの認証情報は保護し、ルートユーザーでしか実行できないタスクを実行するときに使用します。ルートユーザーとしてサインインする必要があるタスクの完全なリストについては、IAM「 ユーザーガイド」の「ルートユーザーの認証情報を必要とするタスク」を参照してください。

フェデレーティッドアイデンティティ

ベストプラクティスとして、 では、管理者アクセスを必要とするユーザーを含む人間のユーザーに、一時的な認証情報を使用してアクセスするために ID プロバイダーとのフェデレーション AWS のサービス の使用を要求します。

フェデレーティッド ID は、エンタープライズユーザーディレクトリ、ウェブアイデンティティプロバイダー、 AWS Directory Service、アイデンティティセンターディレクトリ、または ID ソースを通じて提供された認証情報 AWS のサービス を使用してアクセスするすべてのユーザーのユーザーです。フェデレーティッド ID が にアクセスすると AWS アカウント、ロールが引き受けられ、ロールは一時的な認証情報を提供します。

アクセスを一元管理する場合は、 AWS IAM Identity Centerを使用することをお勧めします。IAM Identity Center でユーザーとグループを作成するか、独自の ID ソース内のユーザーとグループのセットに接続して同期し、すべての AWS アカウント とアプリケーションで使用できます。IAM Identity Center の詳細については、AWS IAM Identity Center 「 ユーザーガイド」のIAM「Identity Center とは」を参照してください。

IAM ユーザーとグループ

IAM ユーザーとは、1 人のユーザーまたはアプリケーションに対して特定のアクセス許可 AWS アカウント を持つ 内の ID です。可能であれば、パスワードやアクセスキーなどの長期的な認証情報を持つIAMユーザーを作成する代わりに、一時的な認証情報に依存することをお勧めします。ただし、IAMユーザーとの長期的な認証情報を必要とする特定のユースケースがある場合は、アクセスキーをローテーションすることをお勧めします。詳細については、IAM「 ユーザーガイド」の「長期的な認証情報を必要とするユースケースのアクセスキーを定期的にローテーションする」を参照してください。

IAM グループは、IAMユーザーのコレクションを指定する ID です。グループとしてサインインすることはできません。グループを使用して、複数のユーザーに対して一度に権限を指定できます。多数のユーザーグループがある場合、グループを使用することで権限の管理が容易になります。例えば、 という名前のグループがありIAMAdmins、そのグループにIAMリソースを管理するアクセス許可を付与できます。

ユーザーは、ロールとは異なります。ユーザーは 1 人の人または 1 つのアプリケーションに一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。ユーザーには永続的な長期の認証情報がありますが、ロールでは一時認証情報が提供されます。詳細については、「 ユーザーガイド」のIAM「ユーザーのユースケース」を参照してください。 IAM

IAM ロール

IAM ロールは、特定のアクセス許可 AWS アカウント を持つ 内の ID です。ユーザーと似ていますがIAM、特定の人物には関連付けられていません。でIAMロールを一時的に引き受けるには AWS Management Console、ユーザーからIAMロール (コンソール) に切り替えることができます。または AWS API オペレーションを AWS CLI 呼び出すか、カスタム を使用してロールを引き受けることができますURL。ロールを使用する方法の詳細については、 IAM ユーザーガイド「ロールを引き受ける方法」を参照してください。

IAM 一時的な認証情報を持つ ロールは、次の状況で役立ちます。

  • フェデレーションユーザーアクセス – フェデレーティッド ID に許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーティッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールの詳細については、 IAM ユーザーガイド「サードパーティー ID プロバイダーのロールの作成」を参照してください。IAM Identity Center を使用する場合は、アクセス許可セットを設定します。ID が認証された後にアクセスできる内容を制御するために、IAMIdentity Center はアクセス許可セットを のロールに関連付けますIAM。アクセス許可セットの詳細については、「AWS IAM Identity Center ユーザーガイド」の「アクセス許可セット」を参照してください。

  • 一時的なIAMユーザーアクセス許可 – IAM ユーザーまたはロールは、特定のタスクに対して異なるアクセス許可を一時的に引き受けるIAMロールを引き受けることができます。

  • クロスアカウントアクセス — IAMロールを使用して、別のアカウントの誰か (信頼できるプリンシパル) が自分のアカウントのリソースにアクセスすることを許可できます。クロスアカウントアクセスを許可する主な方法は、ロールを使用することです。ただし、一部の では AWS のサービス、 (プロキシとしてロールを使用する代わりに) リソースに直接ポリシーをアタッチできます。クロスアカウントアクセスのロールとリソースベースのポリシーの違いについては、IAM「 ユーザーガイド」の「 のクロスアカウントリソースアクセスIAM」を参照してください。

  • クロスサービスアクセス — 他の の機能 AWS のサービス を使用するものもあります AWS のサービス。例えば、 サービスで呼び出しを行う場合、そのサービスが Amazon でアプリケーションを実行EC2したりAmazon S3にオブジェクトを保存したりするのが一般的です。サービスでは、呼び出し元プリンシパルの許可、サービスロール、またはサービスリンクロールを使用してこれを行う場合があります。

    • 転送アクセスセッション (FAS) – IAM ユーザーまたはロールを使用して でアクションを実行すると AWS、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、 を呼び出すプリンシパルのアクセス許可を AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストリクエストと組み合わせて使用します。FAS リクエストは、サービスが他の AWS のサービス または リソースとのやり取りを完了する必要があるリクエストを受け取った場合にのみ行われます。この場合、両方のアクションを実行するための権限が必要です。FAS リクエストを行う際のポリシーの詳細については、「アクセスセッションの転送」を参照してください。

    • サービスロール – サービスロールは、ユーザーに代わってアクションを実行するためにサービスが引き受けるIAMロールです。IAM 管理者は、 内からサービスロールを作成、変更、削除できますIAM。詳細については、IAM「 ユーザーガイド」の「 にアクセス許可を委任するロールの作成 AWS のサービス」を参照してください。

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

  • Amazon で実行されているアプリケーション EC2 – IAMロールを使用して、EC2インスタンスで実行され、 AWS CLI または AWS API リクエストを行うアプリケーションの一時的な認証情報を管理できます。これは、EC2インスタンス内にアクセスキーを保存するよりも望ましいです。EC2 インスタンスに AWS ロールを割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルには ロールが含まれており、EC2インスタンスで実行されているプログラムが一時的な認証情報を取得できるようにします。詳細については、IAM「 ユーザーガイド」のIAM「ロールを使用して Amazon EC2インスタンスで実行されているアプリケーションにアクセス許可を付与する」を参照してください。

ポリシーを使用したアクセスの管理

でアクセスを制御するには AWS 、ポリシーを作成し、 AWS ID またはリソースにアタッチします。ポリシーは AWS 、アイデンティティまたはリソースに関連付けられているときにアクセス許可を定義する オブジェクトです。 は、プリンシパル (ユーザー、ルートユーザー、またはロールセッション) がリクエストを行うときに、これらのポリシー AWS を評価します。ポリシーでの権限により、リクエストが許可されるか拒否されるかが決まります。ほとんどのポリシーはJSONドキュメント AWS として に保存されます。JSON ポリシードキュメントの構造と内容の詳細については、「 ユーザーガイド」のJSON「ポリシーの概要」を参照してください。 IAM

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

デフォルトでは、ユーザーやロールに権限はありません。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するには、IAM管理者はIAMポリシーを作成できます。その後、管理者はIAMポリシーをロールに追加し、ユーザーはロールを引き受けることができます。

IAM ポリシーは、オペレーションの実行に使用する方法に関係なく、アクションのアクセス許可を定義します。例えば、iam:GetRoleアクションを許可するポリシーがあるとします。そのポリシーを持つユーザーは、 AWS Management Console、、 AWS CLIまたは AWS からロール情報を取得できますAPI。

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

ID ベースのポリシーは、IAMユーザー、ユーザーのグループ、ロールなどの ID にアタッチできるJSONアクセス許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。ID ベースのポリシーを作成する方法については、IAM「 ユーザーガイド」の「カスタマーマネージドポリシーを使用したカスタムIAMアクセス許可の定義」を参照してください。

アイデンティティベースのポリシーは、さらにインラインポリシーまたはマネージドポリシーに分類できます。インラインポリシーは、単一のユーザー、グループ、またはロールに直接埋め込まれています。マネージドポリシーは、 内の複数のユーザー、グループ、ロールにアタッチできるスタンドアロンポリシーです AWS アカウント。管理ポリシーには AWS 、管理ポリシーとカスタマー管理ポリシーが含まれます。管理ポリシーまたはインラインポリシーを選択する方法については、 IAM ユーザーガイド「管理ポリシーとインラインポリシーの選択」を参照してください。

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

リソースベースのポリシーは、リソースにアタッチするJSONポリシードキュメントです。リソースベースのポリシーの例としては、IAMロール信頼ポリシー と Amazon S3 バケットポリシー があります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーIAMでは、 から AWS 管理ポリシーを使用することはできません。

アクセスコントロールリスト (ACLs)

アクセスコントロールリスト (ACLs) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするアクセス許可を持っているかを制御します。ACLs はリソースベースのポリシーに似ていますが、JSONポリシードキュメント形式は使用されません。

Amazon S3、および Amazon VPCは AWS WAF、 をサポートするサービスの例ですACLs。の詳細についてはACLs、「Amazon Simple Storage Service デベロッパーガイド」の「アクセスコントロールリスト (ACL) 概要」を参照してください。

その他のポリシータイプ

AWS は、追加の低頻度のポリシータイプをサポートします。これらのポリシータイプでは、より一般的なポリシータイプで付与された最大の権限を設定できます。

  • アクセス許可の境界 – アクセス許可の境界は、アイデンティティベースのポリシーがIAMエンティティ (IAMユーザーまたはロール) に付与できる最大アクセス許可を設定する高度な機能です。エンティティにアクセス許可の境界を設定できます。結果として得られる権限は、エンティティのアイデンティティベースポリシーとそのアクセス許可の境界の共通部分になります。Principal フィールドでユーザーまたはロールを指定するリソースベースのポリシーでは、アクセス許可の境界は制限されません。これらのポリシーのいずれかを明示的に拒否した場合、権限は無効になります。アクセス許可の境界の詳細については、IAM「 ユーザーガイド」のIAM「エンティティのアクセス許可の境界」を参照してください。

  • サービスコントロールポリシー (SCPs) – SCPs は、 の組織または組織単位 (OU) の最大アクセス許可を指定するJSONポリシーです AWS Organizations。 AWS Organizations は、ビジネスが所有する複数の をグループ化して一元管理するためのサービス AWS アカウント です。組織内のすべての機能を有効にすると、サービスコントロールポリシー (SCPs) をアカウントのいずれかまたはすべてに適用できます。は、各 を含むメンバーアカウントのエンティティのアクセス許可SCPを制限します AWS アカウントのルートユーザー。Organizations と の詳細についてはSCPs、AWS Organizations 「 ユーザーガイド」の「サービスコントロールポリシー」を参照してください。

  • セッションポリシー - セッションポリシーは、ロールまたはフェデレーションユーザーの一時的なセッションをプログラムで作成する際にパラメータとして渡す高度なポリシーです。結果としてセッションの権限は、ユーザーまたはロールのアイデンティティベースポリシーとセッションポリシーの共通部分になります。また、リソースベースのポリシーから権限が派生する場合もあります。これらのポリシーのいずれかを明示的に拒否した場合、権限は無効になります。詳細については、「 ユーザーガイド」の「セッションポリシー」を参照してください。 IAM

複数のポリシータイプ

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成される権限を理解するのがさらに難しくなります。複数のポリシータイプが関係している場合にリクエストを許可するかどうか AWS を決定する方法については、 ユーザーガイドの「ポリシー評価ロジック」を参照してください。 IAM

と AWS Cloud9 の仕組み IAM

IAM を使用して へのアクセスを管理する前に AWS Cloud9、 で使用できるIAM機能について説明します AWS Cloud9。

AWS Cloud9 および他の AWS のサービスがほとんどのIAM機能とどのように連携するかの概要については、 IAM ユーザーガイドAWS 「 と連携する のサービスIAM」を参照してください。

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

アイデンティティベースのポリシーのサポート: あり

ID ベースのポリシーは、IAMユーザー、ユーザーのグループ、ロールなどの ID にアタッチできるJSONアクセス許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。ID ベースのポリシーを作成する方法については、IAM「 ユーザーガイド」の「カスタマーマネージドポリシーを使用したカスタムIAMアクセス許可の定義」を参照してください。

IAM ID ベースのポリシーでは、許可または拒否されたアクションとリソース、およびアクションが許可または拒否される条件を指定できます。プリンシパルは、それが添付されているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素については、 IAM ユーザーガイドIAMJSON「ポリシー要素リファレンス」を参照してください。

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

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

内のリソースベースのポリシー AWS Cloud9

リソースベースのポリシーのサポート: なし

リソースベースのポリシーは、リソースにアタッチするJSONポリシードキュメントです。リソースベースのポリシーの例としては、IAMロール信頼ポリシー と Amazon S3 バケットポリシー があります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。

クロスアカウントアクセスを有効にするには、リソースベースのポリシーのプリンシパルとして、別のアカウントのアカウントまたはIAMエンティティ全体を指定できます。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる にある場合 AWS アカウント、信頼されたアカウントのIAM管理者は、プリンシパルエンティティ (ユーザーまたはロール) にリソースへのアクセス許可も付与する必要があります。IAM 管理者は、アイデンティティベースのポリシーをエンティティにアタッチすることで権限を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、アイデンティティベースのポリシーをさらに付与する必要はありません。詳細については、IAM「 ユーザーガイド」の「 のクロスアカウントリソースアクセスIAM」を参照してください。

AWS Cloud9 はリソースベースのポリシーをサポートしていませんが、 および を介して AWS Cloud9 環境メンバーの AWS Cloud9 環境リソースアクセス許可を AWS Cloud9 API制御できます AWS Cloud9 IDE。

のポリシーアクション AWS Cloud9

ポリシーアクションのサポート: あり

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

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

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

AWS Cloud9 アクションのリストを確認するには、「サービス認証リファレンス」の「 で定義されるアクション AWS Cloud9」を参照してください。

のポリシーアクションは、アクションの前に次のプレフィックス AWS Cloud9 を使用します。

account

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

"Action": [ "account:action1", "account:action2" ]

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

のポリシーリソース AWS Cloud9

ポリシーリソースのサポート: あり

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

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

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

"Resource": "*"

AWS Cloud9 リソースタイプとその のリストを確認するにはARNs、「サービス認証リファレンス」の「 で定義されるリソース AWS Cloud9」を参照してください。各リソースARNの を指定できるアクションについては、「 で定義されるアクション AWS Cloud9」を参照してください。

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

のポリシー条件キー AWS Cloud9

サービス固有のポリシー条件キーのサポート: あり

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

Condition 要素 (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition 要素はオプションです。イコールや未満などの 条件演算子 を使用して条件式を作成することで、ポリシーの条件とリクエスト内の値を一致させることができます。

1 つのステートメントに複数の Condition 要素を指定する場合、または 1 つの Condition 要素に複数のキーを指定する場合、 AWS では AND 論理演算子を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理ORオペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば、IAMユーザー名でタグ付けされている場合にのみ、リソースにアクセスするアクセス許可をIAMユーザーに付与できます。詳細については、「 ユーザーガイド」のIAM「ポリシー要素: 変数とタグ」を参照してください。 IAM

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

AWS Cloud9 条件キーのリストを確認するには、「サービス認証リファレンス」の「 の条件キー AWS Cloud9」を参照してください。条件キーを使用できるアクションとリソースについては、「 で定義されるアクション AWS Cloud9」を参照してください。

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

ACLs の AWS Cloud9

をサポートACLs: なし

アクセスコントロールリスト (ACLs) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするアクセス許可を持っているかを制御します。ACLs はリソースベースのポリシーに似ていますが、JSONポリシードキュメント形式は使用されません。

ABAC で AWS Cloud9

サポート ABAC (ポリシーのタグ): はい

属性ベースのアクセスコントロール (ABAC) は、属性に基づいてアクセス許可を定義する認証戦略です。では AWS、これらの属性はタグ と呼ばれます。IAM エンティティ (ユーザーまたはロール) と多くの AWS リソースにタグをアタッチできます。エンティティとリソースのタグ付けは、 の最初のステップですABAC。次に、プリンシパルのタグが、アクセスしようとしているリソースのタグと一致する場合に、オペレーションを許可するABACポリシーを設計します。

ABAC は、急速に成長している環境で役立ち、ポリシー管理が面倒になる状況に役立ちます。

タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。

の詳細についてはABAC、「 ユーザーガイド」の「 ABAC認可によるアクセス許可の定義」を参照してください。 IAM を設定する手順を含むチュートリアルを表示するにはABAC、 IAM ユーザーガイド「属性ベースのアクセスコントロールを使用する (ABAC)」を参照してください。

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

一時的な認証情報のサポート: あり

一部の AWS のサービス は、一時的な認証情報を使用してサインインすると機能しません。一時的な認証情報 AWS のサービス を使用する方法など、詳細については、 IAM ユーザーガイドAWS のサービス 「 を使用する方法IAM」を参照してください。

ユーザー名とパスワード以外の AWS Management Console 方法で にサインインする場合、一時的な認証情報を使用します。例えば、会社のシングルサインオン (SSO) リンク AWS を使用して にアクセスすると、そのプロセスによって一時的な認証情報が自動的に作成されます。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えの詳細については、 IAM ユーザーガイド「ユーザーからIAMロールへの切り替え (コンソール)」を参照してください。

AWS CLI または を使用して、一時的な認証情報を手動で作成できます AWS API。その後、これらの一時的な認証情報を使用して にアクセスします AWS。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「」の「一時的なセキュリティ認証情報IAM」を参照してください。

の転送アクセスセッション AWS Cloud9

転送アクセスセッションをサポート (FAS): はい

ユーザーIAMまたはロールを使用して でアクションを実行すると AWS、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストのリクエストを使用します。FAS リクエストは、サービスが他の AWS のサービス または リソースとのやり取りを完了する必要があるリクエストを受け取った場合にのみ行われます。この場合、両方のアクションを実行するための権限が必要です。FAS リクエストを行う際のポリシーの詳細については、「アクセスセッションの転送」を参照してください。

AWS Cloud9のサービスロール

サービスロールのサポート: あり

サービスロールは、ユーザーに代わってアクションを実行するためにサービスが引き受けるIAMロールです。IAM 管理者は、 内からサービスロールを作成、変更、削除できますIAM。詳細については、IAM「 ユーザーガイド」の「 にアクセス許可を委任するロールの作成 AWS のサービス」を参照してください。

警告

サービスロールのアクセス許可を変更すると、 AWS Cloud9 機能が壊れる可能性があります。 AWS Cloud9 がガイダンスを提供する場合にのみ、サービスロールを編集します。

のサービスにリンクされたロール AWS Cloud9

サービスリンクロールのサポート: あり

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

サービスにリンクされたロールの作成または管理の詳細については、AWS 「 と連携するサービスIAM」を参照してください。表の中から、[Service-linked role] (サービスにリンクされたロール) 列に Yes と記載されたサービスを見つけます。サービスリンクロールに関するドキュメントをサービスで表示するには、「はい」 リンクを選択します。

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

デフォルトでは、 ユーザーおよびロールには、 AWS Cloud9 リソースを作成または変更する権限はありません。また、、 AWS Command Line Interface (AWS CLI) AWS Management Console、または を使用してタスクを実行することはできません AWS API。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するには、IAM管理者はIAMポリシーを作成できます。その後、管理者はIAMポリシーをロールに追加し、ユーザーはロールを引き受けることができます。

これらのポリシードキュメント例を使用して IAM ID ベースのJSONポリシーを作成する方法については、IAM「 ユーザーガイド」のIAM「ポリシーの作成 (コンソール)」を参照してください。

各リソースタイプの の形式など AWS Cloud9、 で定義されるアクションとARNsリソースタイプの詳細については、「サービス認証リファレンス」の「 のアクション、リソース、および条件キー AWS Cloud9」を参照してください。

ポリシーのベストプラクティス

ID ベースのポリシーは、誰かがアカウント内の AWS Cloud9 リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションを実行すると、 AWS アカウントに料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS マネージドポリシーを開始し、最小権限のアクセス許可に移行 – ユーザーとワークロードへのアクセス許可の付与を開始するには、多くの一般的なユースケースのアクセス許可を付与するAWS マネージドポリシーを使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、IAM「 ユーザーガイド」の「 管理AWS ポリシー」または ジョブ機能の 管理ポリシーを参照してください。 AWS

  • 最小権限のアクセス許可を適用する – IAMポリシーでアクセス許可を設定する場合、タスクの実行に必要なアクセス許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用してアクセス許可を適用する方法の詳細については、IAM「 ユーザーガイド」の「 のポリシーとアクセス許可IAM」を参照してください。

  • IAM ポリシーの条件を使用してアクセスをさらに制限する – ポリシーに条件を追加して、アクションとリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを を使用して送信する必要があることを指定できますSSL。などの特定の を通じてサービスアクションが使用されている場合 AWS のサービス、条件を使用してサービスアクションへのアクセスを許可することもできます AWS CloudFormation。詳細については、IAM「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件」を参照してください。

  • IAM Access Analyzer を使用してIAMポリシーを検証し、安全で機能的なアクセス許可を確保する – IAM Access Analyzer は、ポリシーがポリシー言語 (JSON) とIAMベストプラクティスに準拠するように、新規および既存のIAMポリシーを検証します。IAM Access Analyzer には、安全で機能的なポリシーの作成に役立つ 100 を超えるポリシーチェックと実用的な推奨事項が用意されています。詳細については、IAM「 ユーザーガイド」のIAM「Access Analyzer を使用したポリシーの検証」を参照してください。

  • 多要素認証が必要 (MFA) – でIAMユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、 をオンにMFAしてセキュリティを強化します。API オペレーションが呼び出されるMFAタイミングを要求するには、ポリシーにMFA条件を追加します。詳細については、「 ユーザーガイド」の「 によるセキュアAPIアクセスMFA」を参照してください。 IAM

のベストプラクティスの詳細についてはIAM、「 ユーザーガイド」の「 のセキュリティのベストプラクティスIAM」を参照してください。 IAM

AWS Cloud9 コンソールを使用する

AWS Cloud9 コンソールにアクセスするには、最小限のアクセス許可のセットが必要です。これらのアクセス許可により、 内の AWS Cloud9 リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

AWS CLI または のみを呼び出すユーザーに対して、最小限のコンソールアクセス許可を付与する必要はありません AWS API。代わりに、実行しようとしているAPIオペレーションに一致するアクションにのみアクセスを許可します。

ユーザーとロールが AWS Cloud9 引き続きコンソールを使用できるようにするには、 AWS Cloud9 ConsoleAccess または ReadOnly AWS 管理ポリシーをエンティティにアタッチします。詳細については、「 ユーザーガイド」の「ユーザーへのアクセス許可の追加」を参照してください。 IAM

自分の権限の表示をユーザーに許可する

この例では、IAMユーザーがユーザー ID にアタッチされているインラインポリシーとマネージドポリシーを表示できるようにするポリシーを作成する方法を示します。このポリシーには、コンソールで、または AWS CLI または を使用してプログラムでこのアクションを実行するアクセス許可が含まれています AWS API。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

AWS Cloud9 ID とアクセスのトラブルシューティング

AWS Cloud9 以下の情報は、 および の使用時に発生する可能性のある一般的な問題を診断して修正するのに役立ちますIAM。

でアクションを実行する権限がありません AWS Cloud9

「I am not authorized to perform an action in Amazon Bedrock」というエラーが表示された場合、そのアクションを実行できるようにポリシーを更新する必要があります。

次のエラー例は、mateojacksonIAMユーザーがコンソールを使用して架空のmy-example-widgetリソースの詳細を表示しようとしても、架空のawes:GetWidgetアクセス許可がない場合に発生します。

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: awes:GetWidget on resource: my-example-widget

この場合、awes:GetWidget アクションを使用して my-example-widgetリソースへのアクセスを許可するように、mateojackson ユーザーのポリシーを更新する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン認証情報を提供した担当者が管理者です。

iam を実行する権限がありません。PassRole

iam:PassRole アクションを実行する権限がないというエラーが表示された場合は、ポリシーを更新して AWS Cloud9にロールを渡すことができるようにする必要があります。

一部の AWS のサービス では、新しいサービスロールまたはサービスにリンクされたロールを作成する代わりに、そのサービスに既存のロールを渡すことができます。そのためには、サービスにロールを渡す権限が必要です。

次のエラー例は、 という名前のIAMユーザーがコンソールを使用して marymajor でアクションを実行しようとすると発生します AWS Cloud9。ただし、このアクションをサービスが実行するには、サービスロールから付与された権限が必要です。メアリーには、ロールをサービスに渡す許可がありません。

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

この場合、Mary のポリシーを更新してメアリーに iam:PassRole アクションの実行を許可する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン認証情報を提供した担当者が管理者です。

自分の外部のユーザーに自分の AWS Cloud9 リソース AWS アカウント へのアクセスを許可したい

他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACLs) をサポートするサービスでは、これらのポリシーを使用して、リソースへのアクセスをユーザーに許可できます。

詳細については、以下を参照してください。

IAM リソースとオペレーションの AWS Cloud9 仕組み

AWS Identity and Access Management は、 AWS Cloud9 開発環境と他の AWS のサービス および リソースの両方を操作できるようにするアクセス許可を管理するために使用されます。

AWS Cloud9 リソースとオペレーション

では AWS Cloud9、プライマリリソースは AWS Cloud9 開発環境です。ポリシーでは、Amazon リソースネーム (ARN) を使用して、ポリシーが適用されるリソースを識別します。次の表に、環境 を示しますARNs。詳細については、「」の「Amazon リソースネーム (ARNs)」と AWS 「サービス名前空間」を参照してくださいAmazon Web Services 全般のリファレンス

リソースタイプ ARN 形式

環境

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

特定 AWS リージョンの特定アカウントが所有するすべての環境

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:*

特定のリージョンの特定アカウントが所有するすべての環境

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:*

アカウントとリージョンに関係なく、すべての AWS Cloud9 リソース

arn:aws:cloud9:*

例えば、次のように Amazon リソースネーム (ARN) を使用して、ステートメント内の特定の環境を指定できます。

"Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:70d899206236474f9590d93b7c41dfEX"

すべてのリソースを指定するには、Resource エレメント内でワイルドカード文字 (*) を使用します。

"Resource": "*"

1 つのステートメントで複数のリソースを指定するには、Amazon リソースネーム (ARNs) をカンマで区切ります。

"Resource": [ "arn:aws:cloud9:us-east-2:123456789012:environment:70d899206236474f9590d93b7c41dfEX", "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" ]

AWS Cloud9 は、 AWS Cloud9 リソースを操作するための一連のオペレーションを提供します。リストについては、「AWS Cloud9 アクセス許可リファレンス」を参照してください。

リソース所有権について

AWS アカウント アカウントは、リソースを作成したユーザーに関係なく、アカウントで作成されたリソースを所有します。

以下のユースケースとシナリオについて検討します。

  • のルートアカウント認証情報を使用して AWS Cloud9 開発環境 AWS アカウント を作成するとします。これは可能ですがお勧めしません。この場合、 AWS アカウント は環境の所有者です。

  • でIAMユーザーを作成し AWS アカウント 、そのユーザーに環境を作成するアクセス許可を付与するとします。これで、ユーザーは環境を作成できます。ただし、ユーザーが属 AWS アカウントする は、引き続き環境を所有します。

  • 環境を作成するアクセス許可 AWS アカウント を持つIAMロールを に作成するとします。これで、ロールを引き受けることのできるすべてのユーザーが環境を作成できます。ロールが属する AWS アカウントが環境を所有しているとします。

注記

1 つ以上の AWS Cloud9 環境のARN所有者であるユーザーアカウントを削除すると、これらの環境には所有者がいません。このシナリオの回避策は、 AWS Cloud9 SDKを使用して、 CreateEnvironmentMembershipアクションとEnvironmentMemberデータ型を使用して読み取りおよび書き込み権限を持つ別のIAMユーザーを追加することです。このIAMユーザーを追加したら、環境ファイルを新しい AWS Cloud9 環境にコピーし、この所有者をARN所有者にすることができます。このアクションの詳細については、CreateEnvironmentMembership「」を参照してください。このデータ型の詳細については、「 リファレンスガイドEnvironmentMember」の「」を参照してください。 AWS Cloud9 API

リソースへのアクセスの管理

許可ポリシーでは、誰がどのリソースにアクセスできるかを記述します。

注記

このセクションでは、 IAMでの の使用について説明します AWS Cloud9。IAM サービスに関する詳細情報は提供されません。詳細なIAMドキュメントについては、 IAM ユーザーガイド「 とはIAM」を参照してください。IAM ポリシーの構文と説明については、IAM「 ユーザーガイド」のIAMJSON「ポリシーリファレンス」を参照してください。

IAM ID にアタッチされたポリシーは、ID ベースのポリシー (または IAM ポリシー) と呼ばれます。リソースにアタッチされたポリシーは、リソースベースのポリシー と呼ばれます。 は、アイデンティティベースのポリシーとリソースベースのポリシーの両方 AWS Cloud9 をサポートします。

次の各APIアクションでは、これらのAPIアクションを呼び出す IAM ID にアタッチされるIAMポリシーのみが必要です。

  • CreateEnvironmentEC2

  • DescribeEnvironments

次のAPIアクションには、リソースベースのポリシーが必要です。IAM ポリシーは必須ではありませんが、これらのAPIアクションを呼び出す IAM ID にアタッチされている場合はIAMポリシー AWS Cloud9 を使用します。リソースベースのポリシーは、目的の AWS Cloud9 リソースに適用する必要があります。

  • CreateEnvironmentMembership

  • DeleteEnvironment

  • DeleteEnvironmentMembership

  • DescribeEnvironmentMemberships

  • DescribeEnvironmentStatus

  • UpdateEnvironment

  • UpdateEnvironmentMembership

これらの各APIアクションの動作の詳細については、 AWS Cloud9 APIリファレンス を参照してください。

リソースベースのポリシーを AWS Cloud9 リソースに直接アタッチすることはできません。代わりに、 は、環境メンバーを追加、変更、更新、または削除する際に、適切なリソースベースのポリシーを AWS Cloud9 リソースに AWS Cloud9 アタッチします。

AWS Cloud9 リソースに対してアクションを実行するアクセス許可をユーザーに付与するには、ユーザーが属するIAMグループにアクセス許可ポリシーをアタッチします。 AWS Cloud9 可能な限り、 の AWS マネージド (事前定義) ポリシーをアタッチすることをお勧めします。 AWS マネージドポリシーには、環境、環境ユーザー、および環境への読み取り専用アクセスのみを持つユーザーの完全な管理など、一般的な使用シナリオとユーザータイプに対する事前定義されたアクセス許可のセットが含まれています。の管理 AWS ポリシーのリストについては AWS Cloud9、「」を参照してくださいAWS の マネージドポリシー AWS Cloud9

より詳細な使用シナリオと一意のユーザータイプについては、独自のカスタマーマネージドポリシーを作成してアタッチすることができます。「の追加セットアップオプション AWS Cloud9」および「のカスタマー管理ポリシーの作成 AWS Cloud9」を参照してください。

ID にIAMポリシー (AWS マネージドまたはカスタマーマネージド) をアタッチするにはIAM、 IAM ユーザーガイドIAM「ポリシーのアタッチ (コンソール)」を参照してください。

API オペレーションのセッションアクセス許可

AWS CLI または AWS API を使用してロールまたはフェデレーティッドユーザーの一時セッションをプログラムで作成する場合、セッションポリシーをパラメータとして渡してロールセッションの範囲を拡張できます。つまり、効果的なセッションの許可は、ロールのアイデンティティベースのポリシーとセッションポリシーの共通部分です。

セッション中にリソースへのアクセス要求が行われた場合、適用可能な Deny ステートメントがないものの、セッションポリシーに適用可能な Allow ステートメントもない場合、ポリシー評価の結果は暗黙的な拒否となります。(詳細については、IAM「 ユーザーガイド」の「アカウント内でリクエストが許可または拒否されるかどうかの判断」を参照してください。)

ただし、リソースベースのポリシーを必要とするオペレーション (上記を参照) では AWS Cloud9 API、リソースポリシーPrincipalで として指定されている場合、呼び出しているIAMエンティティに許可が付与されます。この明示的なアクセス許可は、セッションポリシーの暗黙的な拒否よりも優先されるため、セッションはオペレーションを AWS Cloud9 API正常に呼び出すことができます。

AWS の マネージドポリシー AWS Cloud9

AWS マネージドポリシーは、 によって作成および管理されるスタンドアロンポリシーです AWS。 AWS マネージドポリシーは、多くの一般的なユースケースに対するアクセス許可を提供するように設計されているため、ユーザー、グループ、ロールへのアクセス許可の割り当てを開始できます。

AWS マネージドポリシーは、すべての AWS お客様が使用できるため、特定のユースケースに対して最小権限のアクセス許可を付与しない場合があることに注意してください。ユースケース別にカスタマーマネージドポリシーを定義して、マネージドポリシーを絞り込むことをお勧めします。

AWS マネージドポリシーで定義されているアクセス許可は変更できません。が マネージドポリシーで AWS 定義されたアクセス許可 AWS を更新すると、ポリシーがアタッチされているすべてのプリンシパル ID (ユーザー、グループ、ロール) に影響します。 AWS AWS のサービス は、新しい が起動されるか、新しいAPIオペレーションが既存のサービスで使用できるようになったときに、 AWS マネージドポリシーを更新する可能性が高くなります。

詳細については、「 ユーザーガイド」のAWS 「 管理ポリシー」を参照してください。 IAM

AWS マネージドポリシー: AWSCloud9Administrator

ID IAM にAWSCloud9Administratorポリシーをアタッチできます。

このポリシーでは、administrative への管理者アクセスを許可するアクセス許可 AWS Cloud9。

アクセス許可の詳細

このポリシーには、以下のアクセス許可が含まれています。

  • AWS Cloud9 – の のすべての AWS Cloud9 アクション AWS アカウント。

  • Amazon EC2 — で複数の Amazon リソースVPCとサブネットリソースに関する情報を取得します AWS アカウント。

  • IAM – でIAMユーザーに関する情報を取得し AWS アカウント、 AWS アカウント 必要に応じて で AWS Cloud9 サービスにリンクされたロールを作成します。

  • Systems Manager – ユーザーに を呼び出し StartSession て Session Manager セッションのインスタンスへの接続を開始することを許可します。このアクセス許可は、Systems Manager を介してEC2インスタンスと通信する環境を開くユーザーに必要です。詳細については、「を使用して非進入EC2インスタンスにアクセスする AWS Systems Manager」を参照してください

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:*", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:GetConnectionStatus" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] } ] }

AWS マネージドポリシー: AWSCloud9User

ID IAM にAWSCloud9Userポリシーをアタッチできます。

このポリシーでは、user 開発環境を作成し AWS Cloud9 、所有環境を管理するためのアクセス許可。

アクセス許可の詳細

このポリシーには、以下のアクセス許可が含まれています。

  • AWS Cloud9 – 環境に関する情報を作成して取得し、環境のユーザー設定を取得して変更します。

  • Amazon EC2 — で複数の Amazon リソースVPCとサブネットリソースに関する情報を取得します AWS アカウント。

  • IAM – でIAMユーザーに関する情報を取得し AWS アカウント、 AWS アカウント 必要に応じて で AWS Cloud9 サービスにリンクされたロールを作成します。

  • Systems Manager – ユーザーに を呼び出し StartSession て Session Manager セッションのインスタンスへの接続を開始することを許可します。このアクセス許可は、Systems Manager を介してEC2インスタンスと通信する環境を開くユーザーに必要です。詳細については、「を使用して非進入EC2インスタンスにアクセスする AWS Systems Manager」を参照してください

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:UpdateUserSettings", "cloud9:GetUserSettings", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentEC2", "cloud9:CreateEnvironmentSSH" ], "Resource": "*", "Condition": { "Null": { "cloud9:OwnerArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:GetUserPublicKey" ], "Resource": "*", "Condition": { "Null": { "cloud9:UserArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:DescribeEnvironmentMemberships" ], "Resource": [ "*" ], "Condition": { "Null": { "cloud9:UserArn": "true", "cloud9:EnvironmentId": "true" } } }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:GetConnectionStatus" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] } ] }

AWS マネージドポリシー: AWSCloud9EnvironmentMember

ID IAM にAWSCloud9EnvironmentMemberポリシーをアタッチできます。

このポリシーでは、membership AWS Cloud9 共有環境に参加するためのアクセス許可。

許可の詳細

このポリシーには、以下の許可が含まれています。

  • AWS Cloud9 – 環境に関する情報を取得し、環境のユーザー設定を取得および変更します。

  • IAM – でIAMユーザーに関する情報を取得し AWS アカウント、 AWS アカウント 必要に応じて で AWS Cloud9 サービスにリンクされたロールを作成します。

  • Systems Manager – ユーザーに を呼び出し StartSession て Session Manager セッションのインスタンスへの接続を開始することを許可します。このアクセス許可は、Systems Manager を介してEC2インスタンスと通信する環境を開くユーザーに必要です。詳細については、「を使用して非進入EC2インスタンスにアクセスする AWS Systems Manager」を参照してください

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:GetUserSettings", "cloud9:UpdateUserSettings", "iam:GetUser", "iam:ListUsers" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloud9:DescribeEnvironmentMemberships" ], "Resource": [ "*" ], "Condition": { "Null": { "cloud9:UserArn": "true", "cloud9:EnvironmentId": "true" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:GetConnectionStatus" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] } ] }

AWS マネージドポリシー: AWSCloud9ServiceRolePolicy

サービスにリンクされたロールAWSServiceRoleForAWSCloud9は、このポリシーを使用して、 AWS Cloud9 環境が Amazon EC2および AWS CloudFormation リソースとやり取りできるようにします。

許可の詳細

は、 AWS Cloud9 が開発環境を作成および実行するために必要な AWS のサービス (Amazon EC2 および AWS CloudFormation) とやり取りするために必要なアクセス許可を AWSServiceRoleForAWSCloud9 にAWSCloud9ServiceRolePolicy付与します。

AWS Cloud9 は、サービスにリンクされたロールのアクセス許可を定義し、 のみがそのロールを引き受け AWS Cloud9 ることができます。定義されたアクセス許可には、信頼ポリシーとアクセス許可ポリシーが含まれ、そのアクセス許可ポリシーを他のIAMエンティティにアタッチすることはできません。

がサービスにリンクされたロール AWS Cloud9 を使用する方法の詳細については、「」を参照してくださいAWS Cloud9のサービスにリンクされたロールの使用

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateSecurityGroup", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "cloudformation:CreateStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:DeleteStack" ], "Resource": "arn:aws:cloudformation:*:*:stack/aws-cloud9-*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringLike": { "aws:RequestTag/Name": "aws-cloud9-*" } } }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*", "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-name": "aws-cloud9-*" } } }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": [ "arn:aws:license-manager:*:*:license-configuration:*" ] }, { "Effect": "Allow", "Action": [ "iam:ListInstanceProfiles", "iam:GetInstanceProfile" ], "Resource": [ "arn:aws:iam::*:instance-profile/cloud9/*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole" ], "Condition": { "StringLike": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }

AWS Cloud9AWS マネージドポリシーの更新

このサービスがこれらの変更の追跡を開始 AWS Cloud9 してからの AWS の管理ポリシーの更新に関する詳細を表示します。このページの変更に関する自動アラートについては、 AWS Cloud9 ドキュメント履歴ページのRSSフィードにサブスクライブします。

変更 説明 日付

AWSCloud9User、、AWSCloud9Administratorおよび AWSCloud9EnvironmentMemberポリシーに新しいアクションが追加されました。

ssm:GetConnectionStatus アクションが AWSCloud9User AWSCloud9Administrator および AWSCloud9EnvironmentMemberポリシーに追加されました。このアクションにより、SSM接続ステータスを確認するアクセス許可がユーザーに付与されます。cloud9:ValidateEnvironmentName API は廃止されたため、AWSCloud9Userポリシーから削除されました。

2023 年 10 月 12 日

APIが AWSCloud9User および AWSCloud9Administratorポリシーに追加されました。

AWSCloud9User と APIAWSCloud9Administratorポリシーに 2 つの新しい が追加されました。これらの APIは ec2:DescribeInstanceTypeOfferingsと ですec2:DescribeRouteTables。これらの の目的はAPI、 AWS Cloud9 が、お客様が AWS Cloud9 環境を作成するときに選択したインスタンスタイプをデフォルトのサブネットがサポートしていることを検証することです。

2023 年 8 月 2 日

に更新 AWSCloud9ServiceRolePolicy

AWSCloud9ServiceRolePolicy は、License Manager ライセンス設定によって管理される Amazon EC2インスタンスを開始および停止 AWS Cloud9 できるように更新されました。

2022 年 1 月 12 日

AWS Cloud9 変更の追跡を開始しました

AWS Cloud9 は、 AWS マネージドポリシーの変更の追跡を開始しました。

2021 年 3 月 15 日

のカスタマー管理ポリシーの作成 AWS Cloud9

どの AWS 管理ポリシーもアクセスコントロール要件を満たしていない場合は、独自のカスタマー管理ポリシーを作成してアタッチできます。

カスタマー管理ポリシーを作成するには、 IAM ユーザーガイドIAM「ポリシーの作成 (コンソール)」を参照してください。

ポリシー要素の指定: 効果、プリンシパル、アクション、リソース

サービスは、 AWS Cloud9 リソースごとに一連のAPIオペレーションを定義します。これらのAPIオペレーションのアクセス許可を付与するには、ポリシーで指定できる一連のアクション AWS Cloud9 を定義します。

以下は、基本的なポリシーの要素です。

  • Effect – ユーザーがアクションをリクエストする際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に付与 (許可) していない場合、アクセスは暗黙的に拒否されます。リソースへのアクセスを明示的に拒否することもできます。これは、別のポリシーがアクセスを許可している場合でも、ユーザーのリソースへのアクセスを禁止するために行うことができます。

  • Principal – ID ベースのポリシー (IAM ポリシー) では、ポリシーがアタッチされているユーザーは暗黙的なプリンシパルです。リソースベースのポリシーでは、権限を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。

  • Resource – Amazon リソースネーム (ARN) を使用して、ポリシーが適用されるリソースを識別します。

  • Action – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、cloud9:CreateEnvironmentEC2 許可は、CreateEnvironmentEC2 オペレーションを実行する許可をユーザーに与えます。

IAM ポリシーの構文と説明の詳細については、IAM「 ユーザーガイド」のIAMJSON「ポリシーリファレンス」を参照してください。

すべての AWS Cloud9 APIアクションとそれらが適用されるリソースを示す表については、「」を参照してくださいAWS Cloud9 アクセス許可リファレンス

お客様のマネージドポリシーの例

このセクションでは、 AWS Cloud9 アクションの許可を付与するポリシー例を示しています。次のIAMポリシーの例を適応させて、ID IAM AWS Cloud9 へのアクセスを許可または明示的に拒否できます。

カスタマー管理ポリシーを作成または IAM ID にアタッチするには、IAM「 ユーザーガイド」のIAM「ポリシーの作成 (コンソール)IAMポリシーのアタッチ (コンソール)」を参照してください。

注記

次の例では、米国東部 (オハイオ) リージョン (us-east-2)、架空の AWS アカウント ID ()、架空の AWS Cloud9 開発環境 ID (123456789012) を使用しています81e900317347585a0601e04c8d52eaEX

環境に関する情報を取得

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウント内の任意の環境に関する情報を取得できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DescribeEnvironments", "Resource": "*" } ] }
注記

前述のアクセス許可は、 AWS マネージドポリシーAWSCloud9Administratorと に既に含まれていますAWSCloud9User

EC2 環境を作成する

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウントに開発環境を作成 AWS Cloud9 EC2することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*" } ] }
注記

前述のアクセス許可は、 AWS マネージドポリシーAWSCloud9Administratorと に既に含まれていますAWSCloud9User

特定の Amazon EC2インスタンスタイプを使用してEC2環境を作成する

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウントに開発環境を作成 AWS Cloud9 EC2することを許可します。ただし、EC2環境では、指定されたクラスの Amazon EC2インスタンスタイプのみを使用できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*", "Condition": { "StringLike": { "cloud9:InstanceType": "t3.*" } } } ] }
注記

AWS 管理ポリシー AWSCloud9Administratorまたは AWSCloud9UserがIAMエンティティに既にアタッチされている場合、その AWS 管理ポリシーは前述のIAMポリシーステートメントの動作を上書きします。これは、これらの AWS 管理ポリシーがより許容的であるためです。

特定の Amazon VPCサブネットにEC2環境を作成する

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウントに開発環境を作成 AWS Cloud9 EC2することを許可します。ただし、EC2環境は指定された Amazon VPC サブネットのみを使用できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*", "Condition": { "StringLike": { "cloud9:SubnetId": [ "subnet-12345678", "subnet-23456789" ] } } } ] }
注記

AWS 管理ポリシー AWSCloud9Administratorまたは AWSCloud9UserがIAMエンティティに既にアタッチされている場合、その AWS 管理ポリシーは前述のIAMポリシーステートメントの動作を上書きします。これは、これらの AWS 管理ポリシーがより許容的であるためです。

特定のEC2環境名で環境を作成する

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティが AWS Cloud9 EC2アカウントで開発環境を作成することを許可します。ただし、EC2環境は指定された名前のみを使用できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*", "Condition": { "StringEquals": { "cloud9:EnvironmentName": "my-demo-environment" } } } ] }
注記

AWS 管理ポリシー AWSCloud9Administratorまたは AWSCloud9UserがIAMエンティティに既にアタッチされている場合、その AWS 管理ポリシーは前述のIAMポリシーステートメントの動作を上書きします。これは、これらの AWS 管理ポリシーがより許容的であるためです。

SSH 環境のみを作成する

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウントに開発環境を作成 AWS Cloud9 SSHすることを許可します。ただし、エンティティは開発環境を作成 AWS Cloud9 EC2できません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentSSH", "Resource": "*" }, { "Effect": "Deny", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*" } ] }

環境を更新、または環境の更新を禁止

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウント内の AWS Cloud9 開発環境に関する情報を変更することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:UpdateEnvironment", "Resource": "*" } ] }
注記

上記のアクセス許可は、 AWS マネージドポリシー に既に含まれていますAWSCloud9Administrator

エンティティにアタッチされた次のIAMポリシーステートメント例では、そのエンティティが、指定された Amazon リソースネーム () を使用して環境に関する情報を変更することIAMを明確に防止しますARN。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:UpdateEnvironment", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

環境メンバーのリストを取得

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティはアカウント内の任意の環境のメンバーのリストを取得できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DescribeEnvironmentMemberships", "Resource": "*" } ] }
注記

上記のアクセス許可は、 AWS マネージドポリシー に既に含まれていますAWSCloud9Administrator。また、前述のアクセス許可は、 AWS マネージドポリシー の同等のアクセス許可よりも許可されますAWSCloud9User

特定のユーザーのみと環境を共有

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウント内の任意の環境を指定されたユーザーのみと共有することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentMembership" ], "Resource": "*", "Condition": { "StringEquals": { "cloud9:UserArn": "arn:aws:iam::123456789012:user/MyDemoUser" } } } ] }
注記

AWS 管理ポリシー AWSCloud9Administratorまたは AWSCloud9UserがIAMエンティティに既にアタッチされている場合、それらの AWS 管理ポリシーは前述のIAMポリシーステートメントの動作を上書きします。これは、これらの AWS 管理ポリシーがより許容的であるためです。

環境の共有を禁止

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウント内の環境を共有できないようにします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloud9:CreateEnvironmentMembership", "cloud9:UpdateEnvironmentMembership" ], "Resource": "*" } ] }

環境メンバーの設定を変更、または変更を禁止

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウント内の任意の環境のメンバーの設定を変更することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:UpdateEnvironmentMembership", "Resource": "*" } ] }
注記

上記のアクセス許可は、 AWS マネージドポリシー に既に含まれていますAWSCloud9Administrator

エンティティにアタッチされた次のIAMポリシーステートメント例では、そのエンティティが、指定された Amazon リソースネーム () を使用して環境内のメンバーの設定を変更することをIAM明示的に禁止しますARN。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:UpdateEnvironmentMembership", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

環境メンバーを削除、または削除を禁止

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティはアカウント内の任意の環境からメンバーを削除できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DeleteEnvironmentMembership", "Resource": "*" } ] }
注記

上記のアクセス許可は、 AWS マネージドポリシー に既に含まれていますAWSCloud9Administrator

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、指定された Amazon リソースネーム () を持つ環境からそのエンティティがメンバーを削除することを明示的に防止しますARN。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:DeleteEnvironmentMembership", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

環境を削除、または削除を禁止

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティがアカウント内の環境を削除することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloud9:DeleteEnvironment", "Resource": "*" } ] }
注記

上記のアクセス許可は、 AWS マネージドポリシー に既に含まれていますAWSCloud9Administrator

次のIAMポリシーステートメントの例は、IAMエンティティにアタッチされており、そのエンティティが指定された Amazon リソースネーム () を使用して環境を削除することを明確に防止しますARN。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:DeleteEnvironment", "Resource": "arn:aws:cloud9:us-east-2:123456789012:environment:81e900317347585a0601e04c8d52eaEX" } ] }

SSM 環境作成のカスタムIAMポリシー

AWSCloud9Administrator または AWSCloud9UserポリシーがアタッチされたSSM環境を作成するときに発生する現在のアクセス許可の問題があります。次のIAMポリシーステートメント例では、IAMエンティティにアタッチすると、ユーザーは AWS マネージドポリシーAWSCloud9Administratorまたは をアタッチして使用できますAWSCloud9User

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:UpdateUserSettings", "cloud9:GetUserSettings", "iam:GetUser", "iam:ListUsers", "iam:ListRoles", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentEC2", "cloud9:CreateEnvironmentSSH" ], "Resource": "*", "Condition": { "Null": { "cloud9:OwnerArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:GetUserPublicKey" ], "Resource": "*", "Condition": { "Null": { "cloud9:UserArn": "true" } } }, { "Effect": "Allow", "Action": [ "cloud9:DescribeEnvironmentMemberships" ], "Resource": [ "*" ], "Condition": { "Null": { "cloud9:UserArn": "true", "cloud9:EnvironmentId": "true" } } }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }, { "Effect": "Allow", "Action": ["iam:ListInstanceProfilesForRole", "iam:CreateRole"], "Resource": ["arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole"] }, { "Effect": "Allow", "Action": ["iam:AttachRolePolicy"], "Resource": ["arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole"], "Condition": { "StringEquals": { "iam:PolicyARN": "arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile" } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:CreateInstanceProfile", "iam:AddRoleToInstanceProfile" ], "Resource": [ "arn:aws:iam::*:instance-profile/cloud9/AWSCloud9SSMInstanceProfile" ] } ] }

AWS Cloud9 アクセス許可リファレンス

AWS Cloud9 ポリシーで AWS ワイド条件キーを使用して条件を表現できます。リストについては、IAM「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件」を参照してください。

アクションは、ポリシーの Action フィールドで指定します。アクションを指定するには、cloud9:プレフィックスの後にAPIオペレーション名 (例: ) を使用します"Action": "cloud9:DescribeEnvironments"。単一のステートメントに複数のアクションを指定するには、コンマで区切ります (例えば、"Action": [ "cloud9:UpdateEnvironment", "cloud9:DeleteEnvironment" ])。

ワイルドカード文字の使用

ポリシーの Resourceフィールドにリソース値としてARN、ワイルドカード文字 (*) の有無にかかわらず を指定します。ワイルドカードを使用して複数のアクションまたはリソースを指定することができます。例えば、 cloud9:*はすべての AWS Cloud9 アクションを指定し、 で始まるすべての AWS Cloud9 アクションcloud9:Describe*を指定しますDescribe

次の例では、IAMエンティティがアカウント内の任意の環境の環境と環境メンバーシップに関する情報を取得できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:Describe*" ], "Resource": "*" } ] }
注記

上記のアクセス許可は、 AWS マネージドポリシー に既に含まれていますAWSCloud9Administrator。また、前述のアクセス許可は、 AWS マネージドポリシー の同等のアクセス許可よりも許可されますAWSCloud9User

AWS Cloud9 API オペレーションとアクションに必要なアクセス許可

注記

ID IAM (アイデンティティベースのポリシー) にアタッチするアクセスコントロールと書き込みアクセス許可ポリシーを設定するときは、以下の表を参照として使用できます。

Public API operations テーブルには、 SDKsと を使用して顧客が呼び出すことができるAPIオペレーションが一覧表示されます AWS Command Line Interface。

には、カスタマーコードまたは によって直接呼び出せないAPIオペレーションがPermission-only API operations一覧表示されます AWS Command Line Interface。ただし、IAMユーザーは、コンソールを使用してアクションを実行するときに AWS Cloud9 呼び出されるこれらのオペレーションに対するアクセス許可が必要です。

パブリックAPIオペレーション
AWS Cloud9 オペレーション 必要なアクセス許可 (API アクション) リソース

CreateEnvironmentEC2

cloud9:CreateEnvironmentEC2

開発環境の作成 AWS Cloud9 EC2に必要です。

*

CreateEnvironmentMembership

cloud9:CreateEnvironmentMembership

環境にメンバーを追加するために必要です。

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DeleteEnvironment

cloud9:DeleteEnvironment

環境を削除するために必要です。

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DeleteEnvironmentMembership

cloud9:DeleteEnvironmentMembership

環境からメンバーを削除するために必要です。

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DescribeEnvironmentMemberships

cloud9:DescribeEnvironmentMemberships

環境のメンバーのリストを取得するのに必要です。

*

DescribeEnvironments

cloud9:DescribeEnvironments

環境に関する情報を取得するのに必要です。

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

DescribeEnvironmentStatus

cloud9:DescribeEnvironmentStatus

環境のステータスに関する情報を取得するのに必要です。

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

UpdateEnvironment

cloud9:UpdateEnvironment

環境の設定を更新するのに必要です。

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

UpdateEnvironmentMembership

cloud9:UpdateEnvironmentMembership

環境のメンバーの設定を更新するのに必要です。

arn:aws:cloud9:REGION_ID:ACCOUNT_ID:environment:ENVIRONMENT_ID

アクセス許可のみのAPIオペレーション
AWS Cloud9 オペレーション 説明 コンソールドキュメンテーション

ActivateEC2Remote

cloud9:ActivateEC2Remote

接続先の Amazon EC2インスタンスを起動します AWS Cloud9 IDE。

AWS Cloud9 で環境を開く

CreateEnvironmentSSH

cloud9:CreateEnvironmentSSH

開発環境を作成します AWS Cloud9 SSH。

SSH 環境を作成する

CreateEnvironmentToken

cloud9:CreateEnvironmentToken

AWS Cloud9 IDE とユーザーの環境間の接続を許可する認証トークンを作成します。

EC2 環境を作成する

DescribeEC2Remote

cloud9:DescribeEC2Remote

ホスト、ユーザー、ポートなど、EC2開発環境への接続に関する詳細を取得します。

EC2 環境を作成する

DescribeSSHRemote

cloud9:DescribeSSHRemote

ホスト、ユーザー、ポートなど、SSH開発環境への接続に関する詳細を取得します。

SSH 環境を作成する

GetEnvironmentConfig

cloud9:GetEnvironmentConfig

の初期化に使用される設定情報を取得します AWS Cloud9 IDE。

の操作 AWS Cloud9 IDE

GetEnvironmentSettings

cloud9:GetEnvironmentSettings

指定された開発環境の設定を取得します AWS Cloud9 IDE。

の操作 AWS Cloud9 IDE

GetMembershipSettings

cloud9:GetMembershipSettings

指定された環境メンバーの設定を取得します AWS Cloud9 IDE。

での共有環境の使用 AWS Cloud9

GetUserPublicKey

cloud9:GetUserPublicKey

ユーザーのパブリックSSHキーを取得します。これは、 がSSH開発環境に接続する AWS Cloud9 ために使用されます。

SSH 環境を作成する

GetUserSettings

cloud9:GetUserSettings

指定されたユーザーの設定を取得します AWS Cloud9 IDE。

の操作 AWS Cloud9 IDE

ModifyTemporaryCredentialsOnEnvironmentEC2

cloud9:ModifyTemporaryCredentialsOnEnvironmentEC2

AWS Cloud9 統合開発環境 () で使用される Amazon EC2インスタンスに AWS マネージド一時認証情報を設定しますIDE。

AWS マネージド一時認証情報

UpdateEnvironmentSettings

cloud9:UpdateEnvironmentSettings

指定された開発環境の設定を更新します AWS Cloud9 IDE。

の操作 AWS Cloud9 IDE

UpdateMembershipSettings

cloud9:UpdateMembershipSettings

指定された環境メンバーの設定を更新します AWS Cloud9 IDE。

での共有環境の使用 AWS Cloud9

UpdateSSHRemote

cloud9:UpdateSSHRemote

ホスト、ユーザー、ポートなど、SSH開発環境への接続に関する詳細を更新します。

SSH 環境を作成する

UpdateUserSettings

cloud9:UpdateUserSettings

指定されたユーザーの設定を更新します AWS Cloud9 IDE。

の操作 AWS Cloud9 IDE

GetMigrationExperiences

cloud9:GetMigrationExperiences

から AWS Cloud9 への移行エクスペリエンスを取得するアクセス許可を AWS Cloud9 ユーザーに付与します CodeCatalyst。

AWS マネージド一時認証情報

AWS マネージド一時認証情報がサポートするアクションのリストを検索する場合は、「」に進みますAWS マネージド一時認証情報でサポートされているアクション

開発環境の場合 AWS Cloud9 EC2、 AWS Cloud9 は環境内で一時的な AWS アクセス認証情報を利用可能にします。これらはAWS マネージド一時認証情報と呼ばれます。これには次の利点があります。

  • 環境内の任意の場所に AWS エンティティ (IAMユーザーなど) の永続的 AWS アクセス認証情報を保存する必要はありません。これによって、ユーザーが認識して承認することなく、環境メンバーがこれらの認証情報にアクセスできなくなります。

  • 環境に接続する Amazon インスタンスにEC2インスタンスプロファイルを手動で設定、管理、またはアタッチする必要はありません。インスタンスプロファイルは、一時的な AWS アクセス認証情報を管理するもう 1 つの方法です。

  • AWS Cloud9 は、一時的な認証情報を継続的に更新するため、1 つの認証情報セットを一定期間のみ使用できます。これは AWS セキュリティのベストプラクティスです。詳細については、「AWS マネージド一時認証情報の作成と更新」を参照してください。

  • AWS Cloud9 は、一時的な認証情報を使用して環境から AWS アクションとリソースにアクセスする方法に追加の制限を設けています。これは、 AWS セキュリティのベストプラクティスでもあります。

重要

現在、環境のEC2インスタンスがプライベートサブネット で起動されている場合、 AWS マネージド一時認証情報を使用してEC2、環境が AWS エンティティ (IAMユーザーなど) に代わって AWS サービスにアクセスすることを許可することはできません。

プライベートサブネットでEC2インスタンスを起動できるタイミングの詳細については、「」を参照してくださいのサブネットを作成する AWS Cloud9

注記

AWS マネージド一時認証情報を使用している場合は、インラインポリシーの代わりに AWS マネージドポリシーの使用を検討してください。

EC2 環境が AWS エンティティ (IAMユーザーなど) AWS のサービス に代わって にアクセスしようとするたびに、 AWS マネージド一時認証情報がどのように機能するかを次に示します。

  1. AWS Cloud9 は、呼び出し元の AWS エンティティ (IAMユーザーなど) に、 でリクエストされたリソースに対してリクエストされたアクションを実行するアクセス許可があるかどうかを確認します AWS。許可がない場合、または明示的に拒否されている場合、リクエストは失敗します。

  2. AWS Cloud9 は、 AWS マネージド一時認証情報をチェックして、そのアクセス許可が でリクエストされたリソースに対してリクエストされたアクションを許可するかどうかを確認します AWS。許可がない場合、または明示的に拒否されている場合、リクエストは失敗します。 AWS 一時的な認証情報がサポートするアクセス許可のリストについては、「」を参照してくださいAWS マネージド一時認証情報でサポートされているアクション

  • AWS エンティティと AWS マネージド一時認証情報の両方が、リクエストされたリソースに対してリクエストされたアクションを許可する場合、リクエストは成功します。

  • AWS エンティティまたは AWS マネージド一時認証情報のいずれかが、リクエストされたリソースに対してリクエストされたアクションを明示的に拒否または許可しなかった場合、リクエストは失敗します。つまり、呼び出し元の AWS エンティティに正しいアクセス許可がある場合でも、 AWS Cloud9 が明示的に許可しない場合、リクエストは失敗します。同様に、 AWS Cloud9 が特定のリソースに対して特定のアクションを実行することを許可した場合、 AWS エンティティが明示的に許可していない場合、リクエストは失敗します。

EC2 環境の所有者は、次のように、その環境の AWS マネージド一時認証情報をいつでもオンまたはオフにできます。

  1. 環境を開いた状態で、メニューバーの AWS Cloud9 IDE「」でAWS Cloud9「設定」を選択します。

  2. 優先]タブのナビゲーションペインで、[AWS 設定]、[認証情報] を選択します。

  3. AWS マネージド一時認証情報を使用して、 AWS マネージド一時認証情報をオンまたはオフにします。

注記

オペレーションを AWS Cloud9 API呼び出しUpdateEnvironmentmanagedCredentialsActionパラメータに値を割り当てることで、 AWS マネージド一時認証情報をオンまたはオフにすることもできます。このAPIオペレーションは、 や などの AWS SDKs標準 AWS ツールを使用してリクエストできます AWS CLI。

AWS マネージド一時認証情報をオフにすると、リクエストを行った AWS エンティティに関係なく AWS のサービス、環境は にアクセスできません。ただし、環境の AWS マネージド一時認証情報を有効にできない、または有効にしたくない場合でも、環境が にアクセスする必要があるとします AWS のサービス。その場合、次の代替方法を検討してください。

上記の代替案は、 EC2 環境内の AWS マネージド一時認証情報によって許可 (または拒否) されるすべてのアクセス許可を上書きします。

AWS マネージド一時認証情報でサポートされているアクション

開発環境では AWS Cloud9 EC2、 AWS マネージド一時認証情報により、発信者の 内のすべての AWS リソースに対するすべての AWS アクションが許可されます。ただし AWS アカウント、以下の制限があります。

  • では AWS Cloud9、次のアクションのみが許可されます。

    • cloud9:CreateEnvironmentEC2

    • cloud9:CreateEnvironmentSSH

    • cloud9:DescribeEnvironmentMemberships

    • cloud9:DescribeEnvironments

    • cloud9:DescribeEnvironmentStatus

    • cloud9:UpdateEnvironment

  • ではIAM、次のアクションのみが許可されます。

    • iam:AttachRolePolicy

    • iam:ChangePassword

    • iam:CreatePolicy

    • iam:CreatePolicyVersion

    • iam:CreateRole

    • iam:CreateServiceLinkedRole

    • iam:DeletePolicy

    • iam:DeletePolicyVersion

    • iam:DeleteRole

    • iam:DeleteRolePolicy

    • iam:DeleteSSHPublicKey

    • iam:DetachRolePolicy

    • iam:GetInstanceProfile

    • iam:GetPolicy

    • iam:GetPolicyVersion

    • iam:GetRole

    • iam:GetRolePolicy

    • iam:GetSSHPublicKey

    • iam:GetUser

    • iam:List*

    • iam:PassRole

    • iam:PutRolePolicy

    • iam:SetDefaultPolicyVersion

    • iam:UpdateAssumeRolePolicy

    • iam:UpdateRoleDescription

    • iam:UpdateSSHPublicKey

    • iam:UploadSSHPublicKey

  • ロールを操作するすべてのIAMアクションは、 で始まるロール名に対してのみ許可されますCloud9-。ただし、iam:PassRole はすべてのロール名で使用します。

  • AWS Security Token Service (AWS STS) では、次のアクションのみが許可されます。

    • sts:GetCallerIdentity

    • sts:DecodeAuthorizationMessage

  • サポートされているすべての AWS アクションは、環境の IP アドレスに制限されます。これは AWS セキュリティのベストプラクティスです。

AWS Cloud9 が、アクセスするEC2環境が必要なアクションやリソースをサポートしていない場合、または EC2 環境の AWS マネージド一時認証情報がオフになっていて、再びオンにできない場合は、次の代替方法を検討してください。

上記の代替案は、 EC2 環境内の AWS マネージド一時認証情報によって許可 (または拒否) されるすべてのアクセス許可を上書きします。

AWS マネージド一時認証情報の作成と更新

開発環境の場合 AWS Cloud9 EC2、 AWS マネージド一時認証情報は環境を初めて開いたときに作成されます。

AWS マネージド一時認証情報は、次のいずれかの条件下で更新されます。

  • 一定の時間が経過するたび。現在、これは 5 分ごとです。

  • IDE 環境の を表示するウェブブラウザタブを再ロードするたびに。

  • 環境の ~/.aws/credentials ファイルにリストされているタイムスタンプに達したとき。

  • AWS マネージド一時認証情報) 設定がオフに設定されている場合、それをオンに戻すたび。(この設定を表示または変更するには、「」のメニューバーでAWS Cloud9、「設定」を選択しますIDE。 設定タブのナビゲーションペインで、AWS 設定、認証情報 を選択します。)

  • セキュリティ上、 AWS マネージド一時認証情報は 15 分後に自動的に期限切れになります。認証情報を更新するには、環境所有者が を介して AWS Cloud9 環境に接続されている必要がありますIDE。環境所有者のロールに関する詳細については、マネージド一時認証情報へのアクセスのコントロール AWS を参照してください。

マネージド一時認証情報へのアクセスのコントロール AWS

AWS マネージド一時認証情報を持つ共同作業者は、 AWS Cloud9 を使用して他の とやり取りできます AWS のサービス。信頼できる共同作業者だけが AWS マネージド一時認証情報を与えるため、環境所有者以外の者を新しいメンバーを追加した場合、これらの認証情報は無効になります。認証情報は、~/.aws/credentials ファイルを削除すると無効になります。

重要

AWS マネージド一時認証情報も 15 分ごとに自動的に期限切れになります。コラボレーターが引き続き使用できるように認証情報を更新するには、環境所有者が を介して AWS Cloud9 環境に接続されている必要がありますIDE。

環境所有者のみが、他のメンバーと共有できるように、 AWS マネージド一時認証情報を再有効化できます。環境所有者が を開くとIDE、 AWS 管理された一時認証情報が無効になっていることを確認するダイアログボックスが表示されます。環境所有者は、すべてのメンバーの資格情報を再度有効にするか、すべてのメンバーの認証情報を無効にできます。

警告

ベストセキュリティプラクティスに従うため、環境に最後に追加されたユーザーのアイデンティティが確実にわからない場合は、マネージド一時認証情報が無効のままになります。[ Collaborate (コラボレーション)]ウィンドウで読み取り/書き込み許可がおりたメンバーの一覧をチェックできます。