AWS Cloud9 での Identity and Access Management - AWS Cloud9

AWS Cloud9 での Identity and Access Management

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全にコントロールするために役立つ Amazon Web Services (AWS) のサービスです。IAM 管理者は、誰を認証 (サインイン) し、誰に AWS のサービスのリソースの使用を許可する (アクセス許可を付与する) かを制御します。IAM は、AWS のサービスで追加料金は発生しません。

AWS Cloud9 を使用して AWS にアクセスするには、AWS アカウントと AWS 認証情報が必要です。AWS アカウントのセキュリティを高めるため、アクセス認証情報を提供するには、AWS アカウント認証情報ではなく、IAM ユーザーの利用をお勧めします。

IAM の使用の詳細については、「AWS Identity and Access Management」を参照してください。

IAM ユーザーの概要と、IAM ユーザーがアカウントのセキュリティを高める上で重要である理由については、Amazon Web Services 全般リファレンスの「AWS セキュリティ認証情報」を参照してください。

AWS Cloud9 は、サポートしている特定の Amazon Web Services (AWS) のサービスを介して、責任共有モデルに従います。AWS サービスのセキュリティ情報については、「AWS のサービスのセキュリティに関するドキュメントページ」と、「AWS コンプライアンスプログラムごとのコンプライアンスの取り組みのAWS 対象となるサービス」を参照してください。

対象者

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

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

サービス管理者 - 社内で AWS Cloud9 リソースを担当している場合は通常、AWS Cloud9 へのフルアクセスがあります。従業員がどの AWS Cloud9 特徴とリソースにアクセスする必要があるかを決定するのは管理者のジョブです。その後、IAM 管理者にリクエストを送信して、サービスユーザーの許可を変更する必要があります。このページの情報を確認して、IAM の基本概念を理解してください。お客様の会社で AWS Cloud9 で IAM を利用する方法の詳細については、AWS Cloud9 と IAM の連携について をご参照ください。

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

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

AWS には、次のタイプのアイデンティティでアクセスできます。

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

AWS にサインアップするときには、AWS アカウントに関連付けられた E メールアドレスとパスワードを提供します。これらは ルート認証情報であり、これらの情報を使用すると、すべての AWS リソースへの完全なアクセスが可能になります。

重要

AWS のセキュリティ上のベストプラクティスとして、IAM 管理者ユーザーを持つ IAM 管理者グループを作成するためのみにルート認証情報を使用することをお勧めします。これは、ユーザーに AWS アカウントへの完全な許可を付与するグループです。その後、この管理者ユーザーを使用して、制限された許可を持つ他の IAM ユーザーとロールを作成できます。詳細については、IAM ユーザーガイドの「個別の IAM ユーザーの作成」および「最初の IAM 管理者ユーザーおよびグループの作成」を参照してください。

IAM ユーザー

IAM ユーザーとは、簡単に述べると、特定のカスタム許可 (AWS Cloud9 開発環境を作成する許可など) を持つ AWS アカウント内のアイデンティティです。IAM ユーザー名とパスワードを使用して、AWS Cloud9 コンソール、AWS Management Console、AWS ディスカッションフォーラム、AWS Support センターなどのセキュリティで保護された AWS ウェブページにサインインできます。

ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを作成することもできます。これらのキーを使用すると、AWS SDK のいずれか、AWS Command Line Interface (AWS CLI)、または aws-shell を介して、プログラムで AWS のサービスにアクセスできます。AWS SDK、AWS CLI、および aws-shell では、これらのアクセスキーを使用してリクエストが暗号で署名されます。これらのツールを使用しない場合は、リクエストを自分で署名する必要があります。AWS Cloud9 では、署名バージョン 4 がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、Amazon Web Services 全般リファレンスの「署名バージョン 4 署名プロセス」を参照してください。

[IAM role] (IAM ロール)

IAM ロールは、詳細の許可が下りたアカウントで作成できる他の IAM アイデンティティです。これは IAM ユーザーに似ていますが、詳細のユーザーに関連付けられていません。IAM ロールでは、AWS サービスおよびリソースにアクセスするために使用できる一時的なアクセスキーを取得することができます。IAM ロールと一時的な認証情報は、次の状況で役立ちます。

AWS サービスへのアクセス

アカウントの IAM ロールを使用して、アカウントのリソースにアクセスするための許可を AWS サービスに付与できます。たとえば、AWS Lambda が自分に代わって Amazon S3 バケットにアクセスし、バケットに保存されたデータを Amazon Redshift データウェアハウス にロードすることを許可するロールを作成できます。詳細については、IAM ユーザーガイドの「AWS のサービスへの許可を委任するロールの作成」を参照してください。

Amazon EC2 で実行中のアプリケーション

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

注記

環境に接続する Amazon EC2 インスタンスにインスタンスプロファイルを添付する代わりに、AWS Cloud9 では、ユーザーに代わって EC2環境で一時認証情報を自動的にセットアップして管理できます。詳細については、「AWS マネージド一時認証情報」を参照してください。

フェデレーティッドユーザーアクセス

IAM ユーザーを作成する代わりに、AWS Directory Service、エンタープライズユーザーディレクトリ、またはウェブアイデンティティプロバイダーから取得した既存のユーザーアイデンティティを使用できます。このようなユーザーはフェデレーティッドユーザーと呼ばれます。アイデンティティプロバイダーを介してアクセスがリクエストされると、AWS がフェデレーティッドユーザーにロールを割り当てます。詳細については、IAM ユーザーガイドの「フェデレーティッドユーザーとロール」を参照してください。

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

有効な認証情報があればリクエストを認証できますが、許可が付与されている場合を除き、AWS Cloud9 リソースの作成やアクセスはできません。たとえば、AWS Cloud9 開発環境を作成、共有、または削除するための許可が必要です。

すべての AWS リソースは AWS アカウントによって所有され、リソースの作成またはアクセスは、許可のポリシーによって管理されます。アカウント管理者は、IAM アイデンティティ (つまり、ユーザー、グループ、ロール) に許可ポリシーを添付できます。

許可を付与するときは、許可を取得するユーザー、アクセスできるリソース、およびそれらのリソースに対して実行できるアクションを決定します。

AWS Cloud9 と IAM の連携について

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:*

たとえば、以下の要領で 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 アカウントは、誰がリソースを作成したかにかかわらず、アカウントで作成されたリソースを所有します。

例:

  • AWS アカウントのルートアカウントの認証情報を使用して AWS Cloud9 開発環境を作成する場合 (これは可能ですが、AWS セキュリティのベストプラクティスとしてはお勧めしません)、AWS アカウントは環境の所有者となります。

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

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

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

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

注記

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

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

以下の各 API アクションでは、これらの API アクションを呼び出したい IAM アイデンティティに添付する必要があるのは IAM ポリシーのみです。

  • CreateEnvironmentEC2

  • DescribeEnvironments

次の API アクションではリソースベースのポリシーが必要です。IAM ポリシーは必須ではありませんが、これらの API アクションの呼び出氏を望む 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 Cloud9 に対するAWS マネージドポリシーのリストについては、「AWS Cloud9 用 AWS マネージドポリシー」を参照してください。

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

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

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

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

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

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

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

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

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

さらに、AWS では、複数のサービスにまたがるジョブ機能のためのマネージドポリシーもサポートしています。例えば、ViewOnlyAccess AWS マネージドポリシーでは、多くの AWS のサービス およびリソースへの読み取り専用アクセスを許可します。あるサービスで新しい機能を立ち上げる場合は、AWS は、追加された演算とリソースに対し、読み取り専用の許可を追加します。ジョブ機能ポリシーのリストと説明については、IAM ユーザーガイドの「AWSジョブ関数のマネージドポリシー」を参照してください。

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

IAM アイデンティティに AWSCloud9Administrator ポリシーを添付できます。

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

許可の詳細

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

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

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

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

  • 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" ], "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

IAM アイデンティティに AWSCloud9User ポリシーを添付できます。

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

許可の詳細

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

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

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

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

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

{ "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マネージドポリシー: AWSCloud9EnvironmentMember

IAM アイデンティティに AWSCloud9EnvironmentMember ポリシーを添付できます。

このポリシーは、メンバーシップに AWS Cloud9 共有環境に参加する能力を提供する許可を付与します。

許可の詳細

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

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

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

  • 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", "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 リソースを操作できます。

許可の詳細

AWSCloud9ServiceRolePolicy によって、AWSServiceRoleForAWSCloud9 に必要な許可が付与されるため、開発環境の作成と実行に必要な AWS サービス (Amazon EC2 と AWS CloudFormation) を 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 Cloud9 が AWS マネージドポリシーを更新

このサービスがこれらの変更の追跡を開始以来の AWS Cloud9 に対する AWS マネージドポリシーの更新に関する詳細を表示します。このページの変更に関する自動通知については、AWS Cloud9 ドキュメントの履歴ページの RSS フィードを購読してください。

変更 説明 日付

AWSCloud9ServiceRolePolicy の更新

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

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 – 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 (AWS Cloud9)、および架空の 123456789012 開発環境 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 または AWSCloud9User が IAM エンティティにすでに添付されている場合、その AWS マネージドポリシーによって、前述の IIAM ポリシーステートメントの動作が上書きされます。これは、これらの 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マネージドポリシーによって、前述の IIAM ポリシーステートメントの動作が上書きされます。これは、これらの 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 SSH 開発環境に関する情報を変更するのを許可します。

{ "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 の許可に関するリファレンス

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

アクションは、ポリシーの Action フィールドで指定します。アクションを指定するには、API オペレーション名 ("Action": "cloud9:DescribeEnvironments"など) の前に cloud9: プレフィックスを使用します。単一のステートメントに複数のアクションを指定するには、コンマで区切ります (例えば、"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 オペレーションおよびアクションに必要な許可

注記

アクセスコントロールをセットアップし、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 Cloud9IDE とユーザーの環境間の接続を許可する認証トークンを作成します。

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) の操作

ValidateEnvironmentName

cloud9:ValidateEnvironmentName

AWS Cloud9 開発環境作成プロセス中に環境名を検証します。

EC2 環境を作成する

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

AWS マネージド一時認証情報がサポートするアクションのリストを探しているだけであれば、AWS マネージド一時認証情報によってサポートされるアクション に進みます。

AWS Cloud9 EC2 開発環境に対しては、AWS Cloud9 は一時的 AWS アクセス認証情報を環境で利用できるようにします。これらは AWS マネージド一時認証情報と呼ばれます。これには次の利点があります。

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

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

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

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

重要

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

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

こちらに示すのが、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 オペレーション UpdateEnvironment を呼び出して、値を managedCredentialsAction パラメータに割り当てることで、AWS マネージド一時認証情報のオン/オフを切り替えることもできます。この API オペレーションは、AWS SDK や AWS CLI など、標準 AWS ツールを使用してリクエストできます。

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 (コラボレーション)]ウィンドウで読み取り/書き込み許可がおりたメンバーの一覧をチェックできます。