AWS Cloud9 で IAM を使用する方法 - AWS Cloud9

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

AWS Cloud9 で IAM を使用する方法

AWS Identity and Access Managementは、両方の操作を可能にするアクセス権限を管理するために使用されます。AWS Cloud9開発環境、その他のAWSのサービスとリソースを使用します。

AWS Cloud9 リソースおよびオペレーション

EclipseAWS Cloud9の場合、プライマリリソースはAWS Cloud9開発環境。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。以下の表に、環境 ARN を示します。詳細については、「」を参照してください。Amazon リソースネーム (ARN) と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:*

たとえば、以下の要領 ARN を使用して、ステートメント内で特定の環境を指定することができます。

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

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

"Resource": "*"

1 つのステートメントで複数のリソースを指定するには、次のように 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 アカウントは、誰がリソースを作成したかにかかわらず、アカウントで作成されたリソースを所有します。

次に例を示します。

  • の root アカウントの認証情報を使用する場合AWSアカウントを使用してAWS Cloud9開発環境(可能ですが、AWSセキュリティのベストプラクティス)、AWSアカウントは環境の所有者です。

  • IAM ユーザーをAWSアカウントを作成し、そのユーザーに環境を作成するためのアクセス許可を付与すると、そのユーザーは環境を作成できます。しかし、あなたのAWSユーザーが属するアカウントは環境を所有しているとします。

  • IAM ロールをAWSアカウントに環境を作成するためのアクセス権限を付与すると、このロールを引き受けることのできるすべてのユーザーが環境を作成できます。あなたのAWSロールが属するアカウントは環境を所有しているとします。

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

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

注記

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

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

以下の各 API アクションでは、これらの API アクションを呼び出す IAM アイデンティティに IAM ポリシーのみをアタッチする必要があります。

  • CreateEnvironmentEC2

  • DescribeEnvironments

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

  • CreateEnvironmentMembership

  • DeleteEnvironment

  • DeleteEnvironmentMembership

  • DescribeEnvironmentMemberships

  • DescribeEnvironmentStatus

  • UpdateEnvironment

  • UpdateEnvironmentMembership

これらの各 API アクションの詳細については、『AWS Cloud9API リファレンス

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

アクションを実行するためのアクセス許可をユーザーに付与するにはAWS Cloud9リソースの場合、ユーザーが所属する IAM グループにアクセス権限ポリシーをアタッチできます。アタッチすることをお勧めします。AWSに関する管理 (事前定義) ポリシーAWS Cloud9[] を可能な限り実行しますAWS管理ポリシーは、より簡単かつすばやくアタッチできます。また、環境ユーザー、環境への読み取り専用アクセスのみを持つユーザーなど、一般的な使用シナリオやユーザーの種類に対するアクセス許可の事前定義されたセットも含まれています。AWS Cloud9 の AWS 管理ポリシーのリストについては、「AWS用の 管理ポリシーAWSCloud9」を参照してください。

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

IAM ポリシーをアタッチするには (AWSマネージドまたはカスタマーマネージド)を IAM ID に追加するには、IAM ポリシーをアタッチする (コンソール)()IAM ユーザーガイド

API オペレーションのセッション権限

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

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

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

AWS用の 管理ポリシーAWSCloud9

ユーザー、グループ、ロールにアクセス権限を追加するには、自分でポリシーを作成するよりも、AWS 管理ポリシーを使用する方が簡単です。チームに必要なアクセス許可のみを提供する IAM カスタマー管理ポリシーを作成するには、時間と専門知識が必要です。すぐに使用を開始するために、AWS 管理ポリシーを使用できます。これらのポリシーは、一般的なユースケースを対象範囲に含めており、 AWS アカウント で利用できます。AWS 管理ポリシーの詳細については、IAM ユーザーガイドの「AWS 管理ポリシー」を参照してください。

AWS サービスは、AWS 管理ポリシーを維持および更新します。AWS 管理ポリシーのアクセス許可を変更することはできません。サービスでは、新しい機能を利用できるようにするために、AWS 管理ポリシーにアクセス許可が追加されることがあります。このタイプの更新は、ポリシーがアタッチされているすべての ID (ユーザー、グループ、ロール) に影響します。新しい機能が立ち上げられた場合や、新しいオペレーションが使用可能になった場合に、各サービスが AWS 管理ポリシーを更新する可能性が最も高くなります。サービスは AWS 管理ポリシーからアクセス許可を削除しないため、ポリシーの更新によって既存のアクセス許可が破棄されることはありません。

加えて AWS では、複数のサービスにまたがる職務機能のための管理ポリシーもサポートしています。例えば、ReadOnlyAccessAWS管理ポリシーでは、すべての AWS のサービスおよびリソースへの読み取り専用アクセスを許可します。あるサービスで新しい機能を立ち上げる場合、AWS は、追加されたオペレーションとリソースに対し、読み取り専用のアクセス許可を設定します。職務機能ポリシーのリストと説明については、IAM ユーザーガイドAWSジョブ機能の管理ポリシーを参照してください。

AWS管理ポリシー: AWSクラウド9アドミニストレーター

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

このポリシーは、管理管理者権限によるへのアクセスを提供するAWSCloud9.

アクセス権限の詳細

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

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

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

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

  • システムマネージャー — ユーザーが StartSession を呼び出し、セッションマネージャーセッションのインスタンスへの接続を開始するのを許可します。この権限は、Systems Manager を介して EC2 インスタンスと通信する環境を開くユーザーに対して必要です。詳細については、「」を参照してください。進入しない EC2 インスタンスへのアクセスAWSSystems Manager

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:*", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Resource": "*" }, { "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/*" ] } ] }

AWS管理ポリシー: AWScloud9user

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

このポリシーは、ユーザー作成するためのアクセス許可AWS Cloud9開発環境と、所有環境の管理に利用できます。

アクセス権限の詳細

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

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

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

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

  • システムマネージャー — ユーザーが StartSession を呼び出し、セッションマネージャーセッションのインスタンスへの接続を開始するのを許可します。この権限は、Systems Manager を介して EC2 インスタンスと通信する環境を開くユーザーに対して必要です。詳細については、「」を参照してください。進入しない EC2 インスタンスへのアクセスAWSSystems Manager

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:ValidateEnvironmentName", "cloud9:UpdateUserSettings", "cloud9:GetUserSettings", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "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/*" ] } ] }

AWS管理ポリシー: AWScloud9環境メンバー

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

このポリシーは、メンバーシップに参加する機能を提供するAWS Cloud9共有環境。

アクセス権限の詳細

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

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

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

  • システムマネージャー — ユーザーが StartSession を呼び出し、セッションマネージャーセッションのインスタンスへの接続を開始するのを許可します。この権限は、Systems Manager を介して EC2 インスタンスと通信する環境を開くユーザーに対して必要です。詳細については、「」を参照してください。進入しない EC2 インスタンスへのアクセスAWSSystems 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", "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/*" ] } ] }

AWSCloud9 の更新をAWS管理ポリシー

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

変更 説明 日付

AWSCloud9 が変更の追跡を開始しました

AWSCloud9は、AWS管理ポリシー。

2021 年 3 月 15 日

のカスタマー管理ポリシーを作成します。AWS Cloud9

のどれもAWS管理ポリシーがアクセス制御要件を満たしている場合は、独自のカスタマー管理ポリシーを作成してアタッチすることができます。

カスタマー管理ポリシーを作成するには、」IAM ポリシーの作成 (コンソール)()IAM ユーザーガイド

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

サービスは、AWS Cloud9 リソースごとに一連の API オペレーションを定義します。こうした API オペレーションへのアクセス権限を付与するために、AWS Cloud9 は一連のアクションをポリシーに定義します。

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

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

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

  • Resource— ARN を使用して、ポリシーを適用するリソースを識別します。

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

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

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

お客様が管理するポリシーの例

このセクションでは、AWS Cloud9 アクションのアクセス許可を付与するポリシー例を示しています。以下の IAM ポリシーの例では、許可または明示的に拒否するように変更できます。AWS Cloud9アクセスを許可します。

IAM ID にカスタマー管理ポリシーを作成またはアタッチするには、「」を参照してください。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管理ポリシーAWSCloud9AdministratorまたはAWSCloud9UserIAM エンティティにアタッチ済みです。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またはAWSCloud9UserIAM エンティティにアタッチ済みです。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またはAWSCloud9UserIAM エンティティにアタッチ済みです。AWS管理ポリシーは、前述の IAM ポリシーステートメントの動作を上書きします。これは、これらの AWS 管理ポリシーが許可度が高いためです。

SSH 環境のみを作成する

次の IAM エンティティにアタッチされた IAM ポリシーステートメントの例では、そのエンティティがAWS Cloud9アカウントの SSH 開発環境。ただし、エンティティはAWS Cloud9EC2 開発環境。

{ "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 ポリシーステートメントの例では、そのエンティティが指定した 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 エンティティにアタッチされた 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 ポリシーステートメントの例では、そのエンティティが指定した 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 ポリシーステートメントの例では、そのエンティティが指定された ARN を持つ環境を削除することを明示的に禁止します。

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

AWS Cloud9 のアクセス許可に関するリファレンス

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

AWS Cloud9 ポリシーで AWS 全体の条件キーを使用して条件を表現できます。リストについては、IAM JSON ポリシーエレメント: 条件()IAM ユーザーガイド

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

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

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

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

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

前述のアクセス許可は、既に含まれています。AWS管理ポリシーAWSCloud9Administrator。また、前述のアクセス許可は、AWS 管理ポリシー AWSCloud9User の同等のアクセス許可に比べてより許容的です。

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

AWS Cloud9 オペレーション 必要なアクセス権限 (API アクション) リソース

CreateEnvironmentEC2

cloud9:CreateEnvironmentEC2

作成するために必要です。AWS Cloud9EC2 開発環境。

*

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

AWS管理の一時認証情報

あなただけのアクションのリストを探しているならAWS管理された一時的な認証情報は、によってサポートされるアクションAWS管理の一時認証情報

以下のためにAWS Cloud9EC2 開発環境AWS Cloud9一時的なAWS環境内で利用できる認証情報にアクセスできるようにします。これらはと呼ばれますAWS管理の一時認証情報。これには次の利点があります。

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

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

  • AWS Cloud9 は一時的な認証情報を継続的に更新するため、単一の認証情報のセットは限られた時間しか使用できません。これは AWS セキュリティのベストプラクティスです。詳細については、「の作成および更新AWS管理の一時認証情報」を参照してください。

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

重要

現在、環境の EC2 インスタンスがプライベートサブネットの場合、AWS管理された一時的な認証情報を使用して、EC2 環境がAWSサービスを代理してAWSエンティティ(IAM ユーザーなど)。

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

その方法は次のとおりですAWS管理された一時的な認証情報は、EC2 環境がAWSサービスを代理してAWSエンティティ (IAM ユーザーなど):

  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 Cloud9IDE では、メニューバーで []AWS Cloud9、設定項目

  2. リポジトリの []Preferences (設定)タブのナビゲーションペインで、[]、[] の順に選択します。AWS設定、認証情報

  3. を使用するAWS管理の一時認証情報有効にするAWS管理の一時認証情報のオンとオフを切り替えます。

オフにするとAWS管理された一時的な認証情報。デフォルトでは、環境はAWSサービスに関係なく、AWSリクエストを実行するエンティティ。オンにできない、またはオンにしたくない場合AWSは環境の一時認証情報を管理しますが、AWSサービスの詳細については、以下の選択肢を考慮してください。

前述の方法は、によって許可 (または拒否) されるすべてのアクセス許可より優先されます。AWSEC2 環境での一時的な認証情報を管理します。

によってサポートされるアクションAWS管理の一時認証情報

以下のためにAWS Cloud9EC2 開発環境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 環境が必要なアクションまたはリソースをサポートしていません。またはAWSEC2 環境の管理一時的な認証情報がオフになっていて再びオンにすることができない場合は、次の代替手段を検討してください。

前述の方法は、によって許可 (または拒否) されるすべてのアクセス許可より優先されます。AWSEC2 環境での一時的な認証情報を管理します。

の作成および更新AWS管理の一時認証情報

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

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

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

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

  • にリストされているタイムスタンプが~/.aws/credentialsファイルに到達します。

  • [AWS managed temporary credentials (AWS 管理の一時認証情報)] 設定がオフに設定されている場合、それをオンに戻すたび (この設定を表示または変更するには、[] メニューから [] を選択します。AWS Cloud9、設定項目を IDE のメニューバーに表示できます。 リポジトリの []Preferences (設定)タブのナビゲーションペインで、[]、[] の順に選択します。AWS設定、認証情報。)

  • セキュリティのために、AWS管理された一時的な認証情報は 15 分後に自動的に期限切れになります。認証情報を更新するには、環境所有者がAWS Cloud9環境を IDE を介して実行します。環境所有者のロールの詳細については、「」を参照してください。へのアクセスのコントロールAWS管理の一時認証情報

へのアクセスのコントロールAWS管理の一時認証情報

とのコラボレーターAWS管理の一時認証情報は、AWS Cloud9他のと対話するAWSのサービス。信頼できる共同作業者だけがAWS管理一時的な認証情報を管理している場合、環境所有者以外のユーザーが新しいメンバーを追加した場合、これらの認証情報は無効になります。(クレデンシャルは、~/.aws/credentialsファイル。

重要

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

環境所有者のみが再度有効にすることができます。AWSが一時的な認証情報を管理し、他のメンバーと共有できるようにします。環境所有者が IDE を開くと、ダイアログボックスでAWS管理の一時認証情報は無効です。環境所有者は、すべてのメンバーの資格情報を再度有効にするか、すべてのメンバーの資格情報を無効にするかを指定できます。

警告

ベストセキュリティプラクティスに従うために、環境に最後に追加されたユーザーの ID が不確かな場合は、管理された一時的な認証情報を無効にしておきます。読み取り/書き込み権限を持つメンバーの一覧は、Collaborate (コラボレーション)ウィンドウ。