Identity and Access Management AWS Cloud9 - AWS Cloud9

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

Identity and Access Management 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、「」を参照してくださいIAM AWS Cloud9 との連携の仕組み

IAM 管理者 - 管理者は、 AWS Cloud9へのアクセスを管理するポリシーの書き込み方法の詳細について確認する場合があります。IAM で使用できる AWS Cloud9 ID ベースのポリシーの例については、を参照してください。AWS Cloud9のアイデンティティベースのポリシーの例

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

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

ID ソースを通じて提供された認証情報を使用して、フェデレーション ID AWS としてサインインできます。 AWS IAM Identity Center フェデレーテッド ID の例としては、(IAM Identity Center) ユーザー、会社のシングルサインオン認証、Google や Facebook の認証情報などがあります。フェデレーティッドアイデンティティとしてサインインする場合、IAM ロールを使用して、前もって管理者により ID フェデレーションが設定されています。 AWS フェデレーションを使用してアクセスすると、間接的にロールを引き継ぐことになります。

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

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

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

AWS アカウント root ユーザー

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

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

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

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

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

IAM ユーザーとグループ

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

IAM グループは、IAM ユーザーの集団を指定するアイデンティティです。グループとしてサインインすることはできません。グループを使用して、複数のユーザーに対して一度に権限を指定できます。多数のユーザーグループがある場合、グループを使用することで権限の管理が容易になります。例えば、IAMAdmins という名前のグループを設定して、そのグループに IAM リソースを管理する権限を与えることができます。

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

IAM ロール

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

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

  • フェデレーションユーザーアクセス – フェデレーティッドアイデンティティに権限を割り当てるには、ロールを作成してそのロールの権限を定義します。フェデレーティッドアイデンティティが認証されると、そのアイデンティティはロールに関連付けられ、ロールで定義されている権限が付与されます。フェデレーションの詳細については、『IAM ユーザーガイド』の「サードパーティーアイデンティティプロバイダー向けロールの作成」 を参照してください。IAM アイデンティティセンターを使用する場合、権限セットを設定します。アイデンティティが認証後にアクセスできるものを制御するため、IAM Identity 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 API AWS CLI リクエストを行うアプリケーションの一時的な認証情報を管理できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。EC2 AWS インスタンスにロールを割り当て、そのロールをそのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされるインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時的な認証情報を取得できます。詳細については、『IAM ユーザーガイド』の「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用して権限を付与する」を参照してください。

IAM ロールと IAM ユーザーのどちらを使用するかについては、『IAM ユーザーガイド』の「(IAM ユーザーではなく) IAM ロールをいつ作成したら良いのか?」を参照してください。

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

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

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

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

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

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

アイデンティティベースポリシーは、IAM ユーザー、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON 権限ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースのポリシーを作成する方法については、『IAM ユーザーガイド』の「IAM ポリシーの作成」を参照してください。

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

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

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

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

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

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

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

その他のポリシータイプ

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

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

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

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

複数のポリシータイプ

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

IAM AWS Cloud9 との連携の仕組み

IAM を使用してアクセスを管理する前に AWS Cloud9、どの IAM 機能が使用できるかを確認してください。 AWS Cloud9

AWS その他のサービスがほとんどの IAM AWS Cloud9 機能でどのように機能するかを大まかに把握するには、IAM ユーザーガイドの「IAM AWS と連携するサービス」を参照してください。

の ID ベースのポリシー AWS Cloud9

アイデンティティベースポリシーをサポートする

Yes

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 権限ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースのポリシーを作成する方法については、『IAM ユーザーガイド』の「IAM ポリシーの作成」を参照してください。

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

の ID ベースのポリシーの例 AWS Cloud9

AWS Cloud9 ID ベースのポリシーの例については、を参照してください。AWS Cloud9のアイデンティティベースのポリシーの例

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

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

No

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

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

AWS Cloud9 リソースベースのポリシーをサポートしていませんが、 AWS Cloud9 API と IDE AWS Cloud9 AWS Cloud9 を使用して環境メンバーの環境リソース権限を制御することはできます。 AWS Cloud9

のポリシーアクション 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 リソースタイプとその ARN の一覧については、『サービス認証リファレンス』の「Resources defined by AWS Cloud9」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「AWS Cloud9で定義されるアクション」を参照してください。

AWS Cloud9 ID ベースのポリシーの例については、を参照してください。AWS Cloud9のアイデンティティベースのポリシーの例

のポリシー条件キー AWS Cloud9

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

はい

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

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

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

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

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

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

AWS Cloud9 ID ベースのポリシーの例については、を参照してください。AWS Cloud9のアイデンティティベースのポリシーの例

の ACL AWS Cloud9

ACL のサポート

No

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

ABACと AWS Cloud9

ABAC のサポート (ポリシー内のタグ)

はい

属性ベースのアクセス制御 (ABAC) は、属性に基づいてアクセス許可を定義するアクセス許可戦略です。では AWS、これらの属性はタグと呼ばれます。IAM エンティティ (ユーザーまたはロール) AWS や多くのリソースにタグを付けることができます。エンティティとリソースのタグ付けは、ABAC の最初の手順です。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致した場合に操作を許可するように ABAC ポリシーを設計します。

ABAC は、急成長する環境やポリシー管理が煩雑になる状況で役立ちます。

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

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

ABAC の詳細については、『IAM ユーザーガイド』の「ABAC とは?」を参照してください。ABAC をセットアップするステップを説明するチュートリアルについては、「IAM ユーザーガイド」の「属性に基づくアクセスコントロール (ABAC) を使用する」を参照してください。

で一時的な認証情報を使用する AWS Cloud9

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

はい

AWS のサービス 一時的な認証情報を使用してサインインすると機能しないものもあります。 AWS のサービス 一時的な認証情報で機能するものなど、追加情報については、『IAM ユーザーガイド』の「IAM と連携する」を参照してくださいAWS のサービス 。

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

または API を使用して一時的な認証情報を手動で作成できます。 AWS CLI AWS その後、その一時的な認証情報を使用してアクセスできます 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 管理者は、サービスにリンクされたロールの権限を表示できますが、編集することはできません。

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

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

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

これらサンプルの JSON ポリシードキュメントを使用して、IAM アイデンティティベースのポリシーを作成する方法については、『IAM ユーザーガイド』の「IAM ポリシーの作成」を参照してください。

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

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

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

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

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

  • IAM ポリシーで条件を使用してアクセスをさらに制限する - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。サービスアクションがなどの特定の用途で使用された場合は AWS のサービス、条件を使用してサービスアクションへのアクセスを許可することもできます AWS CloudFormation。詳細については、『IAM ユーザーガイド』の [IAM JSON policy elements: Condition] (IAM JSON ポリシー要素:条件) を参照してください。

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

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

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

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

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

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

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

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

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

{ "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 とアクセスのトラブルシューティング

IAM AWS Cloud9 を操作する際に発生する可能性のある一般的な問題の診断と修正に役立つ情報は次のとおりです。

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

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

次のエラー例は、mateojackson IAM ユーザーがコンソールを使用して、ある 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 のサービス 既存のロールをそのサービスに渡すことができるものもあります。そのためには、サービスにロールを渡す権限が必要です。

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

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

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

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

AWS アカウントAWS Cloud9 自分以外の人にも私のリソースへのアクセスを許可したい。

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

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

IAM AWS Cloud9 リソースとオペレーションとの連携方法

AWS Identity and Access Management AWS Cloud9 AWS のサービス 開発環境とその他のリソースの両方を操作できるようにする権限を管理するために使用されます。

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

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

リソースタイプ 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": "*"

単一のステートメントに複数のリソースを指定するには、コンマで Amazon リソースネーム (ARN) を区切ります。

"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 アカウント AWS Cloud9 自分のルートアカウント認証情報を使用して開発環境を作成するとします。これは可能ですがお勧めしません。この場合、 AWS アカウント あなたは環境の所有者です。

  • で IAM ユーザーを作成し、そのユーザーに環境を作成する権限を付与するとします AWS アカウント 。これで、ユーザーは環境を作成できます。ただし、 AWS アカウントそのユーザーが属するあなたには、まだ環境を所有しています。

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

注記

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

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

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

注記

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

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

以下の各 API アクションでは、これらの API アクションを呼び出したい IAM アイデンティティに添付する必要があるのは 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」を参照してください。

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

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

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

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

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

AWS の管理ポリシー AWS Cloud9

AWS 管理ポリシーは、によって作成および管理されるスタンドアロンのポリシーです。 AWS AWS 管理ポリシーは、ユーザー、グループ、ロールにアクセス権限を割り当てることができるように、多くの一般的な使用事例にアクセス許可を与えるように設計されています。

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

AWS 管理ポリシーで定義されている権限は変更できません。 AWS 管理ポリシーで定義されている権限を更新すると AWS 、その更新はポリシーがアタッチされているすべてのプリンシパル ID (ユーザー、グループ、ロール) に影響します。 AWS AWS 管理ポリシーが更新される可能性が最も高いのは、新しい API 操作が既存のサービスで開始されたときや、新しい API AWS のサービス 操作が使用可能になったときです。

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

AWS 管理ポリシー: AWSCloud9Administrator

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

このポリシーは、 AWS Cloud9管理者アクセスを提供する管理者権限を付与します。

アクセス許可の詳細

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

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

  • Amazon EC2 — AWS アカウントそれらに含まれる複数の Amazon VPC およびサブネットリソースに関する情報を取得します。

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

  • Systems Manager — StartSession セッションマネージャーセッションのインスタンスへの接続を開始するための呼び出しをユーザーに許可します。この許可は、Systems Manager を介して EC2 インスタンスと通信する環境を開くユーザーにとって必要です。詳細については、「AWS Systems Manager を使用して no-ingress EC2 インスタンスにアクセスする」を参照してください。

{ "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

IAM アイデンティティに AWSCloud9User ポリシーをアタッチできます。

このポリシーは、ユーザーに AWS Cloud9 開発環境の作成と、所有環境の管理許可を付与します。

アクセス許可の詳細

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

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

  • Amazon EC2 — AWS アカウントそれらに含まれる複数の Amazon VPC およびサブネットリソースに関する情報を取得します。

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

  • Systems Manager — StartSession セッションマネージャーセッションのインスタンスへの接続を開始するための呼び出しをユーザーに許可します。この許可は、Systems Manager を介して EC2 インスタンスと通信する環境を開くユーザーにとって必要です。詳細については、「AWS Systems Manager を使用して no-ingress EC2 インスタンスにアクセスする」を参照してください。

{ "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

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

このポリシーは、 AWS Cloud9 共有環境に参加するための権限をメンバーに付与します

許可の詳細

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

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

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

  • Systems Manager — StartSession セッションマネージャーセッションのインスタンスへの接続を開始するための呼び出しをユーザーに許可します。この許可は、Systems Manager を介して EC2 インスタンスと通信する環境を開くユーザーにとって必要です。詳細については、「AWS Systems Manager を使用して no-ingress EC2 インスタンスにアクセスする」を参照してください。

{ "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 のサービス (Amazon EC2 および AWS CloudFormation) との通信に必要なアクセス権限を AWSServiceRoleForAWSCloud 9 AWSCloud9ServiceRolePolicy人に付与します。 AWS Cloud9

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 AWS Cloud9 このサービスが変更の追跡を開始してからの管理ポリシーの更新に関する詳細が表示されます。このページへの変更に関する自動通知を受け取るには、 AWS Cloud9 ドキュメント履歴ページの RSS フィードを購読してください。

変更 説明 日付

AWSCloud9UserAWSCloud9AdministratorAWSCloud9EnvironmentMember新しいアクションがとポリシーに追加されました。

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

2023 年 10 月 12 日

API がポリシーに追加されましたAWSCloud9UserAWSCloud9Administrator

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

2023 年 8 月 2 日

に更新してください。 AWSCloud9ServiceRolePolicy

AWSCloud9ServiceRolePolicyLicense 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 – アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーが添付されているユーザーが暗黙のプリンシパルとなります。リソースベースのポリシーでは、権限を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。

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

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

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

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

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

このセクションでは、 AWS Cloud9 アクションの許可を付与するポリシー例を示しています。以下例にあげたIAM ポリシーを選択して、IAM アイデンティティへの AWS Cloud9 アクセスを許可するか、明示的に拒否できます。

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

注記

以下の例では、米国東部 (オハイオ) リージョン (us-east-2)、 AWS アカウント 架空の ID (123456789012)、 AWS Cloud9 架空の開発環境 ID () を使用しています。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 AWSCloud9AdministratorAWSCloud9User管理ポリシーまたはがすでに 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 AWSCloud9AdministratorAWSCloud9User管理ポリシーまたはがすでに 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 AWSCloud9AdministratorAWSCloud9User管理ポリシーまたはがすでに 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 エンティティに添付された IAM ポリシーステートメント例では、そのエンティティが環境に関する情報を指定された Amazon リソースネーム (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管理ポリシーまたはすでに IAM エンティティにアタッチされている場合、AWSCloud9User 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 エンティティに添付された IAM ポリシーステートメント例では、そのエンティティが環境におけるメンバーの設定を指定された Amazon リソースネーム (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 AWS Cloud9 ポリシーではワイドコンディションキーを使用して条件を表現できます。リストについては、IAM ユーザーガイドの IAM JSON ポリシーエレメント:条件を参照してください。

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

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

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

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

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

AWS AWSCloud9Administrator前述のアクセス権限は既に管理ポリシーに含まれています。また、前述のアクセス権限は、管理ポリシー内の同等のアクセス権限よりも許容範囲が広い。 AWS AWSCloud9User

AWS Cloud9 API オペレーションとアクションに必要な権限

注記

アクセスコントロールをセットアップし、IAM アイデンティティ (アイデンティティベースのポリシー) にアタッチできる許可ポリシーを作成する際に、以下の表をリファレンスとして使用します。

Public API operations 表は、SDK と AWS Command Line Interfaceを使用してお客様が呼び出せる API オペレーションをリストアップします。

Permission-only API operationsは、顧客コードまたは AWS Command Line Interfaceによって直接呼び出せない API オペレーションをリストアップします。ただし、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

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

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 AWS Cloud9 開発環境に接続するために使用するユーザーの公開 SSH 認証鍵を取得します。

SSH 環境を作成する

GetUserSettings

cloud9:GetUserSettings

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

AWS Cloud9 統合開発環境 (IDE) の操作

ModifyTemporaryCredentialsOnEnvironmentEC2

cloud9:ModifyTemporaryCredentialsOnEnvironmentEC2

AWS Cloud9 統合開発環境 (IDE) で使用される Amazon EC2 AWS インスタンスに管理対象の一時認証情報を設定します。

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 SDK 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 これはセキュリティのベストプラクティスです。

EC2 AWS Cloud9 環境でアクセスする必要があるアクションやリソースをサポートしていない場合や、EC2 AWS 環境で管理された一時認証情報がオフになっていて再び有効にできない場合は、以下の代替案を検討してください。

上記の方法は、EC2 環境の AWS マネージド一時認証情報によって許可 (または拒否) されるすべての許可より優先されます。

AWS 管理対象の一時認証情報の作成と更新

AWS Cloud9 EC2 開発環境では、 AWS 管理対象の一時認証情報は、環境を初めて開いたときに作成されます。

AWS 管理対象の一時認証情報は、以下のいずれかの条件で更新されます。

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

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

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

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

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

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

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

重要

AWS 管理対象の一時認証情報も 15 分ごとに自動的に期限切れになります。認証情報を更新して共同作業者が引き続き使用できるようにするには、環境所有者が IDE AWS Cloud9 を介して環境に接続している必要があります。

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

警告

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