

# AWS CLI を使用した IAM アイデンティティセンター認証の設定
<a name="cli-configure-sso"></a>

このトピックでは、AWS IAM アイデンティティセンター (IAM アイデンティティセンター) を使用して AWS CLI を設定し、AWS CLI コマンドを実行するための認証情報を取得する方法について説明します。IAM アイデンティティセンターユーザーを認証し、AWS CLI コマンドを実行するための認証情報を `config` ファイルを通じて取得する主な方法には、次の 2 つがあります。
+ **(推奨)** SSO トークンプロバイダー設定。
+ 更新不可のレガシー設定。

アカウント ID とロールを使用しないベアラー認証の使用方法については、「*Amazon CodeCatalyst ユーザーガイド*」の「[CodeCatalyst で AWS CLI を使用するためのセットアップ](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html)」を参照してください。

**注記**  
AWS CLI コマンドで IAM アイデンティティセンターを使用するガイド付きプロセスについては、「[チュートリアル: IAM アイデンティティセンターを使用して AWS CLI で Amazon S3 コマンドを実行する](cli-configure-sso-tutorial.md)」を参照してください。

**トピック**
+ [前提条件](#cli-configure-sso-prereqs)
+ [`aws configure sso` ウィザードでプロファイルを設定する](#cli-configure-sso-configure)
+ [`aws configure sso-session` ウィザードで `sso-session` セクションのみを設定する](#cli-configure-sso-session)
+ [`config` ファイルを使用した手動設定](#cli-configure-sso-manual)
+ [IAM アイデンティティセンターのセッションにサインインする](#cli-configure-sso-login)
+ [IAM アイデンティティセンターのプロファイルでコマンドを実行する](#cli-configure-sso-use)
+ [IAM アイデンティティセンターのセッションからサインアウトする](#cli-configure-sso-logout)
+ [トラブルシューティング](#cli-configure-sso-tshoot)
+ [関連リソース](#cli-configure-sso-resources)

## 前提条件
<a name="cli-configure-sso-prereqs"></a>
+ AWS CLI をインストールします。詳細については、「[AWS CLI の最新バージョンのインストールまたは更新](getting-started-install.md)」を参照してください。
+ 最初に IAM Identity Center 内で SSO 認証へのアクセス権が必要です。AWS 認証情報にアクセスするには、次のいずれかの方法を選択します。

### IAM Identity Center 経由のアクセスを確立していません
<a name="idc-access"></a>

「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[開始方法](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)」の手順に従います。このプロセスでは、IAM Identity Center をアクティブ化して、管理者ユーザーを作成し、適切な最小特権のアクセス許可セットを追加します。

**注記**  
最小特権権のアクセス許可を適用するアクセス許可セットを作成します。雇用主がこの目的のためにカスタムアクセス許可セットを作成していない限り、定義済みの `PowerUserAccess` アクセス許可セットを使用することをお勧めします。

ポータルを終了し、AWS アカウントにもう一度サインインすると、、プログラムによるアクセスの詳細、および `Administrator` または `PowerUserAccess` のオプションが表示されます。SDK を使用する場合は `PowerUserAccess` を選択します。

### 雇用主が管理するフェデレーション ID プロバイダー (Azure AD や Okta など) を通じて AWS へのアクセス権を既に持っています。
<a name="federated-access"></a>

ID プロバイダーのポータルから AWS にサインインします。クラウド管理者から `PowerUserAccess` (開発者) アクセス許可を付与されている場合は、アクセス権のある AWS アカウント とアクセス許可セットが表示されます。アクセス許可セットの名前の横に、そのアクセス許可セットを使用してアカウントに手動またはプログラムでアクセスするオプションが表示されます。

カスタム実装では、アクセス許可セット名が異なるなど、エクスペリエンスが異なる場合があります。どのアクセス許可セットを使用すればよいかわからない場合は、IT チームにお問い合わせください。

### 雇用主が管理する AWS アクセスポータルを通じて AWS へのアクセス権を既に持っています。
<a name="accessportal-access"></a>

AWS アクセスポータルを通じて AWS にサインインします。クラウド管理者から `PowerUserAccess` (開発者) アクセス許可を付与されている場合は、アクセス権のある AWS アカウント とアクセス許可セットが表示されます。アクセス許可セットの名前の横に、そのアクセス許可セットを使用してアカウントに手動またはプログラムでアクセスするオプションが表示されます。

### 雇用主が管理するフェデレーションカスタム ID プロバイダーを通じて AWS へのアクセス権を既に持っています。
<a name="customfederated-access"></a>

サポートについては、IT チームにお問い合わせください。

IAM アイデンティティセンターへのアクセスを取得したら、次を実行して IAM アイデンティティセンターの情報を収集します。

1. `aws configure sso` の実行に必要な `SSO Start URL` と `SSO Region` の値を収集する

   1. AWS アクセスポータルで、開発に使用するアクセス許可セットを選択し、**[アクセスキー]** リンクを選択します。

   1. **[認証情報の取得]** ダイアログボックスで、オペレーティングシステムに一致するタブを選択します。

   1. `SSO Start URL` と `SSO Region` の値の取得に使用する **[IAM Identity Center 認証情報]** メソッドを選択します。

1. または、バージョン 2.22.0 以降では、開始 URL の代わりに発行者 URL を使用できます。発行者 URL は AWS IAM アイデンティティセンター コンソールの次のいずれかの場所にあります。
   + **[ダッシュボード]** ページでは、発行者 URL は設定の概要にあります。
   + **[設定]** ページでは、発行者 URL は **ID ソース**の設定にあります。

1. どのスコープ値を登録するかについては、「*IAM Identity Center ユーザーガイド*」の「[OAuth 2.0 アクセススコープ](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept)」を参照してください。

## `aws configure sso` ウィザードでプロファイルを設定する
<a name="cli-configure-sso-configure"></a>

**IAM アイデンティティセンターで有効化されたプロファイルを AWS CLI に対して設定するには**

1. 任意のターミナルで `aws configure sso` コマンドを実行します。

------
#### [ (Recommended) IAM Identity Center ]

   セッション名を作成し、IAM Identity Center の開始 URL または発行者 URL、IAM Identity Center ディレクトリをホストする AWS リージョン、および登録スコープを指定します。

   ```
   $ aws configure sso
   SSO session name (Recommended): my-sso
   SSO start URL [None]: https://my-sso-portal.awsapps.com/start
   SSO region [None]: us-east-1
   SSO registration scopes [None]: sso:account:access
   ```

   デュアルスタックをサポートするには、デュアルスタック SSO 開始 URL を使用します。

   ```
   $ aws configure sso
   SSO session name (Recommended): my-sso
   SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
   SSO region [None]: us-east-1
   SSO registration scopes [None]: sso:account:access
   ```

   バージョン **2.22.0** 以降の AWS CLI では、Proof Key for Code Exchange (PKCE) 認可がデフォルトで使用され、ブラウザを搭載したデバイスで必須となります。デバイス認可を引き続き使用するには、`--use-device-code` オプションを追加します。

   ```
   $ aws configure sso --use-device-code
   ```

------
#### [ Legacy IAM Identity Center ]

   セッション名をスキップし、IAM アイデンティティセンターの開始 URL と、IAM アイデンティティセンターのディレクトリをホストする AWS リージョンを指定します。

   ```
   $ aws configure sso
   SSO session name (Recommended):
   SSO start URL [None]: https://my-sso-portal.awsapps.com/start
   SSO region [None]:us-east-1
   ```

   デュアルスタックサポートの場合

   ```
   $ aws configure sso
   SSO session name (Recommended):
   SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
   SSO region [None]:us-east-1
   ```

------

1. AWS CLI は、デフォルトのブラウザを開いて、IAM アイデンティティセンターのアカウントのサインインプロセスを開始しようとします。このプロセスでは、AWS CLI によるデータへのアクセスを許可するように求められる場合があります。AWS CLI は SDK for Python 上に構築されているため、アクセス許可メッセージには 名前 `botocore` のさまざまなバリエーションが含まれる場合があります。
   + **AWS CLI がブラウザを開くことができない場合**、使用している認可のタイプに基づいて、サインインプロセスを手動で開始する手順が表示されます。

------
#### [ PKCE authorization ]

     バージョン 2.22.0 以降の AWS CLI では、Proof Key for Code Exchange (PKCE) 認可がデフォルトで使用されます。表示される URL は、以下から始まる一意の URL です。
     + IPv4: *https://oidc.us-east-1.amazonaws.com/authorize*
     + デュアルスタック: *https://oidc.us-east-1.api.aws/authorize*

     PKCE 認可 URL は、サインインするのと同じデバイスで開く必要があり、ブラウザを搭載したデバイスで使用する必要があります。

     ```
     Attempting to automatically open the SSO authorization page in your 
     default browser.
     If the browser does not open or you wish to use a different device to 
     authorize the request, open the following URL:
     
     https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
     ```

------
#### [ Device authorization ]

     OAuth 2.0 デバイス認可は、2.22.0 より前のバージョンの AWS CLI で使用されます。新しいバージョンでこの方法を有効にするには、`--use-device-code` オプションを使用します。

     デバイス認可 URL は、サインインするのと同じデバイスで開く必要はなく、ブラウザの有無にかかわらずデバイスで使用できます。エンドポイントの形式は、設定によって異なります。
     + IPv4: *https://device.sso.us-west-2.amazonaws.com/*
     + デュアルスタック: *https://device.sso.us-west-2.api.aws/*

     ```
     If the browser does not open or you wish to use a different device to 
     authorize this request, open the following URL:
     https://device.sso.us-west-2.amazonaws.com/
     
     Then enter the code:
     QCFK-N451
     ```

------

1. 表示されたリストから使用する AWS アカウントを選択します。使用する権限のあるアカウントが 1 つだけの場合、AWS CLI はそのアカウントを自動的に選択し、プロンプトをスキップします。

   ```
   There are 2 AWS accounts available to you.
   > DeveloperAccount, developer-account-admin@example.com (123456789011) 
     ProductionAccount, production-account-admin@example.com (123456789022)
   ```

1. 表示されたリストから使用する IAM ロールを選択します。使用できるロールが 1 つしかない場合、AWS CLI はそのロールを自動的に選択し、プロンプトをスキップします。

   ```
   Using the account ID 123456789011
   There are 2 roles available to you.
   > ReadOnly
     FullAccess
   ```

1. [デフォルトの出力形式](cli-configure-files.md#cli-config-output)、コマンドの送信先になる[デフォルトAWS リージョン](cli-configure-files.md#cli-config-region)、および[プロファイルの名前](cli-configure-files.md)を指定します。プロファイル名として `default` を指定すると、このプロファイルは使用されるデフォルトプロファイルになります。次の例では、デフォルトのリージョン、デフォルトの出力形式、プロファイルの名前を入力します。

   ```
   Default client Region [None]: us-west-2<ENTER>
   CLI default output format (json if not specified) [None]: json<ENTER>
   Profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
   ```

1. 最後のメッセージは、完了したプロファイル設定について説明しています。これで、このプロファイルを使用して認証情報をリクエストできます。`aws sso login` コマンドを使用して、コマンドを実行するために必要な認証情報をリクエストして取得します。手順については、「[IAM アイデンティティセンターのセッションにサインインする](#cli-configure-sso-login)」を参照してください。

### 生成された設定ファイル
<a name="cli-configure-sso-generated"></a>

これらのステップを実行すると、`config` ファイルに次のような `sso-session` セクションと名前付きプロファイルが作成されます。

------
#### [ IAM Identity Center ]

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

デュアルスタックサポートの場合

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_registration_scopes = sso:account:access
```

------
#### [ Legacy IAM Identity Center ]

```
[profile my-dev-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json
```

デュアルスタックサポートの場合

```
[profile my-dev-profile]
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_region = us-east-1
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json
```

------

## `aws configure sso-session` ウィザードで `sso-session` セクションのみを設定する
<a name="cli-configure-sso-session"></a>

**注記**  
この設定は、従来の IAM アイデンティティセンターとは互換性がありません。

`aws configure sso-session` コマンドは、`~/.aws/config` ファイル内の `sso-session` セクションを更新します。`aws configure sso-session` コマンドを実行し、IAM Identity Center の開始 URL または発行者 URL と、IAM Identity Center ディレクトリをホストする AWS リージョンを指定します。

```
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

デュアルスタックをサポートするには、デュアルスタック SSO 開始 URL を使用します。

```
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

## `config` ファイルを使用した手動設定
<a name="cli-configure-sso-manual"></a>

IAM アイデンティティセンターの設定情報は `config` ファイルに保存されており、テキストエディタを使用して編集できます。名前付きプロファイルに IAM アイデンティティセンターのサポートを手動で追加するには、`config` ファイルにキーと値を追加する必要があります。

### IAM アイデンティティセンターの設定ファイル
<a name="cli-configure-sso-manual-config"></a>

`config` ファイルの `sso-session` セクションを使用して、SSO アクセストークンを取得するための設定変数をグループ化します。これらを使用して、AWS 認証情報を取得できます。次の設定を使用します。
+ **(必須)** `sso\$1start\$1url`
+ **(必須)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

`sso-session` セクションを定義し、プロファイルに関連付けます。`sso_region` および `sso_start_url` の設定は、`sso-session` セクション内で設定する必要があります。SDK が SSO 認証情報をリクエストできるように、通常、`sso_account_id` と `sso_role_name` は `profile`セクション内に設定する必要があります。

次の例では、SSO 認証情報をリクエストするように SDK を設定し、トークンの自動更新をサポートしています。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

デュアルスタックをサポートするには、デュアルスタック SSO 開始 URL 形式を使用します。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
```

これにより、`sso-session` 設定を複数のプロファイルでも再利用できるようになります。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

デュアルスタックをサポートするには、デュアルスタック SSO 開始 URL 形式を使用します。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
```

ただし、`sso_account_id` と `sso_role_name` は SSO トークン設定のすべてのシナリオで必須というわけではありません。アプリケーションでベアラー認証をサポートする AWS のサービスのみを使用する場合、従来の AWS 認証情報は必要ありません。ベアラー認証は、ベアラートークンと呼ばれるセキュリティトークンを使用する HTTP 認証スキームです。このシナリオでは、`sso_account_id` と `sso_role_name` は必須ではありません。AWS のサービスでベアラートークン認可をサポートしているかどうかについては、各サービスのガイドを参照してください。

さらに、登録スコープは `sso-session` の一部として設定できます。スコープは、ユーザーのアカウントに対するアプリケーションのアクセスを制限する OAuth 2.0 のメカニズムです。アプリケーションは 1 つ以上のスコープをリクエストでき、アプリケーションに発行されたアクセストークンは付与されたスコープに限定されます。これらのスコープは、登録された OIDC クライアントがリクエストできるアクセス許可と、クライアントが取得するアクセストークンを定義します。次の例では、アカウント/ロールを一覧表示するアクセスを許可するように `sso_registration_scopes` を設定しています。

```
[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

デュアルスタックサポートの場合

```
[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_registration_scopes = sso:account:access
```

認証トークンは、セッション名に基づいたファイル名を使用して、`sso/cache` ディレクトリの下のディスクにキャッシュされます。

### 従来の IAM アイデンティティセンターの設定ファイル
<a name="cli-configure-sso-manual-legacy"></a>

**注記**  
トークンの自動更新は、更新不可のレガシー設定ではサポートされていません。SSO トークン設定を使用することをお勧めします。

名前付きプロファイルに手動で IAM Identity Center サポートを追加するには、`config` ファイルのプロファイル定義に次のキーと値を追加する必要があります。
+ `sso\$1start\$1url`
+ `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`

`.aws/config` ファイル内で有効なその他のキーや値を含めることができます。次の例は、IAM アイデンティティセンターのプロファイルの例です。

```
[profile my-sso-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-west-2
sso_account_id = 111122223333
sso_role_name = SSOReadOnlyRole
region = us-west-2
output = json
```

デュアルスタックサポートの場合

```
[profile my-sso-profile]
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_region = us-west-2
sso_account_id = 111122223333
sso_role_name = SSOReadOnlyRole
region = us-west-2
output = json
```

コマンドを実行するには、まず [IAM アイデンティティセンターのセッションにサインインする](#cli-configure-sso-login) コマンドを使用して一時認証情報をリクエストおよび取得する必要があります。

`config` ファイルと`credentials` ファイルの詳細については、「[Configuration and credential file settings in the AWS CLI](cli-configure-files.md)」を参照してください。

## IAM アイデンティティセンターのセッションにサインインする
<a name="cli-configure-sso-login"></a>

**注記**  
サインインプロセス中に、データへのアクセスを AWS CLI に許可するように求められる場合があります。AWS CLI は SDK for Python 上に構築されているため、アクセス許可メッセージには 名前 `botocore` のさまざまなバリエーションが含まれる場合があります。

IAM アイデンティティセンターの認証情報セットを取得してキャッシュするには、AWS CLI の次のコマンドを実行してデフォルトのブラウザを開き、IAM アイデンティティセンターのログインを確認します。

```
$ aws sso login --profile my-dev-profile
SSO authorization page has automatically been opened in your default browser. 
Follow the instructions in the browser to complete this authorization request.
Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start
```

IAM アイデンティティセンターの認証情報はキャッシュされ、AWS CLI はそれらを使用して、プロファイルで指定されている IAM ロールの AWS 認証情報を安全に取得します。

### AWS CLI がブラウザを開けない場合
<a name="cli-configure-sso-login-browser"></a>

AWS CLI ブラウザを自動的に開くことができない場合、使用している認可のタイプに基づいて、サインインプロセスを手動で開始する手順が表示されます。

------
#### [ PKCE authorization ]

バージョン 2.22.0 以降の AWS CLI では、Proof Key for Code Exchange (PKCE) 認可がデフォルトで使用されます。表示される URL は、以下から始まる一意の URL です。
+ IPv4: *https://oidc.us-east-1.amazonaws.com/authorize*
+ デュアルスタック: *https://oidc.us-east-1.api.aws/authorize*

PKCE 認可 URL は、サインインするのと同じデバイスで開く必要があり、ブラウザを搭載したデバイスで使用する必要があります。

```
Attempting to automatically open the SSO authorization page in your 
default browser.
If the browser does not open or you wish to use a different device to 
authorize the request, open the following URL:

https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
```

------
#### [ Device authorization ]

OAuth 2.0 デバイス認可は、2.22.0 より前のバージョンの AWS CLI で使用されます。新しいバージョンでこの方法を有効にするには、`--use-device-code` オプションを使用します。

デバイス認可 URL は、サインインするのと同じデバイスで開く必要はなく、ブラウザの有無にかかわらずデバイスで使用できます。

```
If the browser does not open or you wish to use a different device to 
authorize this request, open the following URL:
https://device.sso.us-west-2.amazonaws.com/

Then enter the code:
QCFK-N451
```

------

`aws sso login` コマンドの `--sso-session` パラメータを使用してログインするときに、どの `sso-session` プロファイルを使用するかも指定できます。この `sso-session` オプションは、従来の IAM アイデンティティセンターでは使用できません。

```
$ aws sso login --sso-session my-dev-session
```

バージョン 2.22.0 以降では、PKCE 認可はデフォルトです。サインインにデバイス認可を使用するには、`--use-device-code` オプションを追加します。

```
$ aws sso login --profile my-dev-profile --use-device-code
```

認証トークンは、`sso_start_url` に基づいたファイル名を使用して、`~/.aws/sso/cache` ディレクトリの下のディスクにキャッシュされます。

## IAM アイデンティティセンターのプロファイルでコマンドを実行する
<a name="cli-configure-sso-use"></a>

ログインしたら、認証情報を使用して、関連付けられた名前付きプロファイルで AWS CLI コマンドを呼び出すことができます。次の例は、プロファイルを使用するコマンドを示しています。

```
$ aws sts get-caller-identity --profile my-dev-profile
```

IAM アイデンティティセンターにサインインしており、キャッシュされた認証情報の有効期限が切れていない限り、AWS CLI は必要に応じて期限切れの AWS 認証情報を自動的に更新します。ただし、IAM Identity Center 認証情報の有効期限が切れた場合は、IAM Identity Center アカウントに再度ログインして明示的に更新する必要があります。

## IAM アイデンティティセンターのセッションからサインアウトする
<a name="cli-configure-sso-logout"></a>

IAM アイデンティティセンターのプロファイルの使用が完了したら、認証情報の有効期限が切れるのを待つか、次のコマンドを実行してキャッシュされた認証情報を削除することができます。

```
$ aws sso logout
Successfully signed out of all SSO profiles.
```

## トラブルシューティング
<a name="cli-configure-sso-tshoot"></a>

AWS CLI の使用中に問題が発生した場合のトラブルシューティングのステップについては、「[AWS CLI のエラーのトラブルシューティング](cli-chap-troubleshooting.md)」を参照してください。

## 関連リソース
<a name="cli-configure-sso-resources"></a>

その他のリソースは次のとおりです。
+ [AWS CLI の AWS IAM アイデンティティセンター の概念](cli-configure-sso-concepts.md)
+ [チュートリアル: IAM アイデンティティセンターを使用して AWS CLI で Amazon S3 コマンドを実行する](cli-configure-sso-tutorial.md)
+ [AWS CLI の最新バージョンのインストールまたは更新](getting-started-install.md)
+ [Configuration and credential file settings in the AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) (*AWS CLI バージョン 2 リファレンス*)
+ 「*Amazon CodeCatalyst ユーザーガイド*」の「[Setting up to use the AWS CLI with CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html)」
+ 「*IAM アイデンティティセンターのユーザーガイド*」の [OAuth 2.0 アクセススコープ](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept)
+ 「*IAM アイデンティティセンターのユーザーガイド*」の[入門チュートリアル](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html)

# AWS CLI の AWS IAM アイデンティティセンター の概念
<a name="cli-configure-sso-concepts"></a>

このトピックでは、AWS IAM アイデンティティセンター (IAM アイデンティティセンター) の主な概念について説明します。IAM アイデンティティセンターは、既存の ID プロバイダー (IdP) と統合することで、複数の AWS アカウント アカウント、アプリケーション、SDK、およびツールにわたるユーザーアクセス管理を簡素化するクラウドベースの IAM サービスです。一元化されたユーザーポータルを通じて安全なシングルサインオン、アクセス許可管理、監査が可能になり、組織の ID とアクセスのガバナンスが合理化されます。

**Topics**
+ [

## IAM アイデンティティセンターとは
](#cli-configure-sso-concepts-what)
+ [

## 用語
](#cli-configure-sso-terms)
+ [

## IAM アイデンティティセンターの仕組み
](#cli-configure-sso-concepts-process)
+ [

## その他のリソース
](#cli-configure-sso-concepts-resources)

## IAM アイデンティティセンターとは
<a name="cli-configure-sso-concepts-what"></a>

IAM アイデンティティセンターは、複数の AWS アカウントやビジネスアプリケーションへのアクセスを一元管理できるクラウドベースの Identity and Access Management (IAM) サービスです。

このサービスには、権限があるユーザーが既存の企業認証情報を使用して、アクセス許可が付与されている AWS アカウントとアプリケーションにアクセスできるユーザーポータルが用意されています。これにより、組織は一貫したセキュリティポリシーを適用し、ユーザーアクセス管理を効率化できます。

使用する IdP に関係なく、IAM Identity Center によってこれらの区別はなくなります。例えば、ブログ記事「[The Next Evolution in IAM Identity Center](https://aws.amazon.com/blogs/aws/the-next-evolution-in-aws-single-sign-on/)」で説明されているように、Microsoft Azure AD を接続できます。

**注記**  
アカウント ID とロールを使用しないベアラー認証の使用方法については、Amazon CodeCatalyst ユーザーガイドの「[CodeCatalyst で AWS CLI を使用するためのセットアップ](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html)」を参照してください。

## 用語
<a name="cli-configure-sso-terms"></a>

IAM アイデンティティセンターを使用する際によく使われる用語は次のとおりです。

**ID プロバイダー (IdP)**  
IAM アイデンティティセンター、Microsoft Azure AD、Okta、または独自の企業ディレクトリサービスなどの ID 管理システム。

**AWS IAM アイデンティティセンター**  
IAM アイデンティティセンターは、AWS 所有の IdP サービスです。以前は AWS Single Sign-On と呼ばれてたもので、SDK とツールには下位互換性のために `sso` API 名前空間が保持さています。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[What is IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed)」(IAM Identity Center とは) を参照してください。

**AWS アクセスポータル URL、SSO 開始 URL、開始 URL**  
認可済み AWS アカウント、サービス、リソースにアクセスするための組織固有の IAM Identity Center URL。

**発行者 URL**  
承認済み AWS アカウント、サービス、リソースにプログラムによりアクセスするための組織固有の IAM Identity Center 発行者 URL。AWS CLI のバージョン 2.22.0 以降では、発行者 URL は開始 URL と置き換えて使用できます。

**フェデレーション**  
シングルサインオン (SSO) を有効にするために IAM アイデンティティセンターと ID プロバイダー間に信頼を確立するプロセス。

**AWS アカウント**  
AWS IAM アイデンティティセンター を通じてユーザーにアクセスを付与する AWS アカウント。

**アクセス許可セット、AWS 認証情報、認証情報、sigv4 認証情報**  
AWS のサービス へのアクセスを付与するためにユーザーまたはグループに割り当てることができる事前定義されたアクセス許可のコレクション。

**登録スコープ、アクセススコープ、スコープ**  
スコープは、アプリケーションによるユーザーアカウントへのアクセスを制限するための OAuth 2.0 のメカニズムです。アプリケーションは 1 つ以上のスコープをリクエストでき、アプリケーションに発行されたアクセストークンは付与されたスコープに限定されます。スコープの詳細については、*IAM Identity Center ユーザーガイド*の「[アクセススコープ](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept) 」を参照してください。

**トークン、更新トークン、アクセストークン**  
トークンは、認証時に発行される一時的なセキュリティ認証情報です。これらのトークンには、ID と付与されたアクセス許可に関する情報が含まれています。  
IAM アイデンティティセンターのポータルを通じて AWS リソースやアプリケーションにアクセスするときに、トークンが AWS に提示され、認証と承認が行われます。これにより、AWS はユーザーの ID を確認し、ユーザーが要求したアクションを実行するために必要なアクセス許可をユーザーが持っていることを確認できます。  
認証トークンは、セッション名に基づいた JSON ファイル名を使用して、`~/.aws/sso/cache` ディレクトリの下のディスクにキャッシュされます。

**セッション**  
IAM アイデンティティセンターのセッションとは、ユーザーが認証され、AWS リソースやアプリケーションへのアクセスが承認されている期間を指します。ユーザーが IAM アイデンティティセンターのポータルにサインインすると、セッションが確立され、ユーザーのトークンは指定された期間にわたり有効になります。セッション時間に詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[Set session duration](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)」を参照してください。  
セッション中は、セッションがアクティブな状態である限り、再認証をする必要なく、異なる AWS アカウントやアプリケーション間を移動できます。セッションの有効期限が切れた場合は、もう一度サインインしてアクセスを更新してください。  
IAM アイデンティティセンターのセッションは、ユーザーアクセス認証情報の有効期限を制限することでセキュリティのベストプラクティスを実施しながら、シームレスなユーザーエクスペリエンスを提供するのに役立ちます。

**Proof Key for Code Exchange (PKCE) を使用した認可コードの付与**  
バージョン 2.22.0 以降、Proof Key for Code Exchange (PKCE) は、ブラウザを搭載したデバイス向けの OAuth 2.0 認証付与フローです。PKCE は、ウェブブラウザを搭載したデスクトップやモバイルデバイスから AWS リソースへのアクセスを認証し、同意を得るためのシンプルで安全な方法です。これはデフォルトの認可動作です。PKCE の詳細については、*AWS IAM アイデンティティセンター ユーザーガイド*の「[PKCE を使用した認可コード付与](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#auth-code-grant-pkce)」を参照してください。

**デバイス認可付与**  
ウェブブラウザの有無にかかわらず、デバイスで使用可能な OAuth 2.0 認証付与フロー。セッション期間の設定の詳細については、*AWS IAM アイデンティティセンター ユーザーガイド*の「[デバイス認可付与](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#device-auth-grant)」を参照してください。

## IAM アイデンティティセンターの仕組み
<a name="cli-configure-sso-concepts-process"></a>

IAM アイデンティティセンターは、IAM アイデンティティセンター、Microsoft Azure AD、Okta など、組織の ID プロバイダーと統合されます。ユーザーはこの ID プロバイダーに対して認証を行い、IAM アイデンティティセンターはそれらの ID を AWS 環境内の適切なアクセス許可とアクセスにマッピングします。

次の IAM アイデンティテセンターのワークフローは、IAM アイデンティティセンターを使用するように AWS CLI が既に設定されていることを前提としています。

1. 任意のターミナルで `aws sso login` コマンドを実行します。

1. AWS アクセスポータル にサインインし、新しいセッションを開始します。
   + 新しいセッションを開始すると、キャッシュされている更新トークンとアクセストークンが届きます。
   + 既にアクティブなセッションがある場合、既存のセッションが再利用され、既存のセッションの有効期限が切れると期限切れになります。

1. `config` ファイルで設定したプロファイルに基づいて、IAM アイデンティティセンターは適切なアクセス許可セットを引き受け、関連する AWS アカウントおよびアプリケーションへのアクセスを付与します。

1. AWS CLI、SDK、およびツールは引き受けた IAM ロールを使用して、そのセッションの有効期限が切れるまで、Amazon S3 バケットの作成などの AWS のサービスを呼び出します。

1. IAM アイデンティティセンターから取得したアクセストークンは 1 時間ごとにチェックされ、更新トークンを使用して自動的に更新されます。
   + アクセストークンの有効期限が切れると、SDK やツールは更新トークンを使用して新しいアクセストークンを取得します。そして、これらのトークンのセッション期間を比較し、更新トークンの有効期限が切れていない場合は、IAM アイデンティティセンターが新しいアクセストークンを提供します。
   + 更新トークンの有効期限が切れている場合は、新しいアクセストークンは提供されず、セッションは終了します。

1. セッションは、更新トークンの有効期限が切れるか、`aws sso logout` コマンドを使用して手動でログアウトすると終了します。キャッシュされた認証情報は削除されます。IAM アイデンティティセンターを使用してサービスへのアクセスを継続するには、`aws sso login` コマンドを使用して新しいセッションを開始する必要があります。

## その他のリソース
<a name="cli-configure-sso-concepts-resources"></a>

その他のリソースは次のとおりです。
+ [AWS CLI を使用した IAM アイデンティティセンター認証の設定](cli-configure-sso.md)
+ [チュートリアル: IAM アイデンティティセンターを使用して AWS CLI で Amazon S3 コマンドを実行する](cli-configure-sso-tutorial.md)
+ [AWS CLI の最新バージョンのインストールまたは更新](getting-started-install.md)
+ [Configuration and credential file settings in the AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) (*AWS CLI バージョン 2 リファレンス*)
+ 「*Amazon CodeCatalyst ユーザーガイド*」の「[Setting up to use the AWS CLI with CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html)」
+ 「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed)」
+ 「*IAM アイデンティティセンターのユーザーガイド*」の [OAuth 2.0 アクセススコープ](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept)
+ 「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[Set session duration](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)」
+ 「*IAM アイデンティティセンターのユーザーガイド*」の[入門チュートリアル](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html)

# チュートリアル: IAM アイデンティティセンターを使用して AWS CLI で Amazon S3 コマンドを実行する
<a name="cli-configure-sso-tutorial"></a>

このトピックでは、現在の AWS IAM アイデンティティセンター (IAM アイデンティティセンター) を使用してユーザーを認証し、 Amazon Simple Storage Service (Amazon S3) の AWS Command Line Interface (AWS CLI) コマンドを実行するための認証情報を取得するように AWS CLI を設定する方法について説明します。

**Topics**
+ [

## ステップ 1: IAM アイデンティティセンターを使用した認証
](#cli-configure-sso-tutorial-authentication)
+ [

## ステップ 2: IAM アイデンティティセンターの情報を収集する
](#cli-configure-sso-tutorial-gather)
+ [

## ステップ 3: Amazon S3 バケットを作成する
](#cli-configure-sso-tutorial-buckets)
+ [

## ステップ 4: AWS CLI をインストールする
](#cli-configure-sso-tutorial-install)
+ [

## ステップ 5: AWS CLI プロファイルを設定する
](#cli-configure-sso-tutorial-configure)
+ [

## ステップ 6: IAM アイデンティティセンターにログインする
](#cli-configure-sso-tutorial-login.title)
+ [

## ステップ 7: Amazon S3 コマンドを実行する
](#cli-configure-sso-tutorial-commands)
+ [

## ステップ 8: IAM アイデンティティセンターからログアウトする
](#cli-configure-sso-tutorial-logout)
+ [

## ステップ 9: リソースをクリーンアップする
](#cli-configure-sso-tutorial-cleanup)
+ [

## トラブルシューティング
](#cli-configure-sso-tutorial-tshoot)
+ [

## その他のリソース
](#cli-configure-sso-tutorial-resources.title)

## ステップ 1: IAM アイデンティティセンターを使用した認証
<a name="cli-configure-sso-tutorial-authentication"></a>

IAM アイデンティティセンター内で SSO 認証へのアクセスを取得します。AWS 認証情報にアクセスするには、次のいずれかの方法を選択します。

### IAM Identity Center 経由のアクセスを確立していません
<a name="idc-access"></a>

「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[開始方法](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)」の手順に従います。このプロセスでは、IAM Identity Center をアクティブ化して、管理者ユーザーを作成し、適切な最小特権のアクセス許可セットを追加します。

**注記**  
最小特権権のアクセス許可を適用するアクセス許可セットを作成します。雇用主がこの目的のためにカスタムアクセス許可セットを作成していない限り、定義済みの `PowerUserAccess` アクセス許可セットを使用することをお勧めします。

ポータルを終了し、AWS アカウントにもう一度サインインすると、、プログラムによるアクセスの詳細、および `Administrator` または `PowerUserAccess` のオプションが表示されます。SDK を使用する場合は `PowerUserAccess` を選択します。

### 雇用主が管理するフェデレーション ID プロバイダー (Azure AD や Okta など) を通じて AWS へのアクセス権を既に持っています。
<a name="federated-access"></a>

ID プロバイダーのポータルから AWS にサインインします。クラウド管理者から `PowerUserAccess` (開発者) アクセス許可を付与されている場合は、アクセス権のある AWS アカウント とアクセス許可セットが表示されます。アクセス許可セットの名前の横に、そのアクセス許可セットを使用してアカウントに手動またはプログラムでアクセスするオプションが表示されます。

カスタム実装では、アクセス許可セット名が異なるなど、エクスペリエンスが異なる場合があります。どのアクセス許可セットを使用すればよいかわからない場合は、IT チームにお問い合わせください。

### 雇用主が管理する AWS アクセスポータルを通じて AWS へのアクセス権を既に持っています。
<a name="accessportal-access"></a>

AWS アクセスポータルを通じて AWS にサインインします。クラウド管理者から `PowerUserAccess` (開発者) アクセス許可を付与されている場合は、アクセス権のある AWS アカウント とアクセス許可セットが表示されます。アクセス許可セットの名前の横に、そのアクセス許可セットを使用してアカウントに手動またはプログラムでアクセスするオプションが表示されます。

### 雇用主が管理するフェデレーションカスタム ID プロバイダーを通じて AWS へのアクセス権を既に持っています。
<a name="customfederated-access"></a>

サポートについては、IT チームにお問い合わせください。

## ステップ 2: IAM アイデンティティセンターの情報を収集する
<a name="cli-configure-sso-tutorial-gather"></a>

AWS へのアクセスを取得したら、次を実行して IAM アイデンティティセンターの情報を収集します。

1. `aws configure sso` の実行に必要な `SSO Start URL` と `SSO Region` の値を収集する

   1. AWS アクセスポータルで、開発に使用するアクセス許可セットを選択し、**[アクセスキー]** リンクを選択します。

   1. **[認証情報の取得]** ダイアログボックスで、オペレーティングシステムに一致するタブを選択します。

   1. `SSO Start URL` と `SSO Region` の値の取得に使用する **[IAM Identity Center 認証情報]** メソッドを選択します。

1. または、バージョン 2.22.0 以降では、開始 URL の代わりに新しい発行者 URL を使用できます。発行者 URL は AWS IAM アイデンティティセンター コンソールの次のいずれかの場所にあります。
   + **[ダッシュボード]** ページでは、発行者 URL は設定の概要にあります。
   + **[設定]** ページでは、発行者 URL は **ID ソース**の設定にあります。

1. どのスコープ値を登録するかについては、「*IAM Identity Center ユーザーガイド*」の「[OAuth 2.0 アクセススコープ](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept)」を参照してください。

## ステップ 3: Amazon S3 バケットを作成する
<a name="cli-configure-sso-tutorial-buckets"></a>

AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

このチュートリアルでは、後でリストで取得するバケットをいくつか作成します。

## ステップ 4: AWS CLI をインストールする
<a name="cli-configure-sso-tutorial-install"></a>

お使いのオペレーティングシステムの手順に従って、AWS CLI をインストールします。詳細については、「[AWS CLI の最新バージョンのインストールまたは更新](getting-started-install.md)」を参照してください。

インストールが完了したら、任意のターミナルを開き、次のコマンドを実行してインストールを確認します。これにより、AWS CLI のインストール済みバージョンが表示されます。

```
$ aws --version
```

## ステップ 5: AWS CLI プロファイルを設定する
<a name="cli-configure-sso-tutorial-configure"></a>

次のいずれかの方法でプロファイルを設定します

### `aws configure sso` ウィザードでプロファイルを設定する
<a name="li-configure-sso-tutorial-configure-wizard"></a>

`config` ファイルの `sso-session` セクションを使用して、SSO アクセストークンを取得するための設定変数をグループ化します。これらを使用して、AWS 認証情報を取得できます。次の設定を使用します。
+ **(必須)** `sso\$1start\$1url`
+ **(必須)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

`sso-session` セクションを定義し、プロファイルに関連付けます。`sso_region` および `sso_start_url` の設定は、`sso-session` セクション内で設定する必要があります。SDK が SSO 認証情報をリクエストできるように、通常、`sso_account_id` と `sso_role_name` は `profile`セクション内に設定する必要があります。

次の例では、SSO 認証情報をリクエストするように SDK を設定し、トークンの自動更新をサポートしています。

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

デュアルスタックのサポートには、デュアルスタック SSO 開始 URL 形式を使用できます。

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

バージョン 2.22.0 以降の AWS CLI では、Proof Key for Code Exchange (PKCE) 認可がデフォルトで使用され、ブラウザを搭載したデバイスで必須となります。デバイス認可を引き続き使用するには、`--use-device-code` オプションを追加します。

```
$ aws configure sso --use-device-code
```

### `config` ファイルを使用した手動設定
<a name="cli-configure-sso-tutorial-configure-manual"></a>

`config` ファイルの `sso-session` セクションを使用して、SSO アクセストークンを取得するための設定変数をグループ化します。これらを使用して、AWS 認証情報を取得できます。次の設定を使用します。
+ **(必須)** `sso\$1start\$1url`
+ **(必須)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

`sso-session` セクションを定義してプロファイルに関連付けます。`sso_region` と `sso_start_url` は `sso-session` セクション内に設定する必要があります。SDK が SSO 認証情報をリクエストできるように、通常、`sso_account_id` と `sso_role_name` は `profile`セクション内に設定する必要があります。

次の例では、SSO 認証情報をリクエストするように SDK を設定し、トークンの自動更新をサポートしています。

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

デュアルスタックをサポートするには、デュアルスタック SSO 開始 URL 形式を使用します。

```
[profile my-dev-profile]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://ssoins-1234567890abcdef.portal.us-east-1.app.aws
sso_registration_scopes = sso:account:access
```

認証トークンは、セッション名に基づいたファイル名を使用して、`~/.aws/sso/cache` ディレクトリの下のディスクにキャッシュされます。

## ステップ 6: IAM アイデンティティセンターにログインする
<a name="cli-configure-sso-tutorial-login.title"></a>

**注記**  
サインインプロセス中に、データへのアクセスを AWS CLI に許可するように求められる場合があります。AWS CLI は SDK for Python 上に構築されているため、アクセス許可メッセージには 名前 `botocore` のさまざまなバリエーションが含まれる場合があります。

IAM アイデンティティセンターの認証情報を取得してキャッシュするには、AWS CLI の次のコマンドを実行してデフォルトのブラウザを開き、IAM アイデンティティセンターのログインを確認します。

```
$ aws sso login --profile my-dev-profile
```

バージョン 2.22.0 以降では、PKCE 認可はデフォルトです。サインインにデバイス認可を使用するには、`--use-device-code` オプションを追加します。

```
$ aws sso login --profile my-dev-profile --use-device-code
```

## ステップ 7: Amazon S3 コマンドを実行する
<a name="cli-configure-sso-tutorial-commands"></a>

前に作成したバケットを一覧表示するには、[https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html) コマンドを使用します。次の例では、すべての Amazon S3 バケットを一覧表示します。

```
$ aws s3 ls
2018-12-11 17:08:50 my-bucket
2018-12-14 14:55:44 my-bucket2
```

## ステップ 8: IAM アイデンティティセンターからログアウトする
<a name="cli-configure-sso-tutorial-logout"></a>

IAM アイデンティティセンターのプロファイルの使用が完了したら、次のコマンドを実行してキャッシュされた認証情報を削除します。

```
$ aws sso logout
Successfully signed out of all SSO profiles.
```

## ステップ 9: リソースをクリーンアップする
<a name="cli-configure-sso-tutorial-cleanup"></a>

このチュートリアルが完了したら、Amazon S3 バケットなど、このチュートリアルで作成し、不要になったリソースをクリーンアップします。

## トラブルシューティング
<a name="cli-configure-sso-tutorial-tshoot"></a>

AWS CLI の使用中に問題が発生した場合の一般的なトラブルシューティングのステップについては、「[AWS CLI のエラーのトラブルシューティング](cli-chap-troubleshooting.md)」を参照してください。

## その他のリソース
<a name="cli-configure-sso-tutorial-resources.title"></a>

その他のリソースは次のとおりです。
+ [AWS CLI の AWS IAM アイデンティティセンター の概念](cli-configure-sso-concepts.md)
+ [AWS CLI を使用した IAM アイデンティティセンター認証の設定](cli-configure-sso.md)
+ [AWS CLI の最新バージョンのインストールまたは更新](getting-started-install.md)
+ [Configuration and credential file settings in the AWS CLI](cli-configure-files.md)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html](https://docs.aws.amazon.com/cli/latest/reference/configure/sso-session.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/login.html](https://docs.aws.amazon.com/cli/latest/reference/sso/login.html) (*AWS CLI バージョン 2 リファレンス*)
+ [https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html](https://docs.aws.amazon.com/cli/latest/reference/sso/logout.html) (*AWS CLI バージョン 2 リファレンス*)
+ 「*Amazon CodeCatalyst ユーザーガイド*」の「[Setting up to use the AWS CLI with CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/set-up-cli.html)」
+ 「*IAM アイデンティティセンターのユーザーガイド*」の [OAuth 2.0 アクセススコープ](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept)
+ 「*IAM アイデンティティセンターのユーザーガイド*」の[入門チュートリアル](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html)