AWS Cloud9 の追加のセットアップオプション (チームとエンタープライズ)
このトピックでは、チームセットアップまたはエンタープライズセットアップのセットアップステップを完了していることを前提としています。
チームセットアップまたはエンタープライズセットアップでは、グループを作成し、これらのグループに AWS Cloud9 へのアクセス許可を直接追加して、これらのグループのユーザーが AWS Cloud9 にアクセスできるようにしました。このトピックでは、さらにアクセス許可を追加して、それらのグループのユーザーが作成できる環境の種類を制限します。これにより、AWS アカウントおよび組織の AWS Cloud9 関連のコストを管理できます。
これらのアクセス許可を追加するには、強制したい AWS アクセス許可を定義する独自の一連のポリシーを作成します (このようなポリシーを カスタマーマネージドポリシーと呼びます。) 次に、これらのカスタマーマネージドポリシーを、ユーザーが含まれるグループに添付します。(シナリオによっては、これらのグループに既に添付されている既存の AWS マネージドポリシーをデタッチする必要もあります)。これを設定するには、このトピックの手順に従います。
次の手順では、AWS Cloud9 ユーザーについてのみポリシーのアタッチおよびデタッチの手順を説明しています。以下の手順では、既存の AWS Cloud9 ユーザーグループと AWS Cloud9 管理者グループが別個にあり、AWS Cloud9 管理者グループのユーザー数は限定されているものとします。この AWS セキュリティのベストプラクティスによって、AWS リソースへのアクセスの問題の管理、追跡、およびトラブルシューティングがやりやすくなります。
ステップ 1: カスタマーマネージドポリシーを作成する
カスタマーマネージドポリシーは、「AWS Management Console」または「AWS コマンドラインインターフェイス (AWS CLI)」を使って作成できます。
このステップでは、IAM グループ専用カスタマーマネージドポリシーを作成する手順を説明します。AWS Single Sign-On (SSO)でグループのカスタム許可セットを作成するには、このステップをスキップして、代わりに、AWS Single Sign-On ユーザーガイドの「許可セットを作成する」の指示にしたがってください。このトピックでは、カスタムアクセス許可セットを作成する手順に従います。関連するカスタムアクセス許可ポリシーは、このトピックの後半にある AWS Cloud9 を使用したチームのカスタマーマネージドポリシーの例を参照してください。
コンソールを使用してカスタマーマネージドポリシーを作成する
-
AWS Management Console にまだサインインしていない場合は、サインインします。
AWS アカウントの 管理者ユーザーの認証情報を使用してサインインすることをお勧めします。これを実行できない場合は、AWS アカウントの管理者に確認してください。
-
IAM コンソールを開きます。これを行うには、コンソールのナビゲーションバーで、[サービス]を選択します。次に、[IAM]を選択します。
-
サービスのナビゲーションペインで、[ポリシー] を選択します。
-
[Create policy] を選択します。
-
[JSON] タブに、提案されたカスタマーマネージドポリシーの例のいずれかを貼り付けます。
注記 独自のカスタマーマネージドポリシーを作成することもできます。詳細については、IAM ユーザーガイドのIAM JSON ポリシーリファレンスとAWSサービスの「ドキュメント
」を参照してください。 -
[ポリシーの確認] を選択します。
-
[ポリシーの確認] ページで、ポリシーの [名前] と [説明] (省略可能) を入力して、[ポリシーの作成] を選択します。
このステップを追加のカスタマーマネージドポリシーを作成するたびに繰り返し、「コンソールを使用してカスタマーマネージドポリシーをグループに追加する」に進みます。
AWS CLI を使用してカスタマーマネージドポリシーを作成する
-
AWS CLI を実行するコンピュータで、ポリシーを記述するファイル (例:
policy.json
) を作成します。別のファイル名を使用してファイルを作成する場合は、この手順全体でそれを置き換えてください。
-
policy.json
ファイルに、提案されたカスタマーマネージドポリシーの例のいずれかを貼り付けます。注記 独自のカスタマーマネージドポリシーを作成することもできます。詳細については、IAM ユーザーガイドのIAM JSON ポリシーリファレンスとAWSサービスの「ドキュメント
」を参照してください。 -
ターミナルまたはコマンドプロンプトから、
policy.json
ファイルが格納されているディレクトリに移動します。 -
ポリシーの名前および
create-policy
ファイルを指定して、IAMpolicy.json
コマンドを実行します。aws iam create-policy --policy-document file://policy.json --policy-name MyPolicy
前述のコマンドでは、
MyPolicy
をポリシーの名前に置き換えます。
「AWS CLI を使用してカスタマーマネージドポリシーをグループに追加する」に進みます。
ステップ 2: カスタマーマネージドポリシーをグループに追加する
カスタマーマネージドポリシーをグループに追加するには、「AWS Management Console」または「AWSコマンドラインインターフェイス (AWS CLI)」を使用します。
このステップでは、 グループのみにカスタマーマネージドポリシーを追加する手順を説明します。AWS Single Sign-On (SSO)で、グループにカスタム許可セットを追加するには、このステップをスキップして、代わりにAWS Single Sign-On ユーザーガイドのユーザーアクセスを割り当てるにある指示に従います。
コンソールを使用してカスタマーマネージドポリシーをグループに追加する
-
前の手順で開いた IAM コンソールを使って、サービスのナビゲーションペイン内で、[グループ] を選択します。
-
グループの名前を選択します。
-
[許可] タブの[マネージドポリシー]には、[ポリシーのアタッチ]を選択します。
-
ポリシー名のリストで、グループに添付したい各カスタマーマネージドポリシーの横にあるボックスを選択します。(特定のポリシー名がリストに表示されない場合は、[フィルタ] ボックスにポリシー名を入力して表示させます。)
-
[Attach Policy] (ポリシーのアタッチ) を選択します。
AWS CLI を使用してカスタマーマネージドポリシーをグループに追加する
AWS マネージド一時認証情報を使用している場合は、AWS Cloud9 IDE 内のターミナルセッションを使用して、このセクションのコマンドの一部または全部を実行することはできません。AWS のセキュリティに関するベストプラクティスに対応するため、AWS マネージド一時認証情報は一部のコマンドを実行する許可を与えません。代わりに、AWS Command Line Interface (AWS CLI) の別のインストールからこれらのコマンドを実行できます。
ポリシーのグループの名前と Amazon リソースネーム (ARN) を指定して、IAM attach-group-policy
コマンドを実行します。
aws iam attach-group-policy --group-name MyGroup --policy-arn arn:aws:iam::123456789012:policy/MyPolicy
前述のコマンドでは、MyGroup
をグループの名前に置き換えます。123456789012
を AWS アカウント ID で置き換え、MyPolicy
をカスタマーマネージドポリシーの名前で置き換えます。
AWS Cloud9 を使用したチームのカスタマーマネージドポリシーの例
以下に、グループのユーザーが AWS アカウント内に作成できる種類の環境を制限するために使用できるポリシーの例をいくつか示します。
グループ内のユーザーが環境を作成できないようにする
次のカスタマーマネージドポリシーを AWS Cloud9 ユーザーグループに添付すると、各ユーザーは AWS アカウントで環境を作成できません。これは、 AWS Cloud9 ユーザーグループのユーザーではなく、AWS アカウントの IAM 管理者ユーザーに環境の作成管理を希望する場合に便利です。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloud9:CreateEnvironmentEC2", "cloud9:CreateEnvironmentSSH" ], "Resource": "*" } ] }
前述のカスタマーマネージドポリシーは、AWS Cloud9 ユーザーグループに添付済みの AWSCloud9User
マネージドポリシーにおいて "Resource": "*"
に関する "Action": "cloud9:CreateEnvironmentEC2"
と"cloud9:CreateEnvironmentSSH"
の "Effect":
"Allow"
を明示的に上書きするのでご注意ください。
グループ内のユーザーが EC2 環境を作成できないようにする
次のカスタマーマネージドポリシーを AWS Cloud9 ユーザーグループに添付すると、各ユーザーは AWS アカウントで EC2 環境を作成できません。これは、AWS Cloud9 ユーザーグループのユーザーではなく、 AWS アカウントの IAM 管理者によるEC2 環境作成の管理を希望するのであれば、便利です。これは、そのグループのユーザーが SSH 環境を作成できないようにするポリシーが既に添付されていないことを前提としています。添付されていると、それらのユーザーは環境をまったく作成できなくなります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*" } ] }
前述のカスタマーマネージドポリシーは、AWS Cloud9 ユーザーグループに添付済みの AWSCloud9User
マネージドポリシーにおいて "Resource": "*"
に関する "Action": "cloud9:CreateEnvironmentEC2"
の "Effect":
"Allow"
を明示的に上書きするのでご注意ください。
グループ内のユーザーに特定の Amazon EC2 インスタンスタイプでのみ EC2 環境を作成する許可を与える
次のカスタマーマネージドポリシーを AWS Cloud9 ユーザーグループに添付すると、このユーザーには AWS アカウントで t2
でスタートするインスタンスタイプのみを使用する EC2 環境を作成できます。このポリシーは、そのグループのユーザーが EC2 環境を作成できないようにするポリシーもまだ添付されていないことを前提としています。添付されていると、それらのユーザーは EC2 環境をまったく作成できなくなります。
次のポリシーの "t2.*"
を別のインスタンスクラス (例: "m4.*"
) に置き換えることができます。または、複数のインスタンスクラスまたはインスタンスタイプに制限できます (例: [ "t2.*", "m4.*" ]
、[
"t2.micro", "m4.large" ]
など)。
AWS Cloud9 ユーザーグループの場合は、グループから AWSCloud9User
マネージドポリシーをデタッチしてから、次のカスタマーマネージドポリシーを代わりに追加します。(AWSCloud9User
マネージドポリシーをデタッチしないと、次のカスタマーマネージドポリシーは効果がありません。)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentSSH", "cloud9:ValidateEnvironmentName", "cloud9:GetUserPublicKey", "cloud9:UpdateUserSettings", "cloud9:GetUserSettings", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Effect": "Allow", "Action": "cloud9:CreateEnvironmentEC2", "Resource": "*", "Condition": { "StringLike": { "cloud9:InstanceType": "t2.*" } } }, { "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" } } } ] }
前述のカスタマーマネージドポリシーによって、そのユーザーの環境の作成も許可されることに注意してください。これらのユーザーが SSH 環境を作成できないようにするには、前述のカスタマーマネージドポリシーから "cloud9:CreateEnvironmentSSH",
を削除します。
グループ内のユーザーが AWS リージョン1つにつき、EC2 環境を1つだけ作成する許可を与えます
次のカスタマーマネージドポリシーを AWS Cloud9 ユーザーグループに添付すると、各ユーザーは AWS Cloud9 が利用できる AWS リージョン 1 つにつき、最大 1 つの EC2 環境を作成できます。これは、環境の名前をその AWS リージョン内で 1 つの特定の名前に制限することで行われます (この例では my-demo-environment
)。
AWS Cloud9 では、環境の作成を特定の AWS リージョンに制限することは有効にできません また、作成できる環境の全体数を制限することも有効にはできません (公開された サービスの制限を除く)。
AWS Cloud9 ユーザーグループの場合は、グループから AWSCloud9User
マネージドポリシーをデタッチしてから、代わりに次のカスタマーマネージドポリシーを追加します。(AWSCloud9User
マネージドポリシーをデタッチしないと、次のカスタマーマネージドポリシーは効果がありません。)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentSSH", "cloud9:ValidateEnvironmentName", "cloud9:GetUserPublicKey", "cloud9:UpdateUserSettings", "cloud9:GetUserSettings", "iam:GetUser", "iam:ListUsers", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloud9:CreateEnvironmentEC2" ], "Resource": "*", "Condition": { "StringEquals": { "cloud9:EnvironmentName": "my-demo-environment" } } }, { "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" } } } ] }
前述のカスタマーマネージドポリシーによって、そのユーザーの SSH 環境の作成が許可されることに注意してください。これらのユーザーが SSH 環境を作成できないようにするには、前述のカスタマーマネージドポリシーから "cloud9:CreateEnvironmentSSH",
を削除します。
その他の例については、「」を参照してください。お客様のマネージドポリシーの例
次のステップ
Task | 次のトピックを参照 |
---|---|
AWS Cloud9開発環境を作成し、AWS Cloud9IDE を使用して新しい環境でコードを操作します。 |
|
AWS Cloud9 IDE を使用する方法について説明します。 |
|
リアルタイムで次のチャットサポートを使用し、他のユーザーを招待して一緒に新しい環境を使用します。 |