

# AWS CloudShell を使用した AWS Identity and Access Management との連携
<a name="using-aws-with-cloudshell"></a>

AWS CloudShell はブラウザベースの事前に認証されたシェルで、AWS Management Console から直接起動できます。任意のシェル (Bash、PowerShell、Z シェルなど) を使用して、AWS サービス (AWS Identity および Access Management を含む) に対してAWS CLIコマンドを実行できます。この手順は、コマンドラインツールのダウンロードもインストールも不要です。

[AWS Management Console から AWS CloudShell を起動](https://docs.aws.amazon.com/cloudshell/latest/userguide/working-with-cloudshell.html#launch-options)すると、コンソールへのサインインに使用した AWS 認証情報は、新しいシェルセッションで自動的に利用できます。AWS CloudShell ユーザーのこの事前認証により、AWS CLI バージョン 2 (シェルのコンピューティング環境にプリインストール済み) を使用している IAM など AWS のサービスとやり取りするときに、認証情報の設定をスキップできます。

## AWS CloudShell の IAM アクセス許可の取得
<a name="cloudshell-permissions"></a>

AWS Identity and Access Management 管理者によって提供されるアクセス管理リソースを使用して、管理者は IAM ユーザーが AWS CloudShell にアクセスして環境の機能を使用できるアクセス許可を付与します。

管理者がユーザーにアクセス権を付与する最も簡単な方法は、AWS マネージドポリシーを介した方法です。[AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)は、AWS が作成および管理するスタンドアロンポリシーです。CloudShell 用に次の AWS マネージドポリシーを IAM アイデンティティにアタッチできます。
+ `AWSCloudShellFullAccess`: すべての機能へのフルアクセス権のある AWS CloudShell を使用するためのアクセス許可を付与します。

IAM ユーザーが AWS CloudShell を使用して実行できるアクションの範囲を制限する場合、テンプレートとして `AWSCloudShellFullAccess` マネージドポリシーを使用するカスタムポリシーを作成できます。CloudShell でユーザーが使用できるアクションを制限する方法の詳細については、「*AWS CloudShell ユーザーガイド*」の「[IAM ポリシーを使用して AWS CloudShell へのアクセスと使用を管理する](https://docs.aws.amazon.com/cloudshell/latest/userguide/sec-auth-with-identities.html)」を参照してください。

## IAM の操作
<a name="cshell-examples"></a>

AWS Management Console から AWS CloudShell を起動すると、コマンドラインインターフェイスを使用して IAM との通信をすぐに開始できます。

**注記**  
AWS CloudShell で AWS CLI を使用する場合、追加のリソースをダウンロードまたはインストールする必要はありません。さらに、ユーザーはシェル内で既に認証されているので、呼び出しを行う前に認証情報を設定する必要はありません。

## AWS CloudShell を使用して IAM グループを作成し、IAM ユーザーをグループに追加します。


次の例では、CloudShell を使用して IAM グループを作成し、IAM ユーザーをグループに追加して、コマンドが成功したことを確認します。

1. AWS Management Console から、ナビゲーションバーに表示される次のオプションを選択することで CloudShell を起動できます。
   + CloudShell アイコンを選択します。
   + 検索ボックスに「cloudshell」を入力し始めてから [CloudShell] オプションを選択します。

1. IAM グループを作成するには、CloudShell コマンドラインで次のコマンドを入力します。この例では、グループに「east\_coast」という名前を付けました。

   ```
   aws iam create-group --group-name east_coast
   ```

   コールが成功すると、コマンドラインに次の出力に似たサービスからのレスポンスが表示されます。

   ```
           {
              "Group": {
                  "Path": "/",
                  "GroupName": "east_coast",
                  "GroupId": "AGPAYBDBW4JBY3EXAMPLE",
                  "Arn": "arn:aws:iam::111122223333:group/east_coast",
                  "CreateDate": "2023-09-11T21:02:21+00:00"
               }
           }
   ```

1. 作成したグループにユーザーを追加するには、以下のコマンドを使用してグループ名とユーザー名を指定します。この例では、グループに「*east\_coast*」、ユーザーに「*john*」という名前を付けています。

   ```
   aws iam add-user-to-group --group-name east_coast --user-name john
   ```

1. ユーザーがグループに属していることを確認するには、以下のコマンドを使用してグループ名を指定します。この例では、引き続き east\_coast というグループを使用します。

   ```
   aws iam get-group --group-name east_coast
   ```

   コールが成功すると、コマンドラインに次の出力に似たサービスからのレスポンスが表示されます。

   ```
          {
            "Users": [
              {
                  "Path": "/",
                  "UserName": "john",
                  "UserId": "AIDAYBDBW4JBXGEXAMPLE",
                  "Arn": "arn:aws:iam::552108220995:user/john",
                  "CreateDate": "2023-09-11T20:43:14+00:00",
                  "PasswordLastUsed": "2023-09-11T20:59:14+00:00"
              }
            ],
            "Group": {
                  "Path": "/",
                  "GroupName": "east_coast",
                  "GroupId": "AGPAYBDBW4JBY3EXAMPLE",
                  "Arn": "arn:aws:iam::111122223333:group/east_coast",
                  "CreateDate": "2023-09-11T21:02:21+00:00"
               }
           }
   ```