

# IAM ユーザー
<a name="id_users"></a>

**重要**  
 IAM [ベストプラクティス](best-practices.md)では、長期的な認証情報を持つIAMユーザーを使用するのではなく、一時的な認証情報を使用して AWS にアクセスするために、IDプロバイダーとのフェデレーションを使用することを人間ユーザーに求めることを推奨します。IAM ユーザーは、フェデレーションユーザーでサポートされていない[特定のユースケース](gs-identities-iam-users.md)にのみ使用することをお勧めします。

IAM ユーザーは、AWS アカウント で作成したエンティティです。IAM ユーザーは、IAM ユーザーを使用して AWS リソースとやりとりする人間のユーザーまたはワークロードを表します。IAM ユーザーは名前と認証情報で構成されます。

管理者アクセス許可を持つ IAM ユーザーが AWS アカウントのルートユーザー ということではありません。ルートユーザー の詳細については、「[AWS アカウントのルートユーザー](id_root-user.md)」を参照してください。

## AWS が IAM ユーザーを識別する方法
<a name="id_users_create_aws-identifiers"></a>

IAM ユーザーを作成すると、IAM はそのユーザーを識別するための以下の手段を作成します。
+ IAM ユーザーの「フレンドリ名」。IAM ユーザーを作成したときに指定した名前です (`Richard`、`Anaya` など)。これは、AWS マネジメントコンソール に表示される名前です。IAM ユーザー名は Amazon リソースネーム (ARN) に表示されるため、IAM 名に個人識別情報を含めることはお勧めしません。IAM 名の要件と制限については、「[IAM 名前の要件](reference_iam-quotas.md#reference_iam-quotas-names)」 を参照してください。
+ IAM ユーザーの Amazon リソースネーム (ARN)。AWS 全体で IAM ユーザーを一意に識別する必要がある場合は、ARN を使用します。例えば、ARN を使用して、Amazon S3 バケットの IAM ポリシーの `Principal` として IAM ユーザーを指定できます。IAM ユーザーの ARN は次の例のように表示されます。

  `arn:aws:iam::account-ID-without-hyphens:user/Richard`
+ IAM ユーザー用の一意の識別子。この ID が返されるのは、API、Tools for Windows PowerShell または AWS CLI を使用して IAM ユーザーを作成した場合だけです。この ID はコンソールには表示されません。

これらの ID の詳細については[IAM ID](reference_identifiers.md)を参照してください。

## IAM ユーザーと認証情報
<a name="id_users_creds"></a>

AWS には、IAM ユーザーの認証情報に応じてさまざまな方法でアクセスできます。
+ [**コンソールパスワード**](id_credentials_passwords.md): AWS マネジメントコンソール などのインタラクティブセッションにサインインするときに IAM ユーザーが入力するパスワード。IAM ユーザーのパスワード (コンソールアクセス) を無効化すると、サインイン認証情報を使用して AWS マネジメントコンソール にサインインできなくなります。アクセス許可を変更したり、想定されたロールを使用してコンソールにアクセスすることを妨げたりすることはありません。コンソールアクセスが有効になっている IAM ユーザーは、これらの同じ認証情報を使用して、AWS CLI および SDK アクセスを `aws login` AWS CLI コマンドを使用して認証することもできます。これらのユーザーには [SignInLocalDevelopmentAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/SignInLocalDevelopmentAccess.html) アクセス許可が必要です。詳細については、「*AWS Command Line Interfaceユーザーガイド*」の「[AWS CLI に対する認証とアクセスコントロール](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html)」を参照してください。
+ [**アクセスキー**](id_credentials_access-keys.md): AWS へのプログラムによる呼び出しに使用されます。ただし、IAM ユーザーのアクセスキーを作成する前に検討すべきより安全な代替手段があります。詳細については、「AWS 全般のリファレンス」の「[長期的なアクセスキーの考慮事項と代替方法](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#alternatives-to-long-term-access-keys)」を参照してください。IAM ユーザーがアクティブなアクセスキーを持っている場合、それらのキーは引き続き機能し、AWS CLI、Tools for Windows PowerShell、AWS API、または AWS Console Mobile Application 用のツールを介したアクセスを許可します。
+ [**CodeCommit で使用する SSH キー**](id_credentials_ssh-keys.md): CodeCommit での認証に使用可能な OpenSSH 形式の SSH パブリックキー。
+ [**サーバー証明書**](id_credentials_server-certs.md): AWS の一部のサービスでの認証に使用可能な SSL/TLS 証明書。AWS Certificate Manager (ACM) を使用してサーバー証明書のプロビジョニング、管理、デプロイを行うことをお勧めします。ACM でサポートされていないリージョンで HTTPS 接続をサポートする必要があるときにのみ、IAM を使用してください。ACM をサポートするリージョンについては、「AWS 全般のリファレンス」の「[AWS Certificate Manager エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/acm.html)」を参照してください。

IAM ユーザーに適した認証情報を選択できます。AWS マネジメントコンソール を使用して IAM ユーザーを作成するときは、少なくともコンソールパスワードまたはアクセスキーを含める選択をする必要があります。デフォルトでは、AWS CLI または AWS API を使用して作成された新しい IAM ユーザーには、どのような種類の認証情報も提供されていません。ユースケースに基づいて、IAM ユーザーに合った種類の認証情報を作成する必要があります。

パスワード、アクセスキー、および多要素認証 (MFA) デバイスの管理には、以下のオプションがあります。
+ **[IAM ユーザーのパスワードを管理します](id_credentials_passwords.md)。**AWS マネジメントコンソール へのアクセスを許可するパスワードを作成および変更します。最低限のパスワードの複雑さを強制するパスワードポリシーを設定します。IAM ユーザーが自分のパスワードを変更できるようにします。
+ **[IAM ユーザーのアクセスキーを管理します](id_credentials_access-keys.md)。**アカウントのリソースにプログラムでアクセスするためのアクセスキーを作成および更新します。
+ **[IAM ユーザーの多要素認証 (MFA) を有効化する](id_credentials_mfa.md)。**[ベストプラクティス](best-practices.md)として、アカウントのすべての IAM ユーザーに対して、多要素認証を要求することをお勧めします。MFA を使用する場合、IAM ユーザーは 2 つの形式の ID を指定する必要があります。まず、ユーザー ID の一部である認証情報 (パスワードまたはアクセスキー) を指定します。さらに、一時的な数値コードを指定します。この数値コードは、ハードウェアデバイスか、スマートフォンまたはタブレットのアプリケーションで生成されます。
+ **[使用されていないパスワードおよびアクセスキーを見つけます](id_credentials_finding-unused.md)。**アカウントのパスワードまたはアクセスキーを持つユーザー、またはアカウント内の IAM ユーザーであれば、だれでも AWS リソースにアクセスできます。セキュリティ保護のための[ベストプラクティス](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)は、IAM ユーザーがパスワードやアクセスキーを使用しなくなったら、それらを削除することです。
+ **[アカウントの認証情報レポートをダウンローします](id_credentials_getting-report.md)。**アカウント内のすべての IAM ユーザーと、ユーザーの各種認証情報 (パスワード、アクセスキー、MFA デバイスなど) のステータスが示された認証情報レポートを生成し、ダウンロードできます。パスワードおよびアクセスキーについては、パスワードやアクセスキーが最近いつ使用されたかが、認証情報レポートに表示されます。

## IAM ユーザーおよびアクセス許可
<a name="id_users_perms"></a>

デフォルトでは、新しい IAM ユーザーには、何かを実施するための[アクセス許可](access.md)がありません。AWS オペレーションの実行や AWS リソースへのアクセスを認可されていません。個々の IAM ユーザーを持つ利点は、アクセス許可を各ユーザーに個別に割り当てることができることです。管理アクセス許可を複数のユーザーに割り当てることができます。これらのユーザーは、AWS リソースを管理するだけでなく、他の IAM ユーザーを作成して管理することもできます。ただし、通常、ユーザーのアクセス許可はユーザーの作業に必要なタスク (AWS アクションまたはオペレーション) とリソースだけに制限します。

Diego というユーザーを想定します。IAM ユーザー `Diego` を作成する際には、そのパスワードを作成し、特定の Amazon EC2 インスタンスの開始と Amazon RDS データベース内のテーブルの情報の読み取り (`GET`) を行うことができるアクセス許可をアタッチします。IAM ユーザーを作成して初期認証情報とアクセス許可を付与する手順については、「[AWS アカウント で IAM ユーザーを作成する](id_users_create.md)」を参照してください。既存のユーザーのアクセス許可を変更する手順については、「[IAM ユーザーのアクセス許可を変更する](id_users_change-permissions.md)」を参照してください。ユーザーのパスワードやアクセスキーを変更する手順については、「[AWS のユーザーパスワード](id_credentials_passwords.md)」と「[IAM ユーザーのアクセスキーを管理します。](id_credentials_access-keys.md)」を参照してください。

IAM ユーザーにアクセス許可の境界を追加することもできます。アクセス許可の境界は、AWS 管理ポリシーを使用してアイデンティティベースのポリシーで IAM ユーザーまたはロールに付与できるアクセス許可の上限を設定できる高度な機能です。ポリシーのタイプと用途の詳細については、「[AWS Identity and Access Management でのポリシーとアクセス許可](access_policies.md)」を参照してください。

## IAM ユーザーとアカウント
<a name="id_users_accounts"></a>

各 IAM ユーザーが関連付けられる AWS アカウント は 1 つだけです。IAM ユーザーは AWS アカウント 内で定義されているため、AWS のファイルに対する支払方法を持つ必要はありません。アカウント内の IAM ユーザーユーザーが実行したすべての AWS アクティビティは、お客様のアカウントに請求されます。

AWS アカウントの IAM リソースの数とサイズには制限があります。詳細については、「[IAM と AWS STSクォータ](reference_iam-quotas.md)」を参照してください。

## IAM ユーザーとサービスアカウント
<a name="id_users_service_accounts"></a>

IAM ユーザーは、関連付けられた認証情報とアクセス権限を持つ、IAM のリソースです。IAM ユーザーは、認証情報を使用して AWS リクエストを行う人物またはアプリケーションを表すことができます。これは通常、*サービスアカウント*と呼ばれます。IAM ユーザーの長期的な認証情報を使用することを選択した場合は、**アプリケーションコードに直接アクセスキーを埋め込まないでください。**AWS SDK と AWS Command Line Interface では、既知のロケーションにアクセスキーを置くことができるため、コードで保持する必要はありません。詳細については、 「AWS 全般のリファレンス」の「[IAM ユーザーアクセスキーを適切に管理する](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html#iam-user-access-keys)」を参照してください。または、ベストプラクティスとして、[長期的なアクセスキーの代わりに一時的なセキュリティ認証情報 (IAM ロール) を使用できます](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html#use-roles)。

# IAM ユーザーが AWS にサインインする方法
<a name="id_users_sign-in"></a>

IAM ユーザーとして AWS マネジメントコンソール にサインインするには、ユーザー ID またはアカウントエイリアスを入力する必要があります。管理者がコンソールで IAM ユーザーを作成しましたにサインインすると、ユーザー名とアカウント ID またはアカウントエイリアスを含むアカウントサインインページの URL など、サインイン認証情報が送信されたはずです。

```
https://My_AWS_Account_ID.signin.aws.amazon.com/console/
```

**ヒント**  
ウェブブラウザでアカウントのサインインページのブックマークを作成するには、アカウントのサインイン URL を手動でブックマークエントリに入力する必要があります。ウェブブラウザのブックマーク機能は使用しないでください。リダイレクトによってサインイン URL が不明確になるからです。

また、次の一般サインインエンドポイントでサインインして、アカウント ID またはアカウントエイリアスを手動で入力することもできます。

```
[https://console.aws.amazon.com/](https://console.aws.amazon.com/)
```

利便性のため、AWS サインインページはブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。次回、ユーザーが任意のページに移動したとき、AWS マネジメントコンソール コンソールは Cookie を使用して、ユーザーをアカウントのサインインページにリダイレクトします。

管理者が IAM ユーザーIDに関連付けられているポリシーで指定した AWS リソースにのみアクセスできます。ユーザーがコンソールで操作するには、AWS リソースのリスト表示や作成など、コンソールが実行するアクションの実行権限が必要です。詳細については、[AWS リソースの アクセス管理](access.md)および[IAM アイデンティティベースのポリシーの例](access_policies_examples.md)を参照してください。

**注記**  
組織に既存のアイデンティティシステムがある場合は、Single Sign-On (SSO) オプションを作成することができます。SSO を使用すると、ユーザーは IAM ユーザーアイデンティティを持たなくてもアカウントの AWS マネジメントコンソール にアクセスできます。SSO では、ユーザーが組織のサイトにサインインしたり、AWS に個別にサインインする必要もなくなります。詳細については、「[AWS コンソールへのカスタム ID ブローカーアクセスを有効にする](id_roles_providers_enable-console-custom-url.md)」を参照してください。

**CloudTrail でのログ記録サインインの詳細**  
CloudTrail を有効化してログにサインインイベントを記録する場合、CloudTrail がイベントを記録する場所を選択するしくみを認識しておく必要があります。
+ ユーザーがコンソールに直接サインインすると、選択されたサービスのコンソールがリージョンをサポートするかどうかによって、グローバルまたはリージョンのサインインエンドポイントにリダイレクトされます。例えば、メインコンソールのホームページはリージョンをサポートするため、次の URL にサインインした場合:

  ```
  https://alias.signin.aws.amazon.com/console
  ```

  `https://us-east-2.signin.aws.amazon.com` などののリージョンのサインインエンドポイントにリダイレクトされ、そのリージョンのログでリージョンの CloudTrail ログエントリとなります。

  一方、Amazon S3 コンソールはリージョンをサポートしないため、次の URL にサインインした場合:

  ```
  https://alias.signin.aws.amazon.com/console/s3
  ```

  AWS により `https://signin.aws.amazon.com` にあるグローバルのサインインエンドポイントにリダイレクトされ、グローバルの CloudTrail ログエントリとなります。
+ リージョン対応のメインコンソールのホームページで次のような URL 構文を使ってサインインすることにより、手動で特定のリージョンのサインインエンドポイントをリクエストすることができます。

  ```
  https://alias.signin.aws.amazon.com/console?region=ap-southeast-1
  ```

  AWS により `ap-southeast-1` リージョンサインインエンドポイントにリダイレクトされ、そのリージョンの CloudTrail ログイベントとなります。

CloudTrail と IAM の詳細については、「[CloudTrail による IAM イベントのログ記録](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html)」を参照してください。

ユーザーが、アカウントの操作のためにプログラムによるアクセスが必要な場合は、各ユーザーにアクセスキーペア (アクセスキー ID とシークレットアクセスキー) を作成できます。ただし、ユーザーのアクセスキーを作成する前に検討すべきより安全な代替手段があります。詳細については、「AWS 全般のリファレンス」の「[長期的なアクセスキーの考慮事項と代替方法](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#alternatives-to-long-term-access-keys)」を参照してください。

## 追加リソース
<a name="id_users_sign-in-additional-resources"></a>

AWS サインインの詳細については、次のリソースを参照してください。
+ この[AWS サインインユーザーガイド](https://docs.aws.amazon.com/signin/latest/userguide/what-is-sign-in.html)は、ユーザーのタイプに応じて、Amazon Web Services (AWS) にサインインするさまざまな方法を理解するのに役立ちます。
+ AWS マネジメントコンソール では、1 つのウェブブラウザで最大 5 つの異なる ID を同時にサインインできます。詳細については、「*AWS マネジメントコンソール 入門ガイド*」の「[複数の入門ガイドアカウントへのサインイン](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/multisession.html)」を参照してください。

# MFA 対応のサインイン
<a name="console_sign-in-mfa"></a>

[多要素認証 (MFA)](id_credentials_mfa.md) デバイスで構成されているユーザーは、MFA デバイスを使用して AWS マネジメントコンソール にサインインする必要があります。ユーザーがサインイン認証情報を入力した後、AWS はそのユーザーのアカウントを調べ、そのユーザーに MFA が必要かどうかを確認します。

**重要**  
AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) API コールでの AWS マネジメントコンソールへの直接アクセスにアクセスキーとシークレットキーの認証情報を使用する場合、MFA は必要ありません。詳細については、「[コンソールアクセスでのアクセスキーとシークレットキー認証情報の使用](securing_access-keys.md#console-access-security-keys)」を参照してください。

以下のトピックでは、MFA が必要なときにユーザーがサインインを完了する方法について説明します。

**Topics**
+ [複数の MFA デバイスが有効になっている](#console_sign-in-multiple-mfa)
+ [FIDO セキュリティキー](#console_sign-in-mfa-fido)
+ [仮想 MFA デバイス](#console_sign-in-mfa-virtual)
+ [ハードウェア TOTP トークン](#console_sign-in-mfa-hardware)

## 複数の MFA デバイスが有効になっている
<a name="console_sign-in-multiple-mfa"></a>

ユーザーが AWS アカウント で複数の MFA デバイスを有効にした状態で、そのアカウントのルートユーザーまたは IAM ユーザーとして AWS マネジメントコンソール にログインする場合でも、サインインに必要な MFA デバイスは 1 台のみです。パスワードによる認証を行ったユーザーは、使用する MFA デバイスタイプを選択し認証を完了します。その後、ユーザーは、選択したタイプのデバイスを使用した認証を求められます。

## FIDO セキュリティキー
<a name="console_sign-in-mfa-fido"></a>

MFA がユーザーに必要な場合は、2 番目のサインインページが表示されます。ユーザーは FIDO セキュリティキーをタップする必要があります。

**注記**  
Google Chrome をお使いの方は、**[Verify your identity with amazon.com]** (amazon.comで本人確認をしてください) と要求するポップアップが表示されますが、いずれのオプションも選択しないようにしてください。セキュリティキーをタップするだけでよいのです。

他の MFA デバイスとは異なり、FIDO のセキュリティキーは同期しなくなります。管理者は、FIDO セキュリティキーを紛失したり壊れたりした場合、そのキーを無効にすることができます。詳細については、「[MFA デバイスの無効化 (コンソール)](id_credentials_mfa_disable.md#deactive-mfa-console)」を参照してください。

WebAuthn をサポートするブラウザーおよび、AWS がサポートする FIDO 対応デバイスについては、「[パスキーとセキュリティキーを使用するためのサポートされる設定](id_credentials_mfa_fido_supported_configurations.md)」を参照してください。

## 仮想 MFA デバイス
<a name="console_sign-in-mfa-virtual"></a>

MFA がユーザーに必要な場合は、2 番目のサインインページが表示されます。[**MFA code (MFA コード)**] ボックスに、ユーザーは MFA アプリケーションから提供される数値コードを入力する必要があります。

MFA コードが正しい場合、ユーザーは AWS マネジメントコンソール にアクセスできます。このコードが間違っていると、ユーザーは別のコードで再試行できます。

仮想 MFA デバイスが同期しなくなることがあります。ユーザーが AWS マネジメントコンソール へのサインインを何度か試みて失敗した場合、仮想 MFA デバイスを同期するよう求められます。ユーザーは画面の指示に従って仮想 MFA デバイスを同期できます。お客様の AWS アカウント のユーザーに代わってデバイスを同期する方法については、「[仮想 MFA デバイスとハードウェア MFA デバイスを再同期する](id_credentials_mfa_sync.md)」を参照してください。

## ハードウェア TOTP トークン
<a name="console_sign-in-mfa-hardware"></a>

MFA がユーザーに必要な場合は、2 番目のサインインページが表示されます。ユーザーは、**[MFA code]** (MFA コード) ボックスに、ハードウェア TOTP トークンから提供される数値コードを入力する必要があります。

MFA コードが正しい場合、ユーザーは AWS マネジメントコンソール にアクセスできます。このコードが間違っていると、ユーザーは別のコードで再試行できます。

ハードウェア TOTP トークンは、同期から外れることはありません。AWS マネジメントコンソール へのサインインが、複数回連続して失敗したユーザーに対しては、MFA トークンデバイスと同期するように求められます。ユーザーは画面の指示に従って MFA トークンデバイスを同期できます。お客様の AWS アカウント のユーザーに代わってデバイスを同期する方法については、「[仮想 MFA デバイスとハードウェア MFA デバイスを再同期する](id_credentials_mfa_sync.md)」を参照してください。

# AWS アカウント で IAM ユーザーを作成する
<a name="id_users_create"></a>

**重要**  
 IAM [ベストプラクティス](best-practices.md)では、長期的な認証情報を持つIAMユーザーを使用するのではなく、一時的な認証情報を使用して AWS にアクセスするために、IDプロバイダーとのフェデレーションを使用することを人間ユーザーに求めることを推奨します。IAM ユーザーは、フェデレーションユーザーでサポートされていない[特定のユースケース](gs-identities-iam-users.md)にのみ使用することをお勧めします。

IAM ユーザーを作成して、このユーザーにタスクの実行を許可するステップは次のとおりです。

1. [ユーザーを AWS マネジメントコンソール、AWS CLI](getting-started-workloads.md)、Tools for Windows PowerShell で、または AWS API オペレーションを使用して作成します。AWS マネジメントコンソール でユーザーを作成する場合は、選択内容に基づいてステップ 1 ～ 4 が自動的に処理されます。IAM ユーザーをプログラムにより作成した場合、各ステップを別個に実行する必要があります。

1. ユーザーに必要なアクセスのタイプに応じてユーザーの認証情報を作成します。
   + **[コンソールアクセスを有効にする - オプション]**: ユーザーが AWS マネジメントコンソール にアクセスする必要がある場合は、[該当ユーザーのパスワードを作成します](id_credentials_passwords_admin-change-user.md)。ユーザーのコンソールアクセスを無効にすると、ユーザー名とパスワードを使用して AWS マネジメントコンソール にサインインできなくなります。アクセス許可を変更したり、想定されたロールを使用してコンソールにアクセスすることを妨げたりすることはありません。
**ヒント**  
ユーザーが必要とする認証情報のみを作成します。例えば、AWS マネジメントコンソール を介したアクセスのみ必要なユーザーには、アクセスキーを作成しないでください。

1. 必要なタスクを実行するためのアクセス許可をユーザーに付与します。IAM ユーザーをグループに配置し、アクセス許可の管理は、グループにアタッチされているポリシーを通して行うことをお勧めします。ただし、アクセス許可ポリシーをユーザーに直接アタッチして、アクセス許可を付与することもできます。コンソールを使用してユーザーを追加する場合は、既存のユーザーから新しいユーザーにアクセス許可をコピーできます。

   ユーザーが持つことのできる最大アクセス許可を定義するポリシーを指定することで、[アクセス許可の境界](access_policies_boundaries.md)を追加してユーザーのアクセス許可を制限することもできます。アクセス許可の境界は、アクセス許可を付与しません。

   アクセス許可の付与またはアクセス許可の境界の設定に使用するカスタムアクセス許可ポリシーを作成する手順については、「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](access_policies_create.md)」を参照してください。

1. (オプション) タグをアタッチして、メタデータをユーザーに追加します。IAM におけるタグの使用の詳細については、「[AWS Identity and Access Management リソースのタグ](id_tags.md)」を参照してください。

1. 必要なサインイン情報をユーザーに提供します。この情報には、ユーザーがアカウントのサインインページで認証情報として入力するパスワードやコンソールの URL が含まれます。詳細については、「[IAM ユーザーが AWS にサインインする方法](id_users_sign-in.md)」を参照してください。

1. (オプション) ユーザーの [多要素認証 (MFA)](id_credentials_mfa.md) を設定します。MFA では、ユーザーが AWS マネジメントコンソール にサインインするたびに 1 回限り使用のコードを入力することが求められます。

1. (オプション) IAM ユーザーに自分の認証情報を管理する権限を与えることができます。(デフォルト設定では、自身の認証情報を管理する権限は、IAM ユーザーにはありません。) 詳細については、「[IAM ユーザーに自分のパスワード変更を許可する](id_credentials_passwords_enable-user-change.md)」を参照してください。
**注記**  
コンソールを使用してユーザーを作成し、**[ユーザーは次回サインイン時に新しいパスワードを作成する必要があります (推奨)]** を選択した場合、ユーザーには必要なアクセス許可が付与されます。

ユーザーの作成に必要なアクセス許可の詳細については、「[他の IAM リソースにアクセスするのに必要なアクセス許可](access_permissions-required.md)」を参照してください。

特定のユースケースのために IAM ユーザーを作成する手順については、次のトピックを参照してください。
+ [緊急アクセス用の IAM ユーザーを作成する](getting-started-emergency-iam-user.md)
+ [IAM ロールを使用できないワークロード用の IAM ユーザーを作成する](getting-started-workloads.md)

# IAM ユーザーを表示する
<a name="id_users_list"></a>

IAM ユーザーを一覧表示するには、AWS アカウント または特定の IAM グループで、ユーザーが属するすべてのユーザーグループを一覧表示します。ユーザーの一覧表示に必要な権限の詳細については、「[他の IAM リソースにアクセスするのに必要なアクセス許可](access_permissions-required.md)」を参照してください。

## アカウント内のすべての IAM ユーザーを一覧表示するには
<a name="id_users_manage_list-users"></a>

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

コンソールには、AWS アカウント 内の IAM ユーザーが表示されます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ `[aws iam list-users](https://docs.aws.amazon.com/cli/latest/reference/iam/list-users.html)`

------
#### [ API ]

次のオペレーションを呼び出します。
+ `[ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)` 

------

## IAM グループ内の IAM ユーザーを一覧表示するには
<a name="id_users_manage_list-users-group"></a>

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで、**[ユーザーグループ]** を選択します。

1. ユーザーグループの名前を選択します。

グループのメンバーである IAM ユーザーが **[ユーザー]** タブに一覧表示されます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ `[aws iam get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html)`

------
#### [ API ]

次のオペレーションを呼び出します。
+ `[GetGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html)` 

------

## ユーザーが所属しているすべての IAM グループを一覧表示するには
<a name="id_users_manage_list-groups-users"></a>

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[Users]** (ユーザー) のリストで、IAM ユーザー名を選択します。

1. **[グループ]** タブを選択すると、現在のユーザーを含めるグループのリストが表示されます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ `[aws iam list-groups-for-user](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups-for-user.html)`

------
#### [ API ]

次のオペレーションを呼び出します。
+ `[ListGroupsForUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html)` 

------

## 次のステップ
<a name="id_users_list-next-steps"></a>

IAM ユーザーのリストを取得したら、次の手順で IAM ユーザー名を変更、削除、または非アクティブ化できます。
+ [IAM ユーザー名を変更する](id_users_rename.md)
+ [IAM ユーザーを削除または非アクティブ化する](id_users_remove.md)

# IAM ユーザー名を変更する
<a name="id_users_rename"></a>

**注記**  
[ベストプラクティス](best-practices.md)として、一時的な認証情報の使用により AWS にアクセスするには、人間のユーザーに対して ID プロバイダーとのフェデレーションの使用を必須とすることをお勧めします。ベストプラクティスに従えば、IAM ユーザーやグループを管理することにはなりません。管理するのではなく、ユーザーとグループは AWS の外部で管理され、フェデレーション ID として AWS リソースにアクセスできます。フェデレーション ID は、エンタープライズユーザーディレクトリ、ウェブ ID プロバイダー、AWS Directory Service、Identity Center ディレクトリのユーザー、または ID ソースから提供された認証情報を使用して AWS のサービスにアクセスするユーザーです。フェデレーション ID は、ID プロバイダーが定義したグループを使用します。AWS IAM アイデンティティセンター を使用している場合は、IAM Identity Center でのユーザーとグループの作成に関する情報について、AWS IAM アイデンティティセンター ユーザーガイドの「[Manage identities in IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-sso.html)」(IAM Identity Center での ID の管理) を参照してください。

Amazon Web Services には、AWS アカウント の IAM ユーザーを管理するための複数のツールが用意されています。アカウントまたは特定のグループの IAM ユーザーを一覧表示したり、ユーザーが属するすべての IAM グループを一覧表示したりできます。また、IAM ユーザーの名前変更やパスの変更をしたりできます。IAM ユーザーではなくフェデレーション ID の使用に移行している場合は、AWS アカウントから IAM ユーザーを削除したり、ユーザーを非アクティブ化したりできます。

IAM ユーザーの管理ポリシーの追加、変更、または削除の詳細については、「[IAM ユーザーのアクセス許可を変更する](id_users_change-permissions.md)」を参照してください。IAM ユーザーのインラインポリシーの管理の詳細については、「[IAM ID のアクセス許可の追加および削除](access_policies_manage-attach-detach.md)」、「[IAM ポリシーを編集する](access_policies_manage-edit.md)」、および「[IAM ポリシーを削除する](access_policies_manage-delete.md)」を参照してください。ベストプラクティスとして、インラインポリシーではなく管理ポリシーを使用します。AWS 管理ポリシーでは、多くの一般的ユースケースでアクセス許可を付与します。AWS 管理ポリシーは、すべての AWS のユーザーが使用できるため、特定のユースケースに対して最小特権のアクセス許可が付与されない場合があることに留意してください。そのため、ユースケースに応じた[カスタマー管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)を定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、「[AWS マネージドポリシー](access_policies_managed-vs-inline.md#aws-managed-policies)」を参照してください。特定のジョブ機能用に設計された AWS 管理ポリシーの詳細については、[AWSジョブ機能の 管理ポリシー](access_policies_job-functions.md) を参照してください。

IAM ポリシーの検証の詳細については、「[IAM ポリシーの検証](access_policies_policy-validator.md)」を参照してください。

**ヒント**  
[IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) では、IAM ロールが使用するサービスとアクションを分析し、使用可能なきめ細かなポリシーを生成できます。生成された各ポリシーをテストしたら、ポリシーを本番環境にデプロイできます。これにより、ワークロードに必要なアクセス許可のみが付与されます。ポリシー生成の詳細については、「[IAM Access Analyzer ポリシーの生成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)」を参照してください。

IAM ユーザーパスワードの管理に関する詳細については、「[IAM ユーザーのパスワードを管理する](id_credentials_passwords_admin-change-user.md)」を参照してください。

## IAM ユーザーの名前の変更
<a name="id_users_renaming"></a>

ユーザーの名前またはパスを変更するには、AWS CLI、Tools for Windows PowerShell または AWS API を使用する必要があります。コンソールに、ユーザーの名前を変更するためのオプションはありません。ユーザーの名前の変更に必要なアクセス許可の詳細については、「[他の IAM リソースにアクセスするのに必要なアクセス許可](access_permissions-required.md)」を参照してください。

ユーザーの名前またはパスを変更すると、以下のことが起こります。
+ ユーザーにアタッチされているポリシーは、新しい名前のユーザーにそのままアタッチされています。
+ ユーザーは名前が変わるだけで、所属する IAM グループは変わりません。
+ ユーザーの一意の ID は変更されません。一意の ID の詳細については、「[一意の識別子](reference_identifiers.md#identifiers-unique-ids)」を参照してください。
+ ユーザーを*プリンシパル* (このユーザーにはアクセスが許可されます) として参照しているリソースやロールのポリシーは、新しい名前またはパスを使用するように自動的に更新されます。例えば、Amazon S3 内のキューベースのポリシー、または Amazon SQS 内のリソースベースのポリシーは、新しい名前またはパスを使用するように自動的に更新されます。

IAM は、ユーザーを*リソースとして*参照しているポリシーを、自動的に更新しません。新しい名前またはパスを使用するには、手動で更新する必要があります。例えば、`Richard` というユーザーに自身の認証情報の管理を許可するポリシーがアタッチされているとします。名前を `Richard` から `Rich` に変更する場合、管理者はそのポリシーを更新して、次のリソースを

```
arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Richard
```

次のように変更する必要があります。

```
arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Rich
```

パスを変更する場合も同様です。管理者は、ユーザーの新しいパスを反映するようにポリシーを更新する必要があります。

### ユーザーの名前を変更するには
<a name="id_users_manage_list-users-rename"></a>
+ AWS CLI: [aws iam update-user](https://docs.aws.amazon.com/cli/latest/reference/iam/update-user.html)
+ AWS API: [UpdateUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html) 

# IAM ユーザーを削除または非アクティブ化する
<a name="id_users_remove"></a>

[ベストプラクティス](best-practices.md#remove-credentials)では、AWS アカウント から未使用の IAM ユーザーを削除することが推奨されています。IAM ユーザーの認証情報を将来使用するために保持する場合は、アカウントから削除する代わりに、ユーザーのアクセス許可を非アクティブ化できます。詳細については、「[IAM ユーザーの非アクティブ化](#id_users_deactivating)」を参照してください。

**警告**  
削除したIAM ユーザーとアクセスキーは復元または復旧できません。

## 前提条件 — IAM ユーザーアクセスを表示する
<a name="users-manage_prerequisites"></a>

ユーザーを削除する前に、そのユーザーが最近行ったサービスレベルのアクティビティを確認してください。これにより、それを使用しているプリンシパル (ユーザーまたはアプリケーション) からアクセスを削除することを防止できます。最後にアクセスした情報を表示する方法の詳細については、「[最終アクセス情報を使用して AWS のアクセス許可を調整する](access_policies_last-accessed.md)」を参照してください。

## IAM ユーザーを削除する (コンソール)
<a name="id_users_deleting_console"></a>

AWS マネジメントコンソールを使用して IAM ユーザーを削除すると、関連付けられている以下の情報が IAM によって自動的に削除されます。
+ IAM ユーザー識別子
+ すべてのグループメンバシップ (つまり、IAM ユーザーは、メンバーとして所属していたすべてのグループから削除されます)
+ IAM ユーザーのパスワード 
+ IAM ユーザーに組み込まれていたすべてのインラインポリシー (ユーザーグループのアクセス許可を使用して IAM ユーザーに適用されているポリシーは影響を受けません) 
**注記**  
IAM は、ユーザーを削除すると、IAM ユーザーにアタッチされた管理ポリシーをすべて削除しますが、管理ポリシーは削除しません。
+ 関連する MFA デバイス

### IAM ユーザーを削除するには (コンソール)
<a name="id_users_remove-section-1"></a>

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで、**[ユーザー]** を選択し、削除する IAM ユーザー名の横にあるチェックボックスをオンにします。

1. ページの上部で、[**削除**] を選択します。
**注記**  
いずれかのユーザーにアクティブなアクセスキーがある場合は、ユーザーを削除する前にアクセスキーを非アクティブ化する必要があります。詳細については、「[IAM ユーザーのためにアクセスキーを非アクティブ化するには](access-keys-admin-managed.md#admin-deactivate-access-key)」を参照してください。

1. 確認ダイアログボックスで、テキスト入力フィールドにユーザー名を入力し、ユーザーの削除を確認します。**[削除]** を選択します。

コンソールには、IAM ユーザーが削除されたというステータス通知が表示されます。

------

## IAM ユーザーの削除 (AWS CLI)
<a name="id_users_deleting_cli"></a>

AWS CLI を使用して IAM ユーザーを削除する場合、AWS マネジメントコンソールの場合とは異なり、IAM ユーザーにアタッチされている項目を削除する必要があります。この手順では、そのプロセスについて説明します。

**AWS アカウント から IAM ユーザーを削除するには (AWS CLI)**

1. ユーザーのパスワード（使用していた場合）を削除します。

   `[aws iam delete-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-login-profile.html)`

1. ユーザーのアクセスキーを削除します (使用していた場合)。

   `[aws iam list-access-keys](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)` (ユーザーのアクセスキーを一覧表示するには) および `[aws iam delete-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)`

1. ユーザーの署名証明書を削除します。認証情報を削除すると、完全に削除され、復元できないことに注意してください。

   `[aws iam list-signing-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-signing-certificates.html)` (ユーザーの署名証明書を一覧表示するには) および `[aws iam delete-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-signing-certificate.html)`

1. ユーザーの SSH パブリックキーを削除します (使用していた場合)。

   `[aws iam list-ssh-public-keys](https://docs.aws.amazon.com/cli/latest/reference/iam/list-ssh-public-keys.html)` (ユーザーの SSH パブリックキーを一覧表示するには) および `[aws iam delete-ssh-public-key](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-ssh-public-key.html)`

1. ユーザーの Git 認証情報を削除します。

   `[aws iam list-service-specific-credentials](https://docs.aws.amazon.com/cli/latest/reference/iam/list-service-specific-credentials.html)` (ユーザーの Git 認証情報を一覧表示するには) および `[aws iam delete-service-specific-credential](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-specific-credential.html)`

1. ユーザーの 多要素認証 (MFA) デバイスを無効にします (使用していた場合)。

   `[aws iam list-mfa-devices](https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-devices.html)` (ユーザーの MFA デバイスを一覧表示するには)、`[aws iam deactivate-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html)` (デバイスを無効にするには)、`[aws iam delete-virtual-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html)` (仮想 MFA デバイスを完全に削除するには) 

1. ユーザーのインラインポリシーを削除します。

   `[aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)` (ユーザーのインラインポリシーを一覧表示するには) および [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html) (ポリシーをさくじょするには) 

1. ユーザーにアタッチされているすべての管理ポリシーをデタッチします。

   `[aws iam list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)` (ユーザーにアタッチされているポリシーを一覧表示するには) および [https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html) (ポリシーをデタッチするには) 

1. すべての IAM グループからユーザーを削除します。

   `[aws iam list-groups-for-user](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups-for-user.html)` (ユーザーが属する IAM グループを一覧表示するには) および `[aws iam remove-user-from-group](https://docs.aws.amazon.com/cli/latest/reference/iam/remove-user-from-group.html)` 

1. ユーザーを削除します。

   `[aws iam delete-user](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user.html)` 

## IAM ユーザーの非アクティブ化
<a name="id_users_deactivating"></a>

IAM ユーザーが一時的に会社から離れるときは、そのユーザーを非アクティブ化する必要がある場合があります。IAM ユーザー認証情報を現状のままにしておき、AWS のアクセスをブロックすることができます。

ユーザーを非アクティブ化するには、AWS へのユーザーアクセスを拒否するポリシーを作成してアタッチします。ユーザーアクセスは後で復元できます。

ユーザーにアタッチしてアクセスを拒否できるポリシーを 2 例紹介します。

次のポリシーには期限を設けていません。ユーザーのアクセスを復元するには、ポリシーを削除する必要があります。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [ 
      {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*"
      } 
   ]
}
```

------

次のポリシーには、2024 年 12 月 24 日午後 11 時 59 分 (UTC) にポリシーを開始し、2025 年 2 月 28 日午後 11 時 59 分 (UTC) にポリシーを終了するという条件があります。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
          "DateGreaterThan": {"aws:CurrentTime": "2024-12-24T23:59:59Z"},
          "DateLessThan": {"aws:CurrentTime": "2025-02-28T23:59:59Z"}
          }
       }
   ]
}
```

------

# AWS マネジメントコンソール への IAM ユーザーアクセスを制御する
<a name="console_controlling-access"></a>

AWS マネジメントコンソール を使用して AWS アカウント にサインインするアクセス許可を持つ IAM ユーザーは、AWS リソースにアクセスできます。以下の一覧は、AWS マネジメントコンソール を通じて AWS アカウント リソースへのアクセス権限を IAM ユーザーに付与する方法を示しています。また、AWS ウェブサイトを通じて、AWS アカウントの他の機能に IAM ユーザーがアクセスする方法も示しています。

**注記**  
IAM の使用は無料です。

**AWS マネジメントコンソール**  
AWS マネジメントコンソール にアクセスする必要がある各 IAM ユーザーのパスワードを作成します。ユーザーは、IAM 対応の AWS アカウント サインインページから、コンソールにアクセスします。サインインページへのサインインについての詳細は、「AWS サインイン ユーザーガイド」の「[AWS にサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。パスワード作成の詳細については、[AWS のユーザーパスワード](id_credentials_passwords.md)を参照してください。  
パスワードを削除することで、AWS マネジメントコンソール への IAM ユーザーアクセスを無効にできます。これにより、サインイン認証情報を使用して AWS マネジメントコンソール にサインインすることができなくなります。権限を変更したり、引き受けたロールを使用してコンソールにアクセスできないようにしたりすることはありません。ユーザーがアクティブなアクセスキーを持っている場合、それらのキーは引き続き機能し、AWS CLI、Tools for Windows PowerShell、AWS API、またはAWS Console Mobile Application 用のツールを介したアクセスを許可します。

**Amazon EC2 インスタンス、Amazon S3 バケットなどの AWS リソース**  
IAM ユーザーがパスワードを持っている場合も、AWS リソースにアクセスするにはアクセス許可が必要です。お客様が IAM ユーザーを作成した際、デフォルトではそのユーザーにアクセス許可はありません。必要なアクセス許可を IAM ユーザーに付与するには、ユーザーにポリシーをアタッチします。多数の IAM ユーザーが同じリソースで同じタスクを実行する場合、これらの IAM ユーザーをグループに割り当てることができます。次に、そのグループにアクセス許可を割り当てることができます。IAM ユーザーおよびグループの作成の詳細については、「[IAM アイデンティティ](id.md)」を参照してください。ポリシーを使用するアクセス許可設定の詳細については、[AWS リソースの アクセス管理](access.md)を参照してください。

**AWS ディスカッションフォーラム**  
[AWS ディスカッションフォーラム](https://forums.aws.amazon.com/)への投稿は、どなたでもお読みいただけます。ユーザーが質問やコメントを AWS ディスカッションフォーラムに投稿する場合は、自分のユーザーネームを使用することができます。ユーザーが初めて AWS ディスカッションフォーラムに投稿する場合、ユーザーはニックネームおよび E メールアドレスを入力するように求められます。AWS ディスカッションフォーラムでそのニックネームを使用できるのは、そのユーザーのみです。

**AWS アカウント の請求および使用情報**  
ユーザーに、AWS アカウント の請求および使用情報へのアクセスを許可することができます。詳細については、[AWS Billing ユーザーガイド](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/control-access-billing.html) の「*請求情報へのアクセスのコントロール*」を参照してください。

**AWS アカウント プロファイル情報**  
ユーザーが AWS アカウント のプロファイル情報にアクセスすることはできません。

**AWS アカウント セキュリティ認証情報**  
ユーザーが AWS アカウント のセキュリティ認証情報にアクセスすることはできません。

**注記**  
IAM ポリシーによるアクセスコントロールは、インターフェイスとは関係ありません。たとえば、AWS マネジメントコンソール にアクセスするパスワードをユーザーに提供できます。AWS マネジメントコンソール 内におけるユーザーのアクションを、ユーザー (またはユーザーが属するグループ) のポリシーで制御することができます。または、AWS への API コールを実行するための AWS アクセスキーをユーザーに提供することもできます。これらのアクセスキーを認証に使用するライブラリまたはクライアントを通じてユーザーが呼び出すことのできるアクションをポリシーで制御することもできます。

# IAM ユーザーのアクセス許可を変更する
<a name="id_users_change-permissions"></a>

AWS アカウント 内の IAM ユーザーのアクセス許可を変更するには、グループメンバーシップを変更するか、既存のユーザーからアクセス許可をコピーするか、ユーザーに直接ポリシーをアタッチするか、または[アクセス許可の境界](access_policies_boundaries.md)を設定することができます。アクセス許可の境界では、ユーザーに許可されるアクセス許可の上限を設定します。アクセス許可の境界は AWS のアドバンスド機能です。

ユーザーのアクセス権限の変更に必要なアクセス権限の詳細については、「[他の IAM リソースにアクセスするのに必要なアクセス許可](access_permissions-required.md)」を参照してください。

**Topics**
+ [ユーザーアクセスの表示](#users-modify_prerequisites)
+ [ユーザーのアクセスアクティビティに基づくポリシーの生成](#users_change_permissions-gen-policy)
+ [ユーザーへのアクセス許可の追加 (コンソール)](#users_change_permissions-add-console)
+ [ユーザーのアクセス許可の変更 (コンソール)](#users_change_permissions-change-console)
+ [ユーザーからのアクセス許可ポリシーを削除するには (コンソール)](#users_change_permissions-remove-policy-console)
+ [ユーザーからアクセス許可の境界を削除するには (コンソール)](#users_change_permissions-remove-boundary-console)
+ [ユーザーのアクセス許可の追加と削除 (AWS CLI または AWS API)](#users_change_permissions-add-programmatic)

## ユーザーアクセスの表示
<a name="users-modify_prerequisites"></a>

ユーザーのアクセス許可を変更する前に、サービスレベルの最近のアクティビティを確認する必要があります。これは、アクセス権を使用しているプリンシパル (ユーザーまたはアプリケーション) から削除しないようにするために重要です。最後にアクセスした情報を表示する方法の詳細については、「[最終アクセス情報を使用して AWS のアクセス許可を調整する](access_policies_last-accessed.md)」を参照してください。

## ユーザーのアクセスアクティビティに基づくポリシーの生成
<a name="users_change_permissions-gen-policy"></a>

IAM エンティティ (ユーザーまたはロール) に必要な権限を超えるアクセス許可を付与することがあります。付与するアクセス権限を調整するために、エンティティのアクセスアクティビティに基づく IAM ポリシーを生成できます。IAM Access Analyzer は AWS CloudTrail ログを確認し、指定した日付範囲内のロールが使用したアクセス許可を含むポリシーテンプレートを生成します。テンプレートを使用して、きめ細かなアクセス権限で管理ポリシーを作成し、それを IAM エンティティにアタッチできます。これにより、特定のユースケースでロールが AWS リソースとインタラクションするために必要なアクセス権限のみを付与します。詳細については、「[IAM Access Analyzer ポリシーの生成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)」を参照してください。

## ユーザーへのアクセス許可の追加 (コンソール)
<a name="users_change_permissions-add-console"></a>

IAM では 3 つの方法でユーザーにアクセス許可ポリシーを追加できます。
+ **IAM ユーザーを IAM グループに追加する** – IAM ユーザーをグループのメンバーにします。グループのポリシーがユーザーにアタッチされます。
+ **既存の IAM ユーザーからアクセス許可をコピーする** – すべてのグループメンバーシップ、アタッチされた管理ポリシー、インラインポリシー、および既存のアクセス許可の境界をソースユーザーからコピーします。
+ **ポリシーを IAM ユーザーに直接アタッチする** – 管理ポリシーをユーザーに直接アタッチします。アクセス許可の管理を簡単にするために、ポリシーをグループにアタッチしてから、IAM ユーザーを適切なグループのメンバーにします。

**重要**  
ユーザーにアクセス許可の境界が設定されている場合は、アクセス許可の境界で許可されている以上のアクセス許可をユーザーに追加することはできません。

### IAM ユーザーをグループに追加することによってアクセス許可を追加するには
<a name="users_change_permissions-add-group-console"></a>

IAM ユーザーを IAM グループに追加すると、ユーザーのアクセス許可が、そのグループに対して定義されたアクセス許可に更新されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[Users]** (ユーザー) のリストで、IAM ユーザー名を選択します。

1. **[グループ]** タブを選択すると、現在のユーザーを含めるグループのリストが表示されます。

1. **グループにユーザーを追加** を選択します。

1. ユーザーが参加する各グループのチェックボックスをオンにします。リストには、各グループの名前と、そのグループのメンバーとなった場合にユーザーが受け取るポリシーが表示されます。

1. (オプション) **[グループを作成]** を選択して、新しいグループを定義できます。これは、既存のグループとは異なるポリシーがアタッチされているグループにユーザーを追加する場合に便利です。

   1. 新しいタブで、**[ユーザーグループ名]** に新しいグループの名前を入力します。
**注記**  
AWS アカウントの IAM リソースの数とサイズには制限があります。詳細については、「[IAM と AWS STSクォータ](reference_iam-quotas.md)」を参照してください。グループ名は、最大 128 文字の英数字、プラス記号 (\$1)、等号 (=)、カンマ (,)、ピリオド (.)、アットマーク (@)、ハイフン (-) を組み合わせて指定します。名前はアカウント内で一意である必要があります。大文字と小文字は区別されません。例えば、*TESTGROUP* というグループと *testgroup* というグループを作成することはできません。

   1. グループにアタッチする管理ポリシーのチェックボックスを 1 つ以上オンにします。[**ポリシーの作成**] を選択して、新しい管理ポリシーを作成することもできます。その場合は、新しいポリシーが完成したらこのブラウザタブまたはウィンドウに戻り、[**Refresh (更新)**] を選択した後、グループにアタッチする新しいポリシーを選択します。詳細については、「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](access_policies_create.md)」を参照してください。

   1. **[ユーザーグループの作成]** を選択します。

   1. 元のタブに戻り、グループのリストを更新します。次に、新しいグループのチェックボックスをオンにします。

1. **[グループにユーザーを追加]** を選択します。

コンソールには、指定したグループにユーザーが追加されたことを示すステータスメッセージが表示されます。

------

### 別の IAM ユーザーにコピーすることによってアクセス許可を追加するには
<a name="users_change_permissions-add-copy-console"></a>

アクセス許可をコピーして IAM ユーザーにアクセス許可を追加すると、IAM は、指定されたユーザーからすべてのグループメンバーシップ、アタッチされた管理ポリシー、インラインポリシー、および既存のアクセス許可の境界をコピーして、現在選択されているユーザーにすぐに適用します。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[Users]** (ユーザー) のリストで、IAM ユーザー名を選択します。

1. **[アクセス許可]** タブで、**[アクセス許可を追加]** を選択します。

1. **[アクセス許可を追加]** ページで、**[アクセス許可をコピー]** を選択します。リストには、使用可能な IAM ユーザーと、そのグループメンバーシップ、アタッチされたポリシーが表示されます。

1. コピーするアクセス権限を持つユーザーの横のラジオボタンをオンにします。

1. **[次へ]** を選択して、ユーザーに加える変更のリストを表示します。次に、[**アクセス許可の追加**] を選択します。

コンソールには、指定した IAM ユーザーからアクセス許可がコピーされたことを示すステータスメッセージが表示されます。

------

### ポリシーを IAM ユーザーに直接アタッチすることによってアクセス権限を追加するには
<a name="users_change_permissions-add-directly-console"></a>

管理ポリシーは IAM ユーザーに直接アタッチできます。更新されたアクセス許可はすぐに適用されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[Users]** (ユーザー) のリストで、IAM ユーザー名を選択します。

1. **[アクセス許可]** タブで、**[アクセス許可を追加]** を選択します。

1. **[アクセス許可を追加]** ページで、**[ポリシーを直接アタッチ]** を選択します。**[アクセス許可ポリシー]** リストには、使用可能なポリシーとそのポリシータイプ、アタッチされたエンティティが表示されます。

1. アタッチする **[ポリシー名]** の横にあるラジオボタンを選択します。

1. **[次へ]** を選択して、ユーザーに加える変更のリストを表示します。次に、[**アクセス許可の追加**] を選択します。

コンソールには、指定した IAM ユーザーにポリシーが追加されたことを示すステータスメッセージが表示されます。

------

### IAM ユーザーのアクセス許可の境界を設定するには
<a name="users_change_permissions-set-boundary-console"></a>

アクセス許可の境界は、AWS のアクセス許可を管理するための高度な機能であり、IAM ユーザーが持つことができるアクセス許可の上限を設定するために使用されます。アクセス許可の境界を設定すると、付与された他のアクセス許可に関係なく、IAM ユーザーのアクセス許可が直ちに境界に制限されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[ユーザー]** リストで、アクセス許可の境界を変更する対象の IAM ユーザーの名前を選択します。

1. **[アクセス許可]** タブを選択します。必要に応じて、**[アクセス許可の境界]** セクションを開き、**[境界の設定]** を選択します。

1. **[アクセス許可の境界を設定]** ページの **[アクセス許可ポリシー]** で、アクセス許可の境界に使用するポリシーを選択します。

1. [**Set boundary (境界の設定)**] を選択します。

コンソールには、アクセス許可の境界が追加されたことを示すステータスメッセージが表示されます。

------

## ユーザーのアクセス許可の変更 (コンソール)
<a name="users_change_permissions-change-console"></a>

IAM では、次の方法でユーザーに関連付けられているアクセス許可を変更できます。
+ **アクセス許可ポリシーの編集** – ユーザーのインラインポリシーまたはユーザーのグループのインラインポリシーを編集するか、ユーザーにアタッチされている管理ポリシーを直接またはグループを介して編集します。ユーザーにアクセス許可の境界が設定されている場合は、アクセス許可の境界で使用されているポリシーで許可される以上のアクセス許可をユーザーに付与することはできません。
+ **アクセス許可の境界の変更** – ユーザーのアクセス許可の境界として使用されているポリシーを変更します。この変更に伴って、ユーザーに許可されるアクセス許可の上限が拡張または縮小される場合があります。

### ユーザーにアタッチされているアクセス許可ポリシーの編集
<a name="users_change_permissions-edit-policy-console"></a>

アクセス許可を変更すると、ユーザーのアクセス許可がすぐに更新されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[ユーザー]** リストで、アクセス許可の境界を変更する対象の IAM ユーザーの名前を選択します。

1. **[アクセス許可]** タブを選択します。必要に応じて、**[アクセス許可の境界]** セクションを開きます。

1. ポリシーの詳細を表示するために編集するポリシーの名前を選択します。**[アタッチされたエンティティ]** タブを選択すると、ポリシーを編集した場合に影響を受ける可能性のある他のエンティティ (IAM ユーザー、グループ、ロール) が表示されます。

1. [**Permissions (アクセス許可)**] タブを選択し、ポリシーで付与されるアクセス許可を確認します。アクセス許可を変更するには、**[編集]** を選択します。

1. ポリシーを編集し、[ポリシー検証](access_policies_policy-validator.md)に関する推奨事項を解決します。詳細については、「[IAM ポリシーを編集する](access_policies_manage-edit.md)」を参照してください。

1. **[次へ]** を選択し、ポリシーの概要を確認してから、**[変更を保存]** を選択します。

コンソールには、ポリシーが更新されたことを通知するステータスメッセージが表示されます。

------

### ユーザーのアクセス許可の境界を変更するには
<a name="users_change_permissions-change-boundary-console"></a>

アクセス許可の境界を変更すると、ユーザーのアクセス許可がすぐに更新されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[ユーザー]** リストで、アクセス許可の境界を変更する対象の IAM ユーザーの名前を選択します。

1. **[アクセス許可]** タブを選択します。必要に応じて、[**Permissions boundary (アクセス許可の境界)**] セクションを開き、[**Change boundary (境界の変更)**] を選択します。

1. アクセス許可の境界として使用するポリシーを選択します。

1. [**Set boundary (境界の設定)**] を選択します。

コンソールには、アクセス許可の境界が変更されたことを示すステータスメッセージが表示されます。

------

## ユーザーからのアクセス許可ポリシーを削除するには (コンソール)
<a name="users_change_permissions-remove-policy-console"></a>

アクセス許可ポリシーを削除すると、ユーザーのアクセス許可がすぐに更新されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. アクセス許可ポリシーを削除する対象のユーザーの名前を選択します。

1. **[アクセス許可]** タブを選択します。

1. 既存のポリシーを削除してアクセス許可を取り消す場合は、**[アタッチ方法]** 列を表示して、ユーザーがそのポリシーを取得する方法を把握してから、**[削除]** を選択してポリシーを削除します。
   + グループメンバーシップのためにポリシーが適用されている場合、**[削除]** を選択して、ユーザーをそのグループから削除します。1 つのグループには複数のポリシーがアタッチされている場合があります。グループからユーザーを削除すると、そのユーザーは、グループメンバーシップを通じて受け取った*すべての*ポリシーへのアクセスを失います。
   + ポリシーがユーザーに直接アタッチされた管理ポリシーの場合、**[削除]** を選択して、ユーザーへのポリシーのアタッチを解除します。これは、そのポリシー自体やそのポリシーがアタッチされている他のエンティティに影響を与えません。
   + ポリシーがインライン埋め込みポリシーである場合は、**[削除]** を選択すると、IAM からポリシーが削除されます。ユーザーに直接アタッチされたインラインポリシーは、そのユーザーにのみ存在します。

ポリシーがグループメンバーシップを通じてユーザーに付与された場合、コンソールには、IAM ユーザーが IAM グループから削除されたことを示すステータスメッセージが表示されます。ポリシーが直接アタッチされた場合やインラインの場合、ポリシーが削除されたことがステータスメッセージで通知されます。

------

## ユーザーからアクセス許可の境界を削除するには (コンソール)
<a name="users_change_permissions-remove-boundary-console"></a>

アクセス許可の境界を削除すると、ユーザーのアクセス許可がすぐに更新されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. **[ユーザー]** リストで、アクセス許可の境界を削除する対象の IAM ユーザーの名前を選択します。

1. **[アクセス許可]** タブを選択します。必要に応じて、**[アクセス許可の境界]** セクションを開きます。

1.  [**Change boundary (境界の変更)**] を選択します。アクセス許可の境界を削除することを確定するには、確認ダイアログで **[境界を削除]** を選択します。

コンソールには、アクセス許可の境界が削除されたことを示すステータスメッセージが表示されます。

------

## ユーザーのアクセス許可の追加と削除 (AWS CLI または AWS API)
<a name="users_change_permissions-add-programmatic"></a>

アクセス許可をプログラムにより追加または削除するには、グループメンバーシップの追加または削除、管理ポリシーのアタッチまたはデタッチ、インラインポリシーの追加または削除のいずれかを行う必要があります。詳細については、以下の各トピックを参照してください。
+ [IAM グループのユーザーを編集する](id_groups_manage_add-remove-users.md)
+ [IAM ID のアクセス許可の追加および削除](access_policies_manage-attach-detach.md)

# AWS のユーザーパスワード
<a name="id_credentials_passwords"></a>

アカウント内の IAM ユーザーのパスワードを管理できます。IAM ユーザーが AWS マネジメントコンソール にアクセスするには、パスワードが必要です。ユーザーが、AWS Tools for Windows PowerShell、AWS CLI SDK または API を使用してプログラムで AWS リソースにアクセスする場合、パスワードは必要ありません。このような環境では、IAM ユーザーに[アクセスキー](id_credentials_access-keys.md)を割り当てることができます。ただし、アクセスキーに代わるより安全な代替手段が他にもあり、最初に検討することをお勧めします。詳細については、「[AWS セキュリティ認証情報](security-creds.md)」を参照してください。

**注記**  
いずれかの IAM ユーザーがパスワードを紛失したり、忘れたりした場合は、IAM からパスワードを取得*することはできません*。設定に応じて、ユーザーまたは管理者のいずれかが新しいパスワードを作成する必要があります。

**Topics**
+ [IAM ユーザー用のアカウントパスワードポリシーを設定する](id_credentials_passwords_account-policy.md)
+ [IAM ユーザーのパスワードを管理する](id_credentials_passwords_admin-change-user.md)
+ [IAM ユーザーに自分のパスワード変更を許可する](id_credentials_passwords_enable-user-change.md)
+ [IAM ユーザーが自分のパスワードを変更する方法](id_credentials_passwords_user-change-own.md)

# IAM ユーザー用のアカウントパスワードポリシーを設定する
<a name="id_credentials_passwords_account-policy"></a>

IAM ユーザーのパスワードの複雑度の要件や必須のローテーション期間を指定するためのカスタムパスワードポリシーを AWS アカウント に設定できます。カスタムパスワードポリシーを設定しない場合、IAM ユーザーのパスワードはデフォルトの AWS パスワードポリシーの要件を満たす必要があります。詳細については、「[カスタムパスワードポリシーのオプション](#password-policy-details)」を参照してください。

**Topics**
+ [パスワードポリシーの設定に関するルール](#password-policy-rules)
+ [パスワードポリシーを設定するために必要なアクセス許可](#default-policy-permissions-required)
+ [デフォルトのパスワードポリシー](#default-policy-details)
+ [カスタムパスワードポリシーのオプション](#password-policy-details)
+ [パスワードポリシーを設定するには (コンソール)](#IAMPasswordPolicy)
+ [パスワードポリシーを変更するには (コンソール)](#id_credentials_passwords_account-policy-section-1)
+ [カスタムパスワードポリシーを削除するには (コンソール)](#id_credentials_passwords_account-policy-section-2)
+ [パスワードポリシーの設定 (AWS CLI)](#PasswordPolicy_CLI)
+ [パスワードポリシーの設定 (AWS API)](#PasswordPolicy_API)

## パスワードポリシーの設定に関するルール
<a name="password-policy-rules"></a>

IAM パスワードポリシーは、AWS アカウントのルートユーザー パスワードまたは IAM ユーザー アクセスキーには適用されません。パスワードの有効期限が切れた場合、IAM ユーザーは AWS マネジメントコンソール にサインインできなくなりますが、引き続きアクセスキーを使用できます。

パスワードポリシーを作成または変更する場合、パスワードポリシーの設定の多くは、ユーザーが次回パスワードを変更するときに適用されます。ただし、一部の設定はすぐに適用されます。例: 
+ 最小文字数と文字タイプの要件が変更されると、これらの設定はユーザーが次回パスワードを変更するときに適用されます。既存のパスワードが更新されたパスワードポリシーに従っていない場合でも、ユーザーは既存のパスワードの変更を強制されません。
+ パスワードの有効期限を設定した場合、有効期限は直ちに適用されます。例えば、パスワードの有効期限を 90 日に設定したとします。この場合、既存のパスワードが作成されてから 90 日を超える期間が経過しているすべての IAM ユーザーのパスワードが失効します。これらのユーザーは、次回サインインするときにパスワードを変更する必要があります。

サインインが指定された回数失敗したユーザーをアカウントからロックアウトするために、「ロックアウトポリシー」を作成することはできません。セキュリティを強化するために、強力なパスワードポリシーと Multi-Factor Authentication (MFA) を組み合わせることをお勧めします。MFA の詳細については、「[IAM の AWS 多要素認証](id_credentials_mfa.md)」を参照してください。

## パスワードポリシーを設定するために必要なアクセス許可
<a name="default-policy-permissions-required"></a>

IAM エンティティ (ユーザーまたはロール) がアカウントのパスワードポリシーを表示または編集することを許可するには、アクセス許可を設定する必要があります。ポリシーには、IAM ポリシーに次のパスワードポリシーアクションを含めることができます。
+ `iam:GetAccountPasswordPolicy` – エンティティが各自のアカウントのパスワードポリシーを表示することを許可します
+ `iam:DeleteAccountPasswordPolicy` – エンティティが各自のアカウントのカスタムパスワードポリシーを削除し、デフォルトのパスワードポリシーに戻すことを許可します
+ `iam:UpdateAccountPasswordPolicy` – エンティティが各自のアカウントのカスタムパスワードポリシーを作成または変更することを許可します

次のポリシーは、アカウントのパスワードポリシーを表示および編集するためのフルアクセスを許可します。この例の JSON ポリシードキュメントを使用して IAM ポリシーを作成する方法については、「[JSON エディターを使用したポリシーの作成](access_policies_create-console.md#access_policies_create-json-editor)」を参照してください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccessPasswordPolicy",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:DeleteAccountPasswordPolicy",
                "iam:UpdateAccountPasswordPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

IAM ユーザーが各自のパスワードを変更するために必要なアクセス許可の詳細については、「[IAM ユーザーに自分のパスワード変更を許可する](id_credentials_passwords_enable-user-change.md)」をご参照ください。

## デフォルトのパスワードポリシー
<a name="default-policy-details"></a>

管理者がカスタムパスワードポリシーを設定しない場合、IAM ユーザーパスワードはデフォルトの AWS パスワードポリシーの要件を満たす必要があります。

デフォルトのパスワードポリシーでは、次の条件が適用されます。
+ パスワードの文字数制限: 8～128 文字
+ 大文字、小文字、数字、英数字以外の文字 (`! @ # $ % ^ & * ( ) _ + - = [ ] { } | '`) のうち、最低 3 つの文字タイプの組み合わせ
+ AWS アカウント 名または E メールアドレスと同じでないこと
+ 有効期限のないパスワード

## カスタムパスワードポリシーのオプション
<a name="password-policy-details"></a>

アカウントのカスタムパスワードポリシーを設定する場合、次の条件を指定できます。
+ **パスワードの最小文字数** – 6～128 文字の間で指定できます。
+ **パスワードの強度** – 次のいずれかのチェックボックスをオンにして、IAM ユーザーパスワードの強度を定義できます。
  + ラテンアルファベットの大文字 (A–Z) が少なくとも 1 つ必要
  + ラテンアルファベットの小文字 (a–z) が少なくとも 1 つ必要
  + 少なくとも 1 つの数字が必要
  + 少なくとも 1 つの英数字以外の文字 `! @ # $ % ^ & * ( ) _ + - = [ ] { } | '` が必要 
+ **パスワードの有効期限をオンにする** – IAM ユーザーのパスワードが設定されてから有効な期間を 1～1,095 日の間で選択して指定できます。例えば、90 日間の有効期限を指定すると、すぐにすべてのユーザーに影響します。変更後、90 日を超える古いパスワードのユーザーがコンソールにログインする場合は、新しいパスワードを設定する必要があります。75 日から 89 日が経過したパスワードのユーザーは、パスワードの有効期限について AWS マネジメントコンソール から警告を受け取ります。IAM ユーザーは、アクセス許可があれば、いつでもパスワードを変更できます。新しいパスワードを設定すると、そのパスワードの有効期間が始まります。IAM ユーザーは一度に 1 つだけ有効なパスワードを持つことができます。
+ **[パスワードの失効に管理者のリセットを必要とする]** – パスワードが失効した後に IAM ユーザーが AWS マネジメントコンソール を使用して各自のパスワードを更新できないようにするには、このオプションを選択します。このオプションを選択する前に、AWS アカウント で複数のユーザーが IAM ユーザーパスワードをリセットするための管理アクセス許可を持っていることを確認します。管理者ユーザーの `iam:UpdateLoginProfile` 権限は IAM ユーザーパスワードをリセットできます。IAM ユーザーの `iam:ChangePassword` 権限キーとアクティブアクセスキーは、IAM ユーザーコンソールのパスワードをプログラムでリセットできます。このチェックボックスをオフにした場合、パスワードが失効している IAM ユーザーは、AWS マネジメントコンソール にアクセスする前に新しいパスワードを設定する必要があります。
+ **[ユーザーが各自のパスワードを変更することを許可]** – お客様のアカウント内のすべての IAM ユーザーが各自のパスワードを変更することを許可できます。これにより、そのユーザーだけに対する `iam:ChangePassword` アクションと `iam:GetAccountPasswordPolicy` アクションへのアクセスがユーザーに付与されます。このオプションでは、各ユーザーにアクセス許可ポリシーがアタッチされません。あるいは、IAM ではすべてのユーザーにアカウントレベルでアクセス許可が適用されます。あるいは、一部のユーザーのみが、自分自身のパスワードを管理できるように許可できます。これを行うには、このチェックボックスをオフにします。パスワードを管理できるユーザーを限定するポリシーの使用方法については、「[IAM ユーザーに自分のパスワード変更を許可する](id_credentials_passwords_enable-user-change.md)」を参照してください。
+ **パスワードの再利用を禁止** – 指定した数の以前のパスワードを IAM ユーザーが再利用することを禁止できます。再利用できない以前のパスワードの数を 1～24 個の間で指定できます。

## パスワードポリシーを設定するには (コンソール)
<a name="IAMPasswordPolicy"></a>

AWS マネジメントコンソール を使用して、カスタムパスワードポリシーを作成、変更、および削除できます。パスワードポリシーの変更は、このポリシーの変更後に作成された新しい IAM ユーザーに適用され、既存の IAM ユーザーにはパスワードを変更するときに適用されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[アカウント設定]** を選択します。

1. **[パスワードポリシー]** セクションで、**[編集]** を選択します。

1. カスタムパスワードポリシーを使用するには、**[カスタム]** を選択します。

1. パスワードポリシーに適用するオプションを選択し、**[変更の保存]** を選択します。

1. **[カスタムを設定]** を選択して、カスタムパスワードポリシーを設定することを確認します。

コンソールには、IAM ユーザーのパスワード要件が更新されたことを通知するステータスメッセージが表示されます。

------

## パスワードポリシーを変更するには (コンソール)
<a name="id_credentials_passwords_account-policy-section-1"></a>

AWS マネジメントコンソール を使用して、カスタムパスワードポリシーを作成、変更、および削除できます。パスワードポリシーの変更は、このポリシーの変更後に作成された新しい IAM ユーザーに適用され、既存の IAM ユーザーにはパスワードを変更するときに適用されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[アカウント設定]** を選択します。

1. **[パスワードポリシー]** セクションで、**[編集]** を選択します。

1. パスワードポリシーに適用するオプションを選択し、**[変更の保存]** を選択します。

1. **[カスタムを設定]** を選択して、カスタムパスワードポリシーを設定することを確認します。

コンソールには、IAM ユーザーのパスワード要件が更新されたことを通知するステータスメッセージが表示されます。

------

## カスタムパスワードポリシーを削除するには (コンソール)
<a name="id_credentials_passwords_account-policy-section-2"></a>

AWS マネジメントコンソール を使用して、カスタムパスワードポリシーを作成、変更、および削除できます。パスワードポリシーの変更は、このポリシーの変更後に作成された新しい IAM ユーザーに適用され、既存の IAM ユーザーにはパスワードを変更するときに適用されます。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[アカウント設定]** を選択します。

1. **[パスワードポリシー]** セクションで、**[編集]** を選択します。

1. **[IAM のデフォルト]** を選択してカスタムパスワードポリシーを削除し、**[変更を保存]** を選択します。

1. **[デフォルトを設定]** を選択して、IAM デフォルトパスワードポリシーを設定することを確認します。

コンソールには、パスワードポリシーが IAM のデフォルトに設定されていることを通知するステータスメッセージが表示されます。

------

## パスワードポリシーの設定 (AWS CLI)
<a name="PasswordPolicy_CLI"></a>

AWS Command Line Interface を使用して、パスワードポリシーを設定できます。

**AWS CLI からアカウントのカスタムパスワードポリシーを管理するには**  
以下の コマンドを実行します。
+ カスタムパスワードポリシーを作成または変更するには: [https://docs.aws.amazon.com/cli/latest/reference/iam/update-account-password-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-account-password-policy.html)
+ パスワードポリシーを表示するには: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-account-password-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-account-password-policy.html) 
+ カスタムパスワードポリシーを削除するには: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-account-password-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-account-password-policy.html) 

## パスワードポリシーの設定 (AWS API)
<a name="PasswordPolicy_API"></a>

AWS API オペレーションを使用して、パスワードポリシーを設定できます。

**AWS API からアカウントのカスタムパスワードポリシーを管理するには**  
以下のオペレーションを呼び出します。
+ カスタムパスワードポリシーを作成または変更するには: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html)
+ パスワードポリシーを表示するには: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html) 
+ カスタムパスワードポリシーを削除するには: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccountPasswordPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccountPasswordPolicy.html) 

# IAM ユーザーのパスワードを管理する
<a name="id_credentials_passwords_admin-change-user"></a>

AWS マネジメントコンソール を使用して AWS リソースを操作する IAM ユーザーには、サインインのためのパスワードが必要です。AWS アカウントの IAM ユーザーのパスワードを作成、変更、削除できます。

ユーザーにパスワードを割り当てると、ユーザーは、以下のような、アカウント用のサインイン URL を使用して AWS マネジメントコンソール にサインインできます。

```
https://12-digit-AWS-account-ID or alias.signin.aws.amazon.com/console
```

IAM ユーザーの AWS マネジメントコンソール へのサインインの詳細については、AWS サインイン ユーザーガイドの「[AWS にサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

ユーザーは、パスワードが割り当てられている場合でも、AWS リソースへのアクセスにはやはりアクセス許可が必要です。デフォルトでは、ユーザーには何も権限が与えられていません。ユーザーに必要な権限を与えるには、ユーザーまたはユーザーが属しているグループにポリシーを割り当てます。ユーザーおよびグループの作成の詳細については、[IAM アイデンティティ](id.md)を参照してください。ポリシーを使用するアクセス許可設定の詳細については、[IAM ユーザーのアクセス許可を変更する](id_users_change-permissions.md)を参照してください。

ユーザーに自分のパスワードを変更する権限を付与できます。詳細については、「[IAM ユーザーに自分のパスワード変更を許可する](id_credentials_passwords_enable-user-change.md)」を参照してください。ユーザーがアカウントのサインインページにアクセスする方法の詳細については、AWS サインイン ユーザーガイドの「[AWS へサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

**Topics**
+ [IAM ユーザーパスワードの作成、変更、削除 (コンソール)](#id_credentials_passwords_admin-change-user_console)

## IAM ユーザーパスワードの作成、変更、削除 (コンソール)
<a name="id_credentials_passwords_admin-change-user_console"></a>

AWS マネジメントコンソール を使用して IAM ユーザーのパスワードを管理できます。

ユーザーのアクセスニーズは、時間の経過とともに変化する可能性があります。CLI アクセスを想定していたユーザーがコンソールにアクセスできるようにしたり、認証情報を含む E メールを受信してユーザーのパスワードを変更できるようにしたり、組織を離れたユーザーや AWS にアクセスする必要がなくなったユーザーを削除できるようにしたりすることが必要になる場合があります。

### IAM ユーザーのパスワードを作成するには (コンソール)
<a name="id_credentials_passwords_admin-change-user-section-1"></a>

この手順を使用して、ユーザー名に関連付けられたパスワードを作成し、ユーザーコンソールへのアクセスを許可します。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. パスワードを作成するユーザーの名前を選択します。

1. **[セキュリティ認証情報]** タブを選択し、**[コンソールサインイン]** で **[コンソールアクセスを有効にする]** を選択します。

1. **[コンソールアクセスを有効にする]** ダイアログボックスで **[パスワードのリセット]** を選択し、IAM によってパスワードを生成するか、カスタムパスワードを作成するかを選択します。
   + IAM によって自動的にパスワードを生成するには、[**Autogenerated password (自動生成パスワード)**] を選択します。
   + カスタムパスワードを作成するには、[**Custom password (カスタムパスワード)**] を選択し、パスワードを入力します。
**注記**  
作成するパスワードは、アカウントの[パスワードポリシー](id_credentials_passwords_account-policy.md)の要件を満たす必要があります。

1. サインイン時に新しいパスワードを作成するようにユーザーに要求する場合は、**[ユーザーは次回のサインインで新しいパスワードを作成する必要があります]** を選択します。

1. ユーザーに新しいパスワードをすぐに使用するように要求するには、**[アクティブなコンソールセッションを取り消す]** を選択します。これにより、インラインポリシーが IAM ユーザーにアタッチされ、そのユーザーの認証情報がポリシーで指定された時間よりも古い場合はリソースへのユーザーアクセスを拒否します。

1. **[パスワードのリセット]** を選択します。

1. **[コンソールパスワード]** ダイアログで、ユーザーの新しいパスワードを有効にしたことが通知されます。パスワードを表示してユーザーと共有するには、**[コンソールパスワード]** ダイアログボックスで **[表示]** を選択します。**[.csv ファイルのダウンロード]** を選択して、ユーザーの認証情報を含むファイルをダウンロードします。
**重要**  
セキュリティ上の理由で、この手順を完了するとパスワードにアクセスできなくなりますが、いつでも新しいパスワードを作成できます。

コンソールには、コンソールアクセスが有効になったことを示すステータスメッセージが表示されます。

------

### IAM ユーザーのパスワードを変更するには (コンソール)
<a name="id_credentials_passwords_admin-change-user-section-2"></a>

この手順を使用して、ユーザー名に関連付けられているパスワードを更新します。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. パスワードを変更するユーザーの名前を選択します。

1. **[セキュリティ認証情報]** タブを選択し、**[コンソールサインイン]** で **[コンソールアクセスの管理]** を選択します。

1. **[コンソールアクセスを管理]** ダイアログボックスで、**[パスワードのリセット]** を選択し、IAM によってパスワードを自動的に生成するか、カスタムパスワードを作成するかを選択します。
   + IAM によって自動的にパスワードを生成するには、[**Autogenerated password (自動生成パスワード)**] を選択します。
   + カスタムパスワードを作成するには、[**Custom password (カスタムパスワード)**] を選択し、パスワードを入力します。
**注記**  
作成するパスワードは、アカウントの[パスワードポリシー](id_credentials_passwords_account-policy.md)の要件を満たす必要があります。

1. サインイン時に新しいパスワードを作成するようにユーザーに要求する場合は、**[ユーザーは次回のサインインで新しいパスワードを作成する必要があります]** を選択します。

1. ユーザーに新しいパスワードをすぐに使用するように要求するには、**[アクティブなコンソールセッションを取り消す]** を選択します。これにより、インラインポリシーが IAM ユーザーにアタッチされ、そのユーザーの認証情報がポリシーで指定された時間よりも古い場合はリソースへのユーザーアクセスを拒否します。

1. **[パスワードのリセット]** を選択します。

1. **[コンソールパスワード]** ダイアログで、ユーザーの新しいパスワードを有効にしたことが通知されます。パスワードを表示してユーザーと共有するには、**[コンソールパスワード]** ダイアログボックスで **[表示]** を選択します。**[.csv ファイルのダウンロード]** を選択して、ユーザーの認証情報を含むファイルをダウンロードします。
**重要**  
セキュリティ上の理由で、この手順を完了するとパスワードにアクセスできなくなりますが、いつでも新しいパスワードを作成できます。

コンソールには、コンソールアクセスが更新されたことを示すステータスメッセージが表示されます。

------

### IAM ユーザーのパスワードを削除 (無効化) するには (コンソール)
<a name="id_credentials_passwords_admin-change-user-section-3"></a>

この手順を使用して、ユーザー名に関連付けられているパスワードを削除し、ユーザーのコンソールアクセスを取り消します。

**重要**  
パスワードを削除することで、AWS マネジメントコンソール への IAM ユーザーアクセスを無効にできます。これにより、サインイン認証情報を使用して AWS マネジメントコンソール にサインインすることができなくなります。権限を変更したり、引き受けたロールを使用してコンソールにアクセスできないようにしたりすることはありません。ユーザーがアクティブなアクセスキーを持っている場合、それらのキーは引き続き機能し、AWS CLI、Tools for Windows PowerShell、AWS API、またはAWS Console Mobile Application 用のツールを介したアクセスを許可します。

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. パスワードを削除するユーザーの名前を選択します。

1. **[セキュリティ認証情報]** タブを選択し、**[コンソールサインイン]** で **[コンソールアクセスの管理]** を選択します。

1. ユーザーにコンソールの使用をすぐに止めるように要求するには、**[アクティブなコンソールセッションを取り消す]** を選択します。これにより、インラインポリシーが IAM ユーザーにアタッチされ、そのユーザーの認証情報がポリシーで指定された時間よりも古い場合はリソースへのユーザーアクセスを拒否します。

1. **[アクセスの無効化]** を選択します。

コンソールには、コンソールアクセスが無効になったことを示すステータスメッセージが表示されます。

------

### IAM ユーザーパスワードの作成、変更、削除 (AWS CLI)
<a name="Using_ManagingPasswordsCLIAPI"></a>

AWS CLI API を使用して IAM ユーザーのパスワードを管理できます。

**パスワードを作成するには (AWS CLI)**

1. (オプション) ユーザーがパスワードを持っているかどうかを確認するには、[aws iam get-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/get-login-profile.html) コマンドを実行します。

1. パスワードを作成するには、[aws iam create-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-login-profile.html) コマンドを実行します。

**ユーザーのパスワードを変更するには (AWS CLI)**

1. (オプション) ユーザーがパスワードを持っているかどうかを確認するには、[aws iam get-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/get-login-profile.html) コマンドを実行します。

1. パスワードを変更するには、[aws iam update-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/update-login-profile.html) コマンドを実行します。

**ユーザーのパスワードを削除 (無効化) するには (AWS CLI)**

1. (オプション) ユーザーがパスワードを持っているかどうかを確認するには、[aws iam get-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/get-login-profile.html) コマンドを実行します。

1. (オプション) パスワードを前回使用した日付を確認するには、[aws iam get-user](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user.html) コマンドを実行します。

1. パスワードを削除するには、[aws iam delete-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-login-profile.html) コマンドを実行します。

**重要**  
ユーザーのパスワードを削除すると、ユーザーは AWS マネジメントコンソール にサインインできなくなります。ユーザーがアクティブなアクセスキーを持っている場合、それらのキーは引き続き有効で、AWS CLI、Tools for Windows PowerShell、または AWS API 関数呼び出しで使用できます。AWS CLI、Tools for Windows PowerShell、または AWS API を使用してユーザーを AWS アカウント から削除する場合、まずこのオペレーションを使用してパスワードを削除する必要があります。詳細については、「[IAM ユーザーの削除 (AWS CLI)](id_users_remove.md#id_users_deleting_cli)」を参照してください。

**指定した時間より前にユーザーのアクティブなコンソールセッションを取り消すには (AWS CLI)**

1. 指定した時間より前に IAM ユーザーのアクティブなコンソールセッションを取り消すインラインポリシーを埋め込むには、以下のインラインポリシーを使用して次のコマンドを実行します: [aws iam put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)

   このインラインポリシーはすべてのアクセス許可を拒否し、`aws:TokenIssueTime` 条件キーを含みます。インラインポリシーの `Condition` 要素で指定された時間より前に、ユーザーのアクティブなコンソールセッションを取り消します。`aws:TokenIssueTime` 条件キーの値は、独自の値に置き換えてください。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Deny",
       "Action": "*",
       "Resource": "*",
       "Condition": {
         "DateLessThan": {
           "aws:TokenIssueTime": "2014-05-07T23:47:00Z"
         }
       }
     }
   }
   ```

------

1. (オプション) IAM ユーザーに埋め込まれているインラインポリシーの名前をリストするには、次のコマンドを実行します: [aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)

1. (オプション) IAM ユーザーに埋め込まれている名前付きのインラインポリシーを表示するには、次のコマンドを実行します: [aws iam get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)

### IAM ユーザーパスワードの作成、変更、削除 (AWS API)
<a name="Using_ManagingPasswordsAPI"></a>

AWS API を使用して IAM ユーザーのパスワードを管理できます。

**パスワードを作成するには (AWS API)**

1. (オプション) ユーザーがパスワードを持っているかどうかを確認するには、[GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html) オペレーションを呼び出します。

1. パスワードを作成するには、[CreateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateLoginProfile.html) オペレーションを呼び出します。

**ユーザーのパスワードを変更するには (AWS API)**

1. (オプション) ユーザーがパスワードを持っているかどうかを確認するには、[GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html) オペレーションを呼び出します。

1. パスワードを変更するには、[UpdateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateLoginProfile.html) オペレーションを呼び出します。

**ユーザーのパスワードを削除 (無効化) するには (AWS API)**

1. (オプション) ユーザーがパスワードを持っているかどうかを確認するには、[GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html) コマンドを実行します。

1. (オプション) パスワードを前回使用した日付を確認するには、[GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) コマンドを実行します。

1. パスワードを削除するには、[DeleteLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html) コマンドを実行します。

**重要**  
ユーザーのパスワードを削除すると、ユーザーは AWS マネジメントコンソール にサインインできなくなります。ユーザーがアクティブなアクセスキーを持っている場合、それらのキーは引き続き有効で、AWS CLI、Tools for Windows PowerShell、または AWS API 関数呼び出しで使用できます。AWS CLI、Tools for Windows PowerShell、または AWS API を使用してユーザーを AWS アカウント から削除する場合、まずこのオペレーションを使用してパスワードを削除する必要があります。詳細については、「[IAM ユーザーの削除 (AWS CLI)](id_users_remove.md#id_users_deleting_cli)」を参照してください。

**指定した時間より前にユーザーのアクティブなコンソールセッションを取り消すには (AWS API)**

1. 指定した時間より前に IAM ユーザーのアクティブなコンソールセッションを取り消すインラインポリシーを埋め込むには、以下のインラインポリシーを使用して次のコマンドを実行します: [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)

   このインラインポリシーはすべてのアクセス許可を拒否し、`aws:TokenIssueTime` 条件キーを含みます。インラインポリシーの `Condition` 要素で指定された時間より前に、ユーザーのアクティブなコンソールセッションを取り消します。`aws:TokenIssueTime` 条件キーの値は、独自の値に置き換えてください。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Deny",
       "Action": "*",
       "Resource": "*",
       "Condition": {
         "DateLessThan": {
           "aws:TokenIssueTime": "2014-05-07T23:47:00Z"
         }
       }
     }
   }
   ```

------

1. (オプション) IAM ユーザーに埋め込まれているインラインポリシーの名前をリストするには、次のコマンドを実行します: [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)

1. (オプション) IAM ユーザーに埋め込まれている名前付きインラインポリシーを表示するには、次のコマンドを実行します: [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)

# IAM ユーザーに自分のパスワード変更を許可する
<a name="id_credentials_passwords_enable-user-change"></a>

**注記**  
フェデレーション ID を持つユーザーは、ID プロバイダーが定義したプロセスを使用してパスワードを変更します。[ベストプラクティス](best-practices.md)として、人間のユーザーが一時的な認証情報を使用して AWS にアクセスするには、ID プロバイダーとのフェデレーションの使用を必須とします。

IAM ユーザーに、AWS マネジメントコンソール にサインインするためのパスワードを変更するアクセス許可を付与できます。これには以下の 2 つの方法があります。
+ [アカウントのすべての IAM ユーザーが自分のパスワードを変更できるようにします](#proc_letalluserschangepassword)。
+ [選択した IAM ユーザーだけが自分のパスワードを変更できるようにします](#proc_letselectuserschangepassword)。このシナリオでは、すべてのユーザーが各自のパスワードを変更するオプションを無効にし、一部のユーザーにのみアクセス許可を付与する IAM ポリシーを使用します。この方法では、ユーザーは各自のパスワードと、必要に応じて各自のアクセスキーなどの他の認証情報を変更できます。

**重要**  
IAM ユーザーが強力なパスワードを作成することを求める[カスタムパスワードポリシーを設定](id_credentials_passwords_account-policy.md)することをお勧めします。

## すべての IAM ユーザーが自分のパスワードを変更できるようにします。
<a name="proc_letalluserschangepassword"></a>

------
#### [ Console ]

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

1. ナビゲーションペインで [**アカウント設定**] をクリックします。

1. **[パスワードポリシー]** セクションで、**[編集]** を選択します。

1. カスタムパスワードポリシーを使用するには、**[カスタム]** を選択します。

1. **[ユーザーにパスワードの変更を許可]** を選択し、**[変更の保存]** をクリックします。これにより、アカウントのすべてのユーザーに、そのユーザーだけに対する `iam:ChangePassword` アクションと `iam:GetAccountPasswordPolicy` アクションへのアクセスが付与されます。

1. パスワードを変更するための次の手順をユーザーに提供します: [IAM ユーザーが自分のパスワードを変更する方法](id_credentials_passwords_user-change-own.md)。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ `[aws iam update-account-password-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/update-account-password-policy.html)`

------
#### [ API ]

AWS マネジメントコンソール のサインインページの URL のエイリアスを作成するには、以下のオペレーションを呼び出します。
+ `[UpdateAccountPasswordPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html)` 

------

## 選択された IAM ユーザーが自分のパスワードを変更可能にするには
<a name="proc_letselectuserschangepassword"></a>

------
#### [ Console ]

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

1. ナビゲーションペインで **[アカウント設定]** をクリックします。

1. **[パスワードポリシー]** セクションで、**[ユーザーにパスワードの変更を許可]** が選択されていないことを確認します。このチェックボックスがオンになっている場合、すべてのユーザーが自分のパスワードを変更できます。（前の手順を参照）。

1. パスワードの変更が許可されている必要があるユーザーを作成します (まだ存在していない場合)。詳細については、「[AWS アカウント で IAM ユーザーを作成する](id_users_create.md)」を参照してください。

1. (オプション) 自分のパスワードの変更を許可するユーザーに対して IAM グループを作成し、そのグループに前のステップのユーザーを追加します。詳細については、「[IAM ユーザーグループ](id_groups.md)」を参照してください。

1. 以下のポリシーをグループに割り当てます 詳細については、「[IAM ポリシーを管理する](access_policies_manage.md)」を参照してください。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "iam:GetAccountPasswordPolicy",
         "Resource": "*"
       },
       {
         "Effect": "Allow",
         "Action": "iam:ChangePassword",
         "Resource": "arn:aws:iam::*:user/${aws:username}"
       }
     ]
   }
   ```

------

   このポリシーでは、ユーザーに [ChangePassword (パスワードの変更)](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) アクションへのアクセスを許可して、コンソール、AWS CLI、Tools for Windows PowerShell、または API から自分のパスワードのみを変更できるようにします。また、[GetAccountPasswordPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html) アクションへのアクセス権も付与します。これにより、ユーザーは現在のパスワードポリシーを表示できます。このアクセス許可は、ユーザーが **[パスワードの変更]** ページでアカウントパスワードポリシーを表示できるようにするために必要です。変更されたパスワードがポリシーの要件を確実に満たしているようにするために、ユーザーは現在のパスワードポリシーの読み取りが許可されている必要があります。

1. パスワードを変更するための次の手順をユーザーに提供します: [IAM ユーザーが自分のパスワードを変更する方法](id_credentials_passwords_user-change-own.md)。

------

### 詳細情報
<a name="HowToPwdIAMUser-moreinfo"></a>

認証情報の管理の詳細については、次のトピックを参照してください。
+ [IAM ユーザーに自分のパスワード変更を許可する](#id_credentials_passwords_enable-user-change) 
+ [AWS のユーザーパスワード](id_credentials_passwords.md)
+ [IAM ユーザー用のアカウントパスワードポリシーを設定する](id_credentials_passwords_account-policy.md)
+ [IAM ポリシーを管理する](access_policies_manage.md)
+ [IAM ユーザーが自分のパスワードを変更する方法](id_credentials_passwords_user-change-own.md)

# IAM ユーザーが自分のパスワードを変更する方法
<a name="id_credentials_passwords_user-change-own"></a>

IAM ユーザーに自分のパスワードを変更するアクセス許可が付与されている場合、ユーザーは AWS マネジメントコンソール の特別なページを使用してこれを行うことができます。AWS CLI または AWS API を使用することもできます。

**Topics**
+ [必要なアクセス許可](#change-own-passwords-permissions-required)
+ [IAM ユーザー自身によるパスワードの変更方法 (コンソール)](#ManagingUserPwdSelf-Console)
+ [IAM ユーザー自身によるパスワードの変更方法 (AWS CLI または AWS API)](#ManagingUserPwdSelf-CLIAPI)

## 必要なアクセス許可
<a name="change-own-passwords-permissions-required"></a>

IAM ユーザーのパスワードを変更するには、次のポリシーからのアクセス許可が必要です: [AWS: IAM ユーザーが [セキュリティ認証情報] ページで自分のコンソールパスワードを変更できるようにします](reference_policies_examples_aws_my-sec-creds-self-manage-password-only.md)。

## IAM ユーザー自身によるパスワードの変更方法 (コンソール)
<a name="ManagingUserPwdSelf-Console"></a>

以下の手順では、IAM ユーザーが AWS マネジメントコンソール を使用して自分のパスワードを変更する方法について説明します。

**IAM ユーザー自身のパスワードを変更するには (コンソール)**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソールのセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **[AWS IAM 認証情報]** タブで、**[パスワードを変更]** を選択します。

1. [**Current password (現在のパスワード)**] に現在のパスワードを入力します。[**New password (新しいパスワード)**] ボックスおよび [**Confirm new password (新しいパスワードの確認)**] ボックスに新しいパスワードを入力します。その後、**[パスワードを更新]** を選択します。
**注記**  
新しいパスワードは、アカウントのパスワードポリシーの要件を満たしている必要があります。詳細については、「[IAM ユーザー用のアカウントパスワードポリシーを設定する](id_credentials_passwords_account-policy.md)」を参照してください。

## IAM ユーザー自身によるパスワードの変更方法 (AWS CLI または AWS API)
<a name="ManagingUserPwdSelf-CLIAPI"></a>

以下の手順では、IAM ユーザーが AWS CLI または AWS API を使用して自身のパスワードを変更する方法について説明します。

**自身の IAM パスワードを変更するには、以下を使用します。**
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/change-password.html](https://docs.aws.amazon.com/cli/latest/reference/iam/change-password.html)
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html)

# IAM ユーザーのアクセスキーを管理します。
<a name="id_credentials_access-keys"></a>

**重要**  
[ベストプラクティス](best-practices.md)は、アクセスキーのような長期的認証情報を作成するのではなく、IAM ロールなどの一時的なセキュリティ認証情報を使用することです。アクセスキーを作成する前に、[長期的なアクセスキーの代替案](security-creds-programmatic-access.md#security-creds-alternatives-to-long-term-access-keys)を確認してください。

アクセスキーは、IAM ユーザーまたは AWS アカウントのルートユーザー の長期的な認証情報です。アクセスキーを使用して、AWS CLI または AWS API (直接または AWS SDK を使用) にプログラムでリクエストに署名することができます。詳細については、「[AWS セキュリティ認証情報を使用してプログラムでアクセスする](security-creds-programmatic-access.md)」を参照してください。

アクセスキーは、アクセスキー ID (例: `AKIAIOSFODNN7EXAMPLE`) とシークレットアクセスキー (例: `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`) の 2 つで構成されています。リクエストを認証するために、アクセスキー ID とシークレットアクセスキーの両方を使用する必要があります。



アクセスキーペアを作成する場合は、アクセスキー ID とシークレットアクセスキーを安全な場所に保存します。シークレットアクセスキーは、キー作成時にのみ取得できます。シークレットアクセスキーを紛失した場合は、そのアクセスキーを削除し、新しく作成する必要があります。詳細な手順については、「[アクセスキーを更新する](id-credentials-access-keys-update.md)」を参照してください。

アクセスキーはユーザーごとに最大 2 つまで持つことができます。

**重要**  
アクセスキーを持つ IAM ユーザーは、アカウントのセキュリティリスクとなります。アクセスキーを安全に管理します。[アカウント識別子を確認する](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)ためであっても、アクセスキーを認可されていない当事者に提供しないでください。提供すると、第三者がアカウントへの永続的なアクセスを取得する場合があります。  
アクセス キーを使用する場合は、次の点に注意してください。  
アクセス キーを作成する際に、アカウントのルート認証情報を使用**しないでください**。
アプリケーションファイルにアクセスキーや認証情報を保存**しないでください**。
プロジェクト領域にアクセス キーや認証情報を含むファイルを**含めないでください**。
共有 AWS 認証情報ファイルに保存されているアクセスキーまたは認証情報は、プレーンテキストで保存されます。

## モニタリングの推奨事項
<a name="monitor-access-keys"></a>

アクセスキーを作成した後:
+ AWS CloudTrail を使用してアクセスキーの使用状況をモニタリングし、不正なアクセス試行を検出します。詳細については、「[AWS CloudTrail による IAM および AWS STS の API コールのログ記録](cloudtrail-integration.md)」を参照してください。
+ アクセスの拒否を管理者に通知する CloudWatch アラームを設定し、悪意のあるアクティビティを検出できるようにします。詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。
+ 必要に応じて、アクセスキーを定期的に確認、更新、削除します。

以下のトピックでは、アクセスキーに関連する管理タスクについて詳しく説明します。

**Topics**
+ [モニタリングの推奨事項](#monitor-access-keys)
+ [インラインポリシーを IAM ユーザーにアタッチしてアクセスキーの使用を制御する](access-keys_inline-policy.md)
+ [アクセスキーを管理するために必要なアクセス許可](access-keys_required-permissions.md)
+ [IAM ユーザーが独自のアクセスキーを管理する方法](access-key-self-managed.md)
+ [IAM 管理者が IAM ユーザーアクセスキーを管理する方法](access-keys-admin-managed.md)
+ [アクセスキーを更新する](id-credentials-access-keys-update.md)
+ [アクセスキーを保護する](securing_access-keys.md)

# インラインポリシーを IAM ユーザーにアタッチしてアクセスキーの使用を制御する
<a name="access-keys_inline-policy"></a>

ベストプラクティスとして、[ワークロードはIAMロールを持つ一時的な認証情報](best-practices.md#bp-workloads-use-roles)を使用して AWS にアクセスすることをお勧めします。アクセスキーを持つ IAM ユーザーには、最小特権アクセスを割り当て、[多要素認証 (MFA)](id_credentials_mfa.md) を有効にする必要があります。IAM ロールの引き受けに関する詳細については、「[ロールを引き受けるための各種方法](id_roles_manage-assume.md)」を参照してください。

ただし、サービスの自動化やその他の短期的なユースケースの概念実証テストを作成し、アクセスキーを持つ IAM ユーザーを使用してワークロードを実行する場合は、[ポリシー条件を使用して IAM ユーザー認証情報へのアクセスをさらに制限](best-practices.md#use-policy-conditions)することをお勧めします。

このような状況では、指定した時刻以降に認証情報を期限切れにする期限付きポリシーを作成するか、安全なネットワークからワークロードを実行している場合は、IP 制限ポリシーを使用できます。

これらのユースケースの両方で、アクセスキーを持つ IAM ユーザーにアタッチされたインラインポリシーを使用できます。

**IAM ユーザーの期限付きポリシーを設定するには**

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

1. ナビゲーションペインで、**[ユーザー]** を選択し、短期ユースケースのユーザーを選択します。ユーザーをまだ作成していない場合は、ここで[ユーザーの作成](getting-started-workloads.md)ができます。

1. ユーザーの **[詳細]** ページが開くので、**[アクセス許可]** タブを選択します。

1. **[アクセス許可の追加]**、**[インラインポリシーの作成]** の順に選択します。

1. **[ポリシーエディタ]** セクションで、**[JSON]** を選択して JSON エディタを表示します。

1. JSON エディタで、次のポリシーを入力し、`aws:CurrentTime` タイムスタンプの値を目的の有効期限切れの日時に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
         "DateGreaterThan": {
         "aws:CurrentTime": "2025-03-01T00:12:00Z"
           }
         }
       }
     ]
   }
   ```

------

   このポリシーは、 `Deny` 効果を使用して、指定された日付以降のすべてのリソースに対するすべてのアクションを制限します。`DateGreaterThan` 条件は、現在の時刻と設定したタイムスタンプを比較します。

1. **[次へ]** を選択して **[確認と作成]** ページに進みます。**ポリシー**の詳細で、**[ポリシー名]** にポリシーの名前を入力し、**[ポリシーの作成]** を選択します。

ポリシーが作成されると、ユーザーの **[アクセス許可]** タブに表示されます。現在の時刻がポリシーで指定された時刻以上になると、ユーザーは AWS リソースにアクセスできなくなります。これらのアクセスキーに指定した有効期限をワークロード開発者に必ず通知してください。

**IAM ユーザーの IP 制限ポリシーを設定するには**

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

1. ナビゲーションペインで、**[ユーザー]** を選択し、安全なネットワークからワークロードを実行するユーザーを選択します。ユーザーをまだ作成していない場合は、ここで[ユーザーの作成](getting-started-workloads.md)ができます。

1. ユーザーの **[詳細]** ページが開くので、**[アクセス許可]** タブを選択します。

1. **[アクセス許可の追加]**、**[インラインポリシーの作成]** の順に選択します。

1. **[ポリシーエディタ]** セクションで、**[JSON]** を選択して JSON エディタを表示します。

1. 次の IAM ポリシーを JSON エディタにコピーし、パブリック IPv4 または IPv6 アドレス、または範囲を必要に応じて変更します。現在のパブリック IP アドレスを確認するには、[https://checkip.amazonaws.com](https://checkip.amazonaws.com/) を使用できます。スラッシュ表記を使用して、個々の IP アドレスまたは IP アドレスの範囲を指定できます。詳細については、「[aws:SourceIp](reference_policies_condition-keys.md#condition-keys-sourceip)」を参照してください。
**注記**  
IP アドレスは VPN またはプロキシサーバーによって難読化されてはなりません。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid":"IpRestrictionIAMPolicyForIAMUser",
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "NotIpAddress": {
             "aws:SourceIp": [
               "203.0.113.0/24",
               "2001:DB8:1234:5678::/64",
               "203.0.114.1"
             ]
           },
           "BoolIfExists": {
             "aws:ViaAWSService": "false"
           }
         }
       }
     ]
   }
   ```

------

   このポリシーの例では、リクエストが (CIDR 表記で指定された) ネットワーク「203.0.113.0/24」、「2001:DB8:1234:5678::/64」、または特定の IP アドレス「203.0.114.1」から発生した場合を除き、このポリシーが適用された IAM ユーザーのアクセスキーの使用を拒否します。

1. **[次へ]** を選択して **[確認と作成]** ページに進みます。**ポリシー**の詳細で、**[ポリシー名]** にポリシーの名前を入力し、**[ポリシーの作成]** を選択します。

ポリシーが作成されると、ユーザーの **[アクセス許可]** タブに表示されます。

このポリシーを AWS Organizations の複数の AWS アカウントでサービスコントロールポリシー (SCP) として適用することもできますが、このポリシーステートメントをこの SCP の対象となる AWS アカウント内の IAM ユーザーにのみ適用されるようにするための追加条件 `aws:PrincipalArn` を使用することをお勧めします。次のポリシーには、その更新が含まれています。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IpRestrictionServiceControlPolicyForIAMUsers",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": [
            "203.0.113.0/24",
            "2001:DB8:1234:5678::/64",
            "203.0.114.1"
          ]
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        },
        "ArnLike": {
          "aws:PrincipalArn": "arn:aws:iam::*:user/*"
        }
      }
    }
  ]
}
```

------

# アクセスキーを管理するために必要なアクセス許可
<a name="access-keys_required-permissions"></a>

**注記**  
`iam:TagUser` は、アクセスキーの説明を追加および編集するためのオプションのアクセス許可です。詳細については、[IAM ユーザーにタグ付けする](id_tags_users.md)を参照してください。

IAM ユーザーのアクセスキーを作成するには、次のポリシーのアクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:GetUser",
                "iam:ListAccessKeys",
                "iam:TagUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

IAM ユーザーのアクセスキーを更新するには、次のポリシーのアクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:GetAccessKeyLastUsed",
                "iam:GetUser",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:TagUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# IAM ユーザーが独自のアクセスキーを管理する方法
<a name="access-key-self-managed"></a>

IAM 管理者は、「[アクセスキーを管理するために必要なアクセス許可](access-keys_required-permissions.md)」で説明されているポリシーをアタッチすることで、アクセスキーを自己管理するためのアクセス許可を IAM ユーザーに付与できます。

これらのアクセス許可により、IAM ユーザーは次の手順を使用して、ユーザー名に関連付けられたアクセスキーを作成、アクティブ化、非アクティブ化、削除できます。

**Topics**
+ [自分のアクセスキーを作成する (コンソール)](#Using_CreateAccessKey)
+ [アクセスキーを非アクティブ化する (コンソール)](#deactivate-access-key-seccreds)
+ [アクセスキーをアクティブ化する (コンソール)](#activate-access-key-seccreds)
+ [アクセスキーを削除する (コンソール)](#delete-access-key-seccreds)

## 自分のアクセスキーを作成する (コンソール)
<a name="Using_CreateAccessKey"></a>

適切なアクセス許可が付与されている場合は、AWS マネジメントコンソールを使用して自分のアクセスキーを作成できます。

**自分のアクセスキーを作成するには (コンソール)**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソールのセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. [**Access keys (アクセスキー)**] セクションで、[**Create access key (アクセスキーを作成)**] を選択します。既に 2 つのアクセスキーがある場合、このボタンは無効になるため、新しいアクセスキーを作成する前に、前のアクセスキーを削除する必要があります。

1. **[Access key best practices & alternatives]** (アクセスキーのベストプラクティスと代替方法) ページで、対象のユースケースを選択し、長期的なアクセスキーの作成を避けるのに役立つその他のオプションを確認します。依然としてユースケースにアクセスキーが必要だと考えられる場合は、**[Other]** (その他)、**[Next]** (次へ) の順に選択します。

1. (オプション) アクセスキーの説明タグに値を設定します。これにより、タグのキーと値のペアが IAM ユーザーに対し追加されます。後で、アクセスキーを識別し、更新する際にこの設定が役立ちます。タグキーには、アクセスキー ID が設定されます。タグ値には、入力したアクセスキーの説明が設定されます。完了したら、**[Create access key]** (アクセスキーを作成) を選択します。

1. **[Retrieve access keys]** (アクセスキーの取得) ページで、**[Show]** (表示) を選択してユーザーのシークレットアクセスキーの値を表示するか、**[Download .csv file]** (.csv ファイルをダウンロード) を選択します。これはシークレットアクセスキーを保存する唯一の機会です。シークレットアクセスキーを安全な場所に保存したら、**[Done]** (完了) を選択します。

## アクセスキーを非アクティブ化する (コンソール)
<a name="deactivate-access-key-seccreds"></a>

適切なアクセス許可が付与されている場合は、AWS マネジメントコンソールを使用して自分のアクセスキーを非アクティブ化できます。

**アクセスキーを無効にするには**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソールのセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **[Access keys]**アクセスキーセクションで、無効にするキーを選択し、**[Actions]** (アクション)、**[Deactivate]** (無効化) の順に選択します。確認を求めるメッセージが表示されたら、[**Deactivate (無効化)**] を選択します。非アクティブ化されたアクセスキーは、2 つのアクセスキーの制限にカウントされます。

## アクセスキーをアクティブ化する (コンソール)
<a name="activate-access-key-seccreds"></a>

適切なアクセス許可が付与されている場合は、AWS マネジメントコンソールを使用して自分のアクセスキーをアクティブ化できます。

**アクセスキーを有効にするには**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソールのセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **[Access keys]** (アクセスキー) セクションで、有効にするキーを選択し、**[Actions]** (アクション)、**[Activate]** (有効化) の順に選択します。

## アクセスキーを削除する (コンソール)
<a name="delete-access-key-seccreds"></a>

適切なアクセス許可が付与されている場合は、AWS マネジメントコンソールを使用して自分のアクセスキーを削除できます。

**不要になったアクセスキーを削除するには**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソールのセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **[Access keys]** (アクセスキー) セクションで、削除するキーを選択し、**[Actions]** (アクション)、**[Delete]** (削除)の順に選択します。ダイアログの指示に従って、まず **[Deactivate]** (無効化) をしてから、削除することを確認します。アクセスキーを完全に削除する前に、アクセスキーが使用されていないことを確認することをお勧めします。

# IAM 管理者が IAM ユーザーアクセスキーを管理する方法
<a name="access-keys-admin-managed"></a>

IAM 管理者は、個々の IAM ユーザーに関連付けられたアクセスキーを作成、アクティブ化、非アクティブ化、削除できます。また、アクセスキーを持つアカウントの IAM ユーザーを一覧表示し、特定のアクセスキーを持つ IAM ユーザーを見つけることもできます。

**Topics**
+ [IAM ユーザーのアクセスキーを作成するには](#admin-create-access-key)
+ [IAM ユーザーのためにアクセスキーを非アクティブ化するには](#admin-deactivate-access-key)
+ [IAM ユーザーのためにアクセスキーをアクティブ化するには](#admin-activate-access-key)
+ [IAM ユーザーのためにアクセスキーを削除するには](#admin-delete-access-key)
+ [IAM ユーザーのアクセスキーを一覧表示するには](#admin-list-access-key)
+ [IAM ユーザーのアクセスキーを一覧表示するには](#admin-list-access-key)
+ [アカウント内のユーザーのすべてのアクセスキー ID を表示するには](#admin-list-all-access-keys)
+ [アクセスキー ID を使用してユーザーを検索するには](#admin-find-user-access-keys)
+ [アクセスキー ID の最新の使用状況を確認するには](#admin-find-most-recent-use-access-keys)

## IAM ユーザーのアクセスキーを作成するには
<a name="admin-create-access-key"></a>

------
#### [ Console ]

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザー詳細ページを開くには、ユーザー名を選択します。

1. **[セキュリティ認証情報]** タブの **[アクセスキー]** セクションで、**[アクセスキーの作成]** を選択します。

   このボタンが無効化されている場合は、新しいキーを作成する前に、既存のキーのいずれかを削除する必要があります。

1. **[Access key best practices & alternatives]** (アクセスキーのベストプラクティスと代替案) ページで、ベストプラクティスと代替案を確認します。ユースケースを選択して、長期的なアクセスキーの作成を避けるのに役立つ他のオプションを確認します。

1. 依然としてユースケースにアクセスキーが必要だと考えられる場合は、**[Other]** (その他)、**[Next]** (次へ) の順に選択します。

1. **(オプション)** **[説明タグの設定]** ページで、アクセスキーに説明タグを追加して、アクセスキーの追跡に役立てることができます。**[アクセスキーを作成]** を選択します。

1. **[Retrieve access key]** (アクセスキーの取得) ページで、**[Show]** (表示) を選択し、ユーザーのシークレットアクセスキーの値を表示します。

1. アクセスキー ID とシークレットアクセスキーを、ご使用のコンピュータの安全な場所に `.csv` ファイルとして保存するには、**[Download .csv file]** (.csv ファイルをダウンロード) を選択します。
**重要**  
新しく作成したアクセスキーを表示またはダウンロードできるのはこのときだけであり、復元することはできません。アクセスキーを安全に保持してください。

ユーザー用のアクセスキー作成後、キーペアはデフォルトで有効状態になっているので、対象のユーザーはすぐにキーペアを使用できます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

------
#### [ API ]

次のオペレーションを呼び出します。
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) 

------

## IAM ユーザーのためにアクセスキーを非アクティブ化するには
<a name="admin-deactivate-access-key"></a>

------
#### [ Console ]

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザー詳細ページを開くには、ユーザー名を選択します。

1. **[セキュリティ認証情報]** タブの **[アクセスキー]** セクションで、**[アクション]** ドロップダウンメニューを選択し、**[非アクティブ化]** を選択します。

1. **[非アクティブ化]** ダイアログボックスで **[非アクティブ化]** を選択して、アクセスキーを非アクティブ化することを確定します。

アクセスキーを非アクティブ化すると、API コールで使用できなくなります。必要に応じて、再度アクティブ化できます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

------
#### [ API ]

次のオペレーションを呼び出します。
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 

------

## IAM ユーザーのためにアクセスキーをアクティブ化するには
<a name="admin-activate-access-key"></a>

------
#### [ Console ]

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザー詳細ページを開くには、ユーザー名を選択します。

1. **[セキュリティ認証情報]** タブの **[アクセスキー]** セクションで、**[アクション]** ドロップダウンメニューを選択し、**[アクティブ化]** を選択します。

アクセスキーをアクティブ化すると、API コールで使用できるようになります。必要に応じて、再度非アクティブ化できます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

------
#### [ API ]

次のオペレーションを呼び出します。
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 

------

## IAM ユーザーのためにアクセスキーを削除するには
<a name="admin-delete-access-key"></a>

アクセスキーが非アクティブ化した後、不要になったら削除します。

------
#### [ Console ]

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザー詳細ページを開くには、ユーザー名を選択します。

1. **[セキュリティ認証情報]** タブの **[アクセスキー]** セクションで、アクセスキーを非アクティブ化するための **[アクション]** ドロップダウンメニューを選択し、**[削除]** を選択します。

1. **[削除]** ダイアログボックスで、テキスト入力フィールドにアクセスキー ID を入力し、**[削除]** を選択して、アクセスキーを削除することを確定します。

アクセスキーを削除すると、復元できません。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)

------
#### [ API ]

次のオペレーションを呼び出します。
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html) 

------

## IAM ユーザーのアクセスキーを一覧表示するには
<a name="admin-list-access-key"></a>

IAM ユーザーに関連付けられたアクセスキー ID のリストを表示できます。

------
#### [ Console ]

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザー詳細ページを開くには、ユーザー名を選択します。

1. **[セキュリティ認証情報]** タブの **[アクセスキー]** セクションに、ユーザーのアクセスキーが一覧表示されます。

各 IAM ユーザーは、2 つのアクセスキーを持つことができます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)

------
#### [ API ]

次のオペレーションを呼び出します。
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) 

------

## IAM ユーザーのアクセスキーを一覧表示するには
<a name="admin-list-access-key"></a>

IAM ユーザーに関連付けられたアクセスキー ID のリストを表示できます。

------
#### [ Console ]

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザー詳細ページを開くには、ユーザー名を選択します。

1. **[セキュリティ認証情報]** タブの **[アクセスキー]** セクションに、表示される各キーのステータスを含む、ユーザーのアクセス キー ID が一覧表示されます。
**注記**  
ユーザーのアクセスキー ID のみが表示されます。シークレットアクセスキーは、キー作成時にのみ取得できます。

各 IAM ユーザーは、2 つのアクセスキーを持つことができます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)

------
#### [ API ]

次のオペレーションを呼び出します。
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) 

------

## アカウント内のユーザーのすべてのアクセスキー ID を表示するには
<a name="admin-list-all-access-keys"></a>

AWS アカウント内のユーザーのアクセスキー ID のリストを表示できます。

------
#### [ Console ]

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザー詳細ページを開くには、ユーザー名を選択します。

1. 必要に応じて、以下の手順を行い、[**アクセスキー ID**] 列をユーザーテーブルに追加します。

   1. 右端のテーブルの上で、**[設定]** アイコン (![\[Preferences icon\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/console-settings-icon.console.png)) を選択します。

   1. **[設定]** ダイアログボックスの **[表示可能な列を選択]** で、**[アクセスキー ID]** を有効にします。

   1. **[確認]** を選択して、ユーザーのリストに戻ります。リストが更新され、アクセスキー ID が含まれるようになります。

1. **[アクセスキー ID]** 列には、各アクセスキーの状態と、その後に ID が表示されます (**`Active - AKIAIOSFODNN7EXAMPLE`**、**`Inactive - AKIAI44QH8DHBEXAMPLE`** など)。

   この情報を使用して、1 つ以上のアクセスキーを持つユーザーのアクセスキー ID を表示およびコピーできます。この列のアクセスキーのないユーザーに、**[`-`]** と表示されます。
**注記**  
シークレットアクセスキーは、キー作成時にのみ取得できます。

各 IAM ユーザーは、2 つのアクセスキーを持つことができます。

------

## アクセスキー ID を使用してユーザーを検索するには
<a name="admin-find-user-access-keys"></a>

アクセスキー ID を使用して、AWS アカウント内のユーザーを検索できます。

------
#### [ Console ]

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

1. ナビゲーションペインの検索ボックスに、AKIAI44QH8DHBEXAMPLE などの **[アクセスキー ID]** を入力します。

1. アクセスキー ID が関連付けられている IAM ユーザーがナビゲーションペインに表示されます。ユーザー詳細ページを開くには、ユーザー名を選択します。

------

## アクセスキー ID の最新の使用状況を確認するには
<a name="admin-find-most-recent-use-access-keys"></a>

アクセスキーの最新の使用状況は、IAM ユーザーページのユーザーリスト、ユーザーの詳細ページ、認証情報レポートに表示されます。

------
#### [ Console ]

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

1. ユーザーリストで、**[最後に使用したアクセスキー]** 列を確認します。

   この列が表示されない場合は、**[設定]** アイコン (![\[Preferences icon\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/console-settings-icon.console.png)) を選択し、**[表示可能な列を選択]** で **[最後に使用したアクセスキー]** を有効にして、列が表示されるようにします。

1. (オプション) ナビゲーションペインの **[アクセスレポート]** で **[認証情報レポート]** を選択して、アカウント内のすべての IAM ユーザーについて最後に使用したアクセスキーの情報を含むレポートをダウンロードします。

1. (オプション) ユーザーの詳細を表示する IAM ユーザーを選択します。**[概要]** セクションには、アクセスキー ID、そのステータス、および最後に使用した日時が含まれます。

------
#### [ AWS CLI ]

次のコマンドを実行します。
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)

------
#### [ API ]

次のオペレーションを呼び出します。
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html) 

------

# アクセスキーを更新する
<a name="id-credentials-access-keys-update"></a>

セキュリティの[ベストプラクティス](best-practices.md#update-access-keys)として、IAM ユーザーのアクセスキーは、従業員が退職するときなど、必要に応じて更新することをお勧めします。IAM ユーザーは、必要な権限が付与されている場合、自分のアクセスキーを更新できます。

自身のアクセスキーを更新するために管理者からユーザーに IAM ユーザーアクセス許可を付与する方法については、「[AWS: IAM ユーザーが [セキュリティ認証情報] ページで自分のパスワード、アクセスキー、および SSH パブリックキーを管理できるようにします](reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh.md)」を参照してください。また、アカウントにパスワードポリシーを適用して、すべての IAM ユーザーにパスワードの更新を要求し、その頻度を決めることもできます。詳細については、「[IAM ユーザー用のアカウントパスワードポリシーを設定する](id_credentials_passwords_account-policy.md)」を参照してください。

**注記**  
シークレットアクセスキーを紛失した場合は、そのアクセスキーを削除し、新しく作成する必要があります。シークレットアクセスキーは、キー作成時にのみ取得できます。この手順を実行して、紛失したアクセスキーを非アクティブ化し、新しい認証情報に置き換えることができます。

**Topics**
+ [IAM ユーザーアクセスキーの更新 (コンソール)](#rotating_access_keys_console)
+ [アクセスキーの更新 (AWS CLI)](#rotating_access_keys_cli)
+ [アクセスキーの更新 (AWS API)](#rotating_access_keys_api)

## IAM ユーザーアクセスキーの更新 (コンソール)
<a name="rotating_access_keys_console"></a>

AWS マネジメントコンソール からアクセスキーを更新できます。

**IAM ユーザーのアプリケーションを中断せずにアクセスキーを更新するには (コンソール)**

1. 最初のアクセスキーがアクティブな間に、2 番目のアクセスキーを作成します。

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

   1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

   1. 対象のユーザー名を選択し、[**セキュリティ認証情報**] タブを選択します。

   1. [**Access keys (アクセスキー)**] セクションで、[**Create access key (アクセスキーを作成)**] を選択します。**[Access key best practices & alternatives]** (アクセスキーのベストプラクティスと代替案) ページで、**[Other]** (その他)、**[Next]** (次へ) の順に選択します。

   1. (オプション) アクセスキーの説明タグに値を設定して、この IAM ユーザーにタグキーと値のペアを追加します。後で、アクセスキーを識別し、更新する際にこの設定が役立ちます。タグキーには、アクセスキー ID が設定されます。タグ値には、入力したアクセスキーの説明が設定されます。完了したら、**[Create access key]** (アクセスキーを作成) を選択します。

   1. **[Retrieve access keys]** (アクセスキーの取得) ページで、**[Show]** (表示) を選択してユーザーのシークレットアクセスキーの値を表示するか、**[Download .csv file]** (.csv ファイルをダウンロード) を選択します。これはシークレットアクセスキーを保存する唯一の機会です。シークレットアクセスキーを安全な場所に保存したら、**[Done]** (完了) を選択します。

      ユーザー用のアクセスキー作成後、キーペアはデフォルトで有効状態になっているので、対象のユーザーはすぐにキーペアを使用できます。この時点で、ユーザーには 2 つのアクティブなアクセスキーがあります。

1. すべてのアプリケーションとツールを更新して新しいアクセスキーを使用します。

1. <a name="id_credentials_access-keys-key-still-in-use"></a>最も古いアクセスキーの **[Last used]** (前回使用) を確認して、最初のアクセスキーが使用中かどうかを確認します。先に進む前に、数日間待ってから古いアクセスキーが使用されているかどうかを確認するという方法があります。

1. **[Last used]** (前回使用) の情報で、古いキーが使用された形跡がないことを示していても、最初のアクセスキーをすぐには削除しないことをお勧めします。代わりに、**[Actions]** (アクション)、**[Deactivate]** (無効化) の順に選択し、最初のアクセスキーを無効化します。

1. 新しいアクセスキーのみを使用して、アプリケーションが機能しているかどうかを確認してください。この時点で、元のアクセスキーをまだ使用しているツールやアプリケーションは AWS リソースへアクセスできなくなるので、機能が停止されます。そのようなアプリケーションやツールを見つけた場合は、最初のアクセスキーを再度有効にすることができます。次に、「[Step 3](#id_credentials_access-keys-key-still-in-use)」に戻り、新しいキーを使用するためにこのアプリケーションを更新します。

1. 一定期間待機して、すべてのアプリケーションとツールが更新されていることを確認した後、最初のアクセスキーを削除できます。

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

   1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

   1. 対象のユーザー名を選択し、[**セキュリティ認証情報**] タブを選択します。

   1. 削除するアクセスキーの **[Access keys]** (アクセスキー) セクションで、**[Actions]** (アクション) を選択し、次に **[Delete]** (削除) を選択します。ダイアログの指示に従って、まず **[Deactivate]** (無効化) を行ってから、削除することを確認します。

**更新または削除する必要があるアクセスキーを判断する方法 (コンソール)**

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. 必要に応じて、以下の手順を実行して [**Access key age (アクセスキーの古さ)**] 列をユーザーテーブルに追加します。

   1. 右端のテーブルの上で、設定アイコン (![\[Settings icon\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/console-settings-icon.console.png)) を選択します。

   1. [**Manage Columns (列の管理)**] で、[**Access key age (アクセスキーの古さ)**] を選択します。

   1. [**Close (閉じる)**] を選択して、ユーザーのリストに戻ります。

1. [**Access key age (アクセスキーの古さ)**] 列には、最も古いアクティブアクセスキーが作成されてから経過した日数が表示されます。この情報を使用して、更新または削除の必要があるアクセスキーを持つユーザーを検索できます。アクセスキーのないユーザーは、この列に [**None (なし)**] と表示されます。

## アクセスキーの更新 (AWS CLI)
<a name="rotating_access_keys_cli"></a>

AWS Command Line Interface からアクセスキーを更新できます。

**アプリケーションを中断せずにアクセスキーを更新するには (AWS CLI)**

1. 最初のアクセスキーがアクティブな間に、2 番目のアクセスキーを作成します。このキーは、デフォルトでアクティブになります。次のコマンドを実行します。
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

     この時点で、ユーザーには 2 つのアクティブなアクセスキーがあります。

1. <a name="step-update-apps"></a>すべてのアプリケーションとツールを更新して新しいアクセスキーを使用します。

1. <a name="step-determine-use"></a>次のコマンドを使用して最初のアクセスキーがまだ使用されているかどうかを確認します。
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)

   先に進む前に、数日間待ってから古いアクセスキーが使用されているかどうかを確認するという方法があります。

1. ステップ [Step 3](#step-determine-use) で古いキーが使用されていないことがわかっても、最初のアクセスキーはすぐに削除しないことをお勧めします。代わりに、次のコマンドを使用して最初のアクセスキーの状態を `Inactive` に変更します。
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

1. 新しいアクセスキーのみを使用して、アプリケーションが機能しているかどうかを確認してください。この時点で、元のアクセスキーをまだ使用しているツールやアプリケーションは AWS リソースへアクセスできなくなるので、機能が停止されます。このようなアプリケーションまたはツールは、その状態を `Active` に戻すことで、最初のアクセスキーを再度有効にすることができます。次にステップ [Step 2](#step-update-apps) に戻り、新しいキーを使用するようにこのアプリケーションを更新します。

1. 一定期間待機して、すべてのアプリケーションとツールが更新されたことを確認したら、次のコマンドを使用して最初のアクセスキーを削除できます。
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)

## アクセスキーの更新 (AWS API)
<a name="rotating_access_keys_api"></a>

AWS API を使用してアクセスキーを更新できます。

**アプリケーションを中断せずにアクセスキーを更新するには (AWS API)**

1. 最初のアクセスキーがアクティブな間に、2 番目のアクセスキーを作成します。このキーは、デフォルトでアクティブになります。次のオペレーションを呼び出します。
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html)

     この時点で、ユーザーには 2 つのアクティブなアクセスキーがあります。

1. <a name="step-update-apps-2"></a>すべてのアプリケーションとツールを更新して新しいアクセスキーを使用します。

1. <a name="step-determine-use-2"></a>次のオペレーションを呼び出して最初のアクセスキーがまだ使用されているかどうかを確認します。
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)

   先に進む前に、数日間待ってから古いアクセスキーが使用されているかどうかを確認するという方法があります。

1. ステップ [Step 3](#step-determine-use-2) で古いキーが使用されていないことがわかっても、最初のアクセスキーはすぐに削除しないことをお勧めします。代わりに、次のオペレーションを呼び出して最初のアクセスキーの状態を `Inactive` に変更します。
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html)

1. 新しいアクセスキーのみを使用して、アプリケーションが機能しているかどうかを確認してください。この時点で、元のアクセスキーをまだ使用しているツールやアプリケーションは AWS リソースへアクセスできなくなるので、機能が停止されます。このようなアプリケーションまたはツールは、その状態を `Active` に戻すことで、最初のアクセスキーを再度有効にすることができます。次にステップ [Step 2](#step-update-apps-2) に戻り、新しいキーを使用するようにこのアプリケーションを更新します。

1. 一定期間待機して、すべてのアプリケーションとツールが更新されたことを確認したら、次のオペレーションを呼び出して最初のアクセスキーを削除できます。
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)

# アクセスキーを保護する
<a name="securing_access-keys"></a>

アクセスキーを持っているユーザーなら誰でも、AWS リソースに対して同じレベルのアクセス権を持ちます。したがって、AWS でのアクセスキーの保護は非常に困難で、しかも[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)に沿って行う必要があります。

アクセスキーを保護するのに役立つガイダンスについては、以下のセクションを参照してください。

**注記**  
組織によっては、セキュリティ要件とポリシーがこのトピックに記載されているものとは異なる可能性があります。ここで示すのは、一般的なガイドラインとしての提案です。

## AWS アカウントのルートユーザー アクセスキーを削除する (または生成しない)
<a name="root-password"></a>

**アカウントを保護する最善の方法の 1 つは、AWS アカウントのルートユーザー のアクセスキーを持たないことです。**ルートユーザーのアクセスキーを持つ必要がある場合 (まれに) を除いて、キーを生成しないことをお勧めします。代わりに、日常の管理タスクのために AWS IAM アイデンティティセンター で管理ユーザーを作成してください。IAM Identity Center で管理ユーザーを作成する方法については、IAM Identity Center ユーザーガイドの「[はじめに](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html)」を参照してください。

アカウントのルートユーザーアクセスキーが既にある場合は、そのキーを現在使用しているアプリケーション (ある場合) の場所を見つけ、ルートユーザーアクセスキーを IAM ユーザーアクセスキーに置き換えることをお勧めします。次いで、ルートユーザーアクセスキーを無効にして削除します。アクセスキーを更新する方法の詳細については、「[アクセスキーを更新する](id-credentials-access-keys-update.md)」を参照してください。



## 長期アクセスキーの代わりに一時的なセキュリティ認証情報 (IAM ロール) を使用する
<a name="use-roles"></a>

多くの場合、期限のない長期のアクセスキー (IAM ユーザーのアクセスキーなど) は必要ありません。その代わり、IAM ロールを作成し、一時的なセキュリティ認証情報を生成できます。一時的なセキュリティ認証情報は、アクセスキー ID とシークレットアクセスキーで構成されていますが、認証情報がいつ無効になるかを示すセキュリティトークンも含んでいます。

IAM ユーザーやルートユーザーに関連付けられているものなどの長期的なアクセスキーは、それらを手動で取り消すまで有効です。ただし、IAM ロールや AWS Security Token Service の他の機能を使用して取得した一時的なセキュリティ認証情報は、短期間で期限が切れます。認証情報が誤って開示された場合のリスクに備えて、一時的なセキュリティ認証情報を使用することができます。

以下のシナリオでは、IAM ロールと一時的なセキュリティ認証情報を使用します。
+ **Amazon EC2 インスタンスで実行されているアプリケーションまたは AWS CLI スクリプトがある場合。**アプリケーション内で直接アクセスキーを使用しないでください。アクセスキーをアプリケーションに渡したり、アプリケーションに埋め込んだり、ソースからアクセスキーを読み取ったりしないでください。代わりに、アプリケーションに適したアクセス許可を持つ IAM ロールを定義し、[EC2 のロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)を使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動します。これにより、IAM ロールが Amazon EC2 インスタンスに関連付けられます。この方法により、アプリケーションは AWS へのプログラムされた呼び出しに使用することもできる、一時的なセキュリティ認証情報を取得します。AWS SDK および AWS Command Line Interface (AWS CLI)は、そのロールから一時的なセキュリティ認証情報を自動的に取得できます。
+ **クロスアカウントアクセス許可を付与する必要がある場合。**IAM ロールを使用してアカウント間の信頼を確立し、信頼できるアカウントへ制限されたアクセス許可を 1 つのアカウントのユーザーに付与します。詳細については、「[IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任](tutorial_cross-account-with-roles.md)」を参照してください。
+ **モバイルアプリを持っている場合。**暗号化ストレージ内であっても、アクセスキーをアプリに埋め込まないでください。代わりに、[Amazon Cognito](https://aws.amazon.com/cognito/) を使用して、アプリでユーザー ID を管理してください。このサービスでは、Login with Amazon、Facebook、Google、または OpenID Connect (OIDC) に対応している任意の ID プロバイダを使用してユーザーを認証できます。さらに、Amazon Cognito 認証情報プロバイダを使用して、AWS にリクエストを送信するためにアプリが使用する認証情報を管理できます。
+ **AWS に連携しようとしており、組織が SAML 2.0 をサポートしている場合。**SAML 2.0 をサポートする ID プロバイダーを持つ組織で作業する場合は、SAML を使用するようにプロバイダーを設定します。SAML を使用して、AWS と認証情報を交換し、一連の一時的なセキュリティ認証情報を取り戻すことができます。詳細については、「[SAML 2.0 フェデレーション](id_roles_providers_saml.md)」を参照してください。
+ **AWS に連携しようとしており、組織にオンプレミスのアイデンティティストアがある場合。**ユーザーが組織内で認証できる場合、AWS リソースにアクセスするための一時的なセキュリティ認証情報を発行できるアプリケーションを記述することができます。詳細については、「[AWS コンソールへのカスタム ID ブローカーアクセスを有効にする](id_roles_providers_enable-console-custom-url.md)」を参照してください。
+ **IAM ポリシーの条件を使用して、予想されるネットワークからのアクセスのみを許可します。**パブリック IP アドレスや仮想プライベートクラウド (VPC) など、予想されるネットワークのみを指定して許可する[条件つきの IAM ポリシー](reference_policies_elements_condition_operators.md)を実装することで、アクセスキーの使用場所と方法を制限できます。これにより、アクセスキーは想定された許容可能なネットワークからのみ使用できることがわかります。

**注記**  
AWS リソースへのプログラムによるアクセスを必要とするアプリケーションで Amazon EC2 インスタンスを使用していますか? その場合には、[EC2 の IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) を使用します。

## IAM ユーザーのアクセスキーを適切に管理する
<a name="iam-user-access-keys"></a>

プログラムによる AWS へのアクセスを設定したい場合、IAM ユーザー用にアクセスキーを作成して、必要なアクセス許可のみをユーザーに付与します。

IAM ユーザーアクセスキーを保護するために、以下の注意事項を守ってください。
+ **アクセスキーを直接コードに埋め込まないでください。**[AWS SDK](https://aws.amazon.com/tools/#sdk) と [AWS コマンドラインツール](https://aws.amazon.com/tools/#cli) では、既知の場所にアクセスキーを置くことができるため、それらをコードで保持する必要がありません。

  次のいずれかの場所にアクセスキーを置きます。
  + **AWS 認証情報ファイル。**AWS SDK と AWS CLI では、AWS 認証情報ファイルに保存した認証情報が自動的に使用されます。

    AWS 認証情報ファイルの使用については、SDK のドキュメントを参照してください。例としては、*AWS SDK for Javaデベロッパーガイド*の「[AWS 認証情報とリージョンを設定する](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-credentials.html)」および *AWS Command Line Interface ユーザーガイド*の「[設定と認証情報ファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」などがあります。

    AWS SDK for .NET と AWS Tools for Windows PowerShell の認証情報を保存するには、SDK ストアの使用をお勧めします。詳細については、*AWS SDK for .NET デベロッパーガイド*の「[SDK Store の使用](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sdk-store.html)」を参照してください。
  + **環境変数。**マルチテナントシステムでは、システム環境変数ではなくユーザー環境変数を選択します。

    環境変数を使用した認証情報の保存の詳細については、*AWS Command Line Interface ユーザーガイド*の「[環境変数](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html)」を参照してください。
+ **異なるアプリケーションには、異なるアクセスキーを使用します**。こうすることで、アクセスキーが公開された場合に、アクセス許可を分離して、個々のアプリケーションに対するアクセスキーを無効化できます。アプリケーションごとに別々のアクセスキーを持つと、[AWS CloudTrail](https://aws.amazon.com/cloudtrail/) ログファイルに個別のエントリが生成されます。この設定により、特定のアクションを実行したアプリケーションを簡単に判別できます。
+ **必要に応じてアクセスキーを更新してください。**アクセスキーが危険にさらされる可能性がある場合は、アクセスキーを更新し、以前のアクセスキーを削除してください。詳細については、「[アクセスキーを更新する](id-credentials-access-keys-update.md)」を参照してください。
+ **使用していないアクセスキーを削除します。**ユーザーが退職したら、そのユーザーがリソースにアクセスできないようにするため、対応する IAM ユーザーを削除します。アクセスキーが最後に使用された日時を調べるには、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html) API (AWS CLI コマンド: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)) を使用します。
+ **一時的な認証情報を使用し、最も機密性の高い API 操作ができるよう、多要素認証を設定します。**IAM ポリシーを使用して、ユーザーが呼び出すことができる API オペレーションを指定できます。場合によっては、ユーザーが特に機密性の高いアクションを実行することを許可する前に、このユーザーに AWS MFA で認証することを求める追加のセキュリティが必要となることもあります。たとえば、ユーザーにAmazon EC2 `RunInstances`、`DescribeInstances`、および `StopInstances` アクションの実行を許可するポリシーがすでに存在する可能性があります。ただし `TerminateInstances` のような有害なアクションを制限し、AWS MFA デバイスによって認証される場合に限り、ユーザーがそのアクションを実行できるように管理することもできます。詳細については、「[MFA を使用した安全な API アクセス](id_credentials_mfa_configure-api-require.md)」を参照してください。

## AWS アクセスキーを使用してモバイルアプリにアクセスする
<a name="access-keys-mobile-app"></a>

AWS モバイルアプリを使用して、限定された AWS サービスと機能にアクセスできます。モバイルアプリは、外出先でもインシデント対応をサポートするのに役立ちます。詳細およびアプリのダウンロードについては、「[AWS コンソールモバイルアプリケーション](https://aws.amazon.com/console/mobile/)」を参照してください。

コンソールのパスワードまたはアクセスキーを使用して、モバイルアプリにサインインできます。ベストプラクティスとして、ルートユーザーアクセスキーは使用しないでください。その代わりに、モバイルデバイスでパスワードまたは生体認証ロックを使用することに加えて、モバイルアプリを使用して AWS リソースを管理するための IAM ユーザーを作成することを強くお勧めします。モバイルデバイスを紛失した場合は、その IAM ユーザーのアクセス権を削除します。

**アクセスキーを使用してサインインするには (モバイルアプリ)**

1. モバイルデバイスでアプリを開きます。

1. デバイスに ID を初めて追加する場合は、[**Add an identity (ID を追加)**]、[**Access keys (アクセスキー)**] の順に選択します。

   別の ID を使用して既にサインインしている場合は、メニューアイコンを選択し、[**Switch identity** (ID を切り替える)] を選択します。次に、[**Sign in as a different identity (別の ID としてサインイン)**]、[ **Access keys (アクセスキー)**] の順に選択します。

1. [**Access keys (アクセスキー)**] ページで、情報を入力します。
   + **Access key ID (アクセスキー ID)** – アクセスキー ID を入力します。
   + **Secret access key (シークレットアクセスキー)** – シークレットアクセスキーを入力します。
   + **Identity name (ID 名)** – モバイルアプリに表示される ID の名前を入力します。これは、IAM ユーザー名と一致する必要はありません。
   + **Identity PIN (ID PIN)** – 今後のサインイン時に使用する個人識別番号 (PIN) を作成します。
**注記**  
AWS モバイルアプリで生体認証を有効にすると、作成した PIN ではなく、指紋認証または顔認識を使用して検証するように求められます。生体認証に失敗した場合は、代わりに PIN の入力を求められることがあります。

1. [**Verify and add keys**] (確認してキーを追加) を選択します。

   モバイルアプリを使用して、一部のリソースにアクセスできるようになりました。

## 関連情報
<a name="more-resources"></a>

以下のトピックでは、アクセスキーを使用するために AWS SDK および AWS CLI を設定するためのガイダンスを示しています。
+ *AWS SDK for Java デベロッパーガイド*の「[AWS 認証情報とリージョンの設定](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-credentials.html)」。
+ *AWS SDK for .NET デベロッパーガイド*の「[SDK Store の使用](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sdk-store.html)」。
+ *AWS SDK for PHP デベロッパーガイド*の「[SDK への認証情報の提供](https://docs.aws.amazon.com/aws-sdk-php/v2/guide/credentials.html)」。
+ Boto 3 (AWS SDK for Python) ドキュメントの「[設定](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration)」。
+ *AWS Tools for Windows PowerShellユーザーガイド*の「[AWS 認証情報の使用](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html)」。
+ *AWS Command Line Interface ユーザーガイド*の「[設定と認証情報ファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」。
+ AWS SDK for .NET デベロッパーガイドの「[IAM ロールを使用したアクセス権の付与](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html)」
+ AWS SDK for Java 2.x で [Amazon EC2 用の IAM ロールを設定します](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html)

## コンソールアクセスでのアクセスキーとシークレットキー認証情報の使用
<a name="console-access-security-keys"></a>

AWS CLI だけでなく、AWS マネジメントコンソールへの直接アクセスにアクセスキーとシークレットキーの認証情報を使用できます。これは AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) API コールを使用して実現できます。IAM プリンシパルは、`GetFederationToken` によって提供される一時的な認証情報とトークンを使用してコンソール URL を構築することでコンソールにアクセスできます。詳細については、「[AWS コンソールへのカスタム ID ブローカーアクセスを有効にする](id_roles_providers_enable-console-custom-url.md)」を参照してください。

MFA が有効化されている状態で IAM またはルートユーザーの認証情報を使用してコンソールに直接サインインする場合は、MFA が必要です。ただし、(`GetFederationToken` で一時的な認証情報を使用する) 上記の方法を使用する場合、MFA は必要ありません。



## アクセスキーの監査
<a name="Using_access-keys-audit"></a>

コード内の AWS アクセスキーを確認して、キーが所有するアカウントのものであるかどうかを判断できます。アクセスキー ID は、[https://docs.aws.amazon.com/cli/latest/reference/sts/get-access-key-info.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-access-key-info.html) AWS CLI コマンドまたは [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.html) AWS API オペレーションを使用して渡すことができます。

AWS CLI および AWS API オペレーションは、AWS アカウント アクセスキーが属するアカウントの ID を返します。`AKIA` で始まるアクセスキー ID は、IAM ユーザーまたは AWS アカウントのルートユーザー の長期的な認証情報です。`ASIA` で始まるアクセスキー ID は、AWS STS オペレーションを使用して作成される一時的な認証情報です。レスポンスのアカウントがユーザーに属している場合、ルートユーザーとしてサインインしてルートユーザーのアクセスキーを確認できます。次に、[認証情報レポート](id_credentials_getting-report.md)を取得して、キーを所有している IAM ユーザーを確認できます。`ASIA` アクセスキーの一時認証情報をリクエストしたユーザーを確認するには、CloudTrail ログで AWS STS イベントを表示します。

セキュリティ上の理由から、[AWS CloudTrail ログを確認](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds)して、AWS でアクションを実行したユーザーを調べることができます。ロール信頼ポリシーで `sts:SourceIdentity` 条件キーを使用すると、ユーザーがロールを引き受けるときに ID を指定するように要求できます。例えば、IAM ユーザーがセッション名として自分のユーザー名を指定するように要求できます。これにより、AWS の特定のアクションを実行したユーザーを特定できます。詳細については、「[`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity)」を参照してください。

このオペレーションは、アクセスキーの状態を示しません。キーは、アクティブ、非アクティブ、または削除済みのいずれかです。アクティブなキーにオペレーションを実行するアクセス許可がない場合があります。削除済みアクセスキーを指定すると、キーが存在しないというエラーが返されることがあります。

# IAM の AWS 多要素認証
<a name="id_credentials_mfa"></a>

セキュリティを向上させるには、多要素認証 (MFA) を設定して AWS リソースを保護することを推奨します。スタンドアロンアカウント、管理アカウント、メンバーアカウントを含むすべての AWS アカウント の AWS アカウントのルートユーザー と、IAM ユーザーに対して MFA を有効にできます。可能な限り、パスキーやセキュリティキーなどのフィッシング耐性のある MFA を使用することをお勧めします。これらの FIDO ベースの認証はパブリックキー暗号化を使用し、フィッシング、中間者攻撃、リプレイ攻撃に耐性があり、TOTP ベースのオプションよりも強力なレベルのセキュリティを提供します。

MFA は、ルートユーザーのすべてのアカウントタイプに適用されます。詳細については、「[AWS Organizations アカウントのルートユーザーの認証情報です。](root-user-best-practices.md#ru-bp-organizations)」を参照してください。

ルートユーザーの MFA を有効化すると、ルートユーザーの認証情報のみが影響を受けます。アカウントの IAM ユーザーは固有の認証情報を持つ独立した ID であり、各 ID には固有の MFA 設定があります。ルートユーザーを保護するための MFA の使用の詳細については、「[AWS アカウントのルートユーザー の多要素認証](enable-mfa-for-root.md)」を参照してください。

AWS アカウントのルートユーザー と IAM ユーザーは、任意のタイプの MFA デバイスを最大 8 台登録できます。複数の MFA デバイスを登録すると、柔軟性をもたせることができ、1 つのデバイスが紛失または損傷した場合にアクセスが中断するリスクを軽減できるようになります。AWS マネジメントコンソールにログインしたり、AWS CLI を使用してセッションを確立したりするには、MFA デバイスが 1 台あれば十分です。

**注記**  
人間のユーザーが AWS にアクセスする際は、一時的な認証情報の使用を必須とすることをお勧めします。AWS IAM アイデンティティセンター の使用を検討したことのある場合 IAM Identity Center を使用すると、複数の AWS アカウント へのアクセスを一元的に管理できます。ユーザーには、割り当てられたすべてのアカウントに対する MFA で保護された Single Sign-On によるアクセスを、1 つの場所から提供することができます。IAM Identity Center では、 その内部でユーザー ID の作成および管理を行います。あるいは、既存の SAML 2.0 互換 ID プロバイダーにも簡単に接続することができます。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)」(IAM Identity Center とは?) を参照してください。

MFA は、ユーザーが AWS のウェブサイトやサービスにアクセスするときに、サインイン認証情報に加えて、AWS でサポートされている MFA メカニズムからの一意の認証情報を要求することでセキュリティを強化します。

## MFA タイプ
<a name="id_credentials_mfa-types"></a>

AWS は、次の MFA タイプをサポートしています。

**Contents**
+ [パスキーとセキュリティキー](#passkeys-security-keys-for-iam-users)
+ [仮想認証アプリケーション](#virtual-auth-apps-for-iam-users)
+ [ハードウェア TOTP トークン](#hardware-totp-token-for-iam-users)

### パスキーとセキュリティキー
<a name="passkeys-security-keys-for-iam-users"></a>

AWS Identity and Access Management は MFA のパスキーとセキュリティキーをサポートします。FIDO 標準に基づいて、パスキーではパブリックキー暗号化が使用され、パスワードよりも安全性の高い、強力でフィッシング耐性のある認証が提供されます。AWS は、デバイスバインドパスキー (セキュリティキー) と同期パスキーの 2 種類のパスキーをサポートしています。
+ **セキュリティキー**: これらは YubiKey などの物理デバイスで、認証の 2 番目の要素として使用されます。1 つのセキュリティキーで、複数のルートユーザーアカウントと IAM ユーザーをサポートできます。
+ **同期パスキー**: これらは、Google、Apple、Microsoft アカウントなどのプロバイダーの認証情報マネージャー、および 1Password、Dashlane、Bitwarden などのサードパーティーサービスを 2 番目の要素として使用します。

Apple MacBook の Touch ID などの組み込みの生体認証機能を使用して、認証情報マネージャーのロックを解除し、AWS にサインインできます。パスキーは、指紋、顔、またはデバイス PIN を使用して、選択したプロバイダーで作成されます。モバイルデバイスやハードウェアセキュリティキーといったデバイスからクロスデバイス認証 (CDA) パスキーを使用して、ラップトップなどの別のデバイスにサインインすることもできます。詳細については、[「Cross-Device Authentication](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda) (CDA)」を参照してください。

デバイス間でパスキーを同期することで、AWS へのサインインが容易になり、使いやすさと回復性が向上します。パスキーとセキュリティキーの有効化の詳細については、「[ルートユーザーのパスキーまたはセキュリティキーを有効にする (コンソール）](enable-fido-mfa-for-root.md)」を参照してください。

FIDO 仕様と互換性のあるすべての [FIDO 認定製品](https://fidoalliance.org/certification/fido-certified-products/)のリストが、FIDO アライアンスから提供されています。

### 仮想認証アプリケーション
<a name="virtual-auth-apps-for-iam-users"></a>

仮想認証アプリケーションは、電話やその他のデバイスで実行され、物理デバイスをエミュレートします。仮想認証アプリは、[タイムベースドワンタイムパスワード (TOTP)](https://datatracker.ietf.org/doc/html/rfc6238) アルゴリズムを実装しており、単一デバイスで複数のトークンをサポートします。ユーザーは、サインイン中にプロンプトが表示されたら、デバイスから有効なコードを入力する必要があります。ユーザーに割り当てられた各トークンは一意であることが必要です。ユーザーは、別のユーザーのトークンからコードを入力して認証を受けることはできません。

最も強力な保護を実現するために、[パスキーやセキュリティキー](#passkeys-security-keys-for-iam-users)などのフィッシング耐性のある MFA を使用することをお勧めします。パスキーまたはセキュリティキーをまだ使用できない場合は、ハードウェアの購入承認の待機中、またはハードウェアの到着を待つ間の暫定措置として、仮想 MFA デバイスを使用することをお勧めします。仮想 MFA デバイスとして使用可能なサポートされているアプリケーションのリストについては、「[多要素認証 (MFA)](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)」を参照してください。

IAM ユーザーの仮想 MFA デバイスを設定する手順については、「[AWS マネジメントコンソールで仮想 MFA デバイスを割り当てる](id_credentials_mfa_enable_virtual.md)」を参照してください。

**注記**  
AWS アカウント で割り当てられていない仮想 MFA デバイスは、AWS マネジメントコンソール 経由で、またはサインインプロセス中に新しい仮想 MFA デバイスを追加すると削除されます。未割り当ての仮想 MFA デバイスとは、お客様のアカウントにあるデバイスですが、アカウントのルートユーザーまたは IAM ユーザーがサインインプロセスで使用されません。これらは削除されるため、新しい仮想 MFA デバイスをアカウントに追加できます。また、デバイス名を再利用することもできます。  
アカウント内の未割り当ての仮想 MFA デバイスを表示するには、[list-virtual-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-virtual-mfa-devices.html) AWS CLI コマンドまたは [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html) コールを使用できます。
仮想 MFA デバイスを非アクティブ化するには、[deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html) AWS CLI コマンドまたは [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html) コールを使用できます。このデバイスは未割り当てになります。
未割り当ての仮想 MFA デバイスを AWS アカウント ルートユーザーまたは IAM ユーザーにアタッチするには、[enable-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-mfa-device.html) AWS CLI コマンドまたは [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) コールとともに、デバイスが生成した認証コードが必要となります。

### ハードウェア TOTP トークン
<a name="hardware-totp-token-for-iam-users"></a>

ハードウェアデバイスでは、[タイムベースドワンタイムパスワード (TOTP) アルゴリズム](https://datatracker.ietf.org/doc/html/rfc6238)に基づいて 6 桁の数値コードが生成されます。サインイン時に、ユーザーはデバイスから取得した有効なコードを 2 番目のウェブページに入力する必要があります。

これらのトークンは AWS アカウント でのみ使用されます。AWS とセキュアに共有された一意のトークンシードを持つトークンのみを使用できます。トークンシードは、トークンの生成時に生成されるシークレットキーです。他のソースから購入したトークンは、IAM では機能しません。互換性を確保するには、[OTP トークン](https://www.amazon.com/SafeNet-IDProve-Time-based-6-Digit-Services/dp/B002CRN5X8)または [OTP ディスプレイカード](https://www.amazon.com/SafeNet-IDProve-Card-Amazon-Services/dp/B00J4NGUO4)のいずれかのリンクからハードウェア MFA デバイスを購入する必要があります。
+ ユーザーに割り当てられた各 MFA デバイスは一意であることが必要です。ユーザーは、別のユーザーのデバイスからコードを入力して認証することはできません。サポートされているハードウェア MFA デバイスの詳細については、「[多要素認証 (MFA)](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)」を参照してください。
+ 物理 MFA デバイスを使用する場合は、ハードウェア TOTP デバイスの代わりにセキュリティキーを使用することをお勧めします。セキュリティキーは、バッテリー要件がなく、フィッシングへの耐性があり、1 つのデバイスで複数のユーザーをサポートします。

パスキーまたはセキュリティ キーは、AWS CLI または AWS API からではなく、AWS マネジメントコンソール からのみ有効にできます。セキュリティキーを有効にするには、そのデバイスに物理的にアクセスできる必要があります。

IAM ユーザーのハードウェア TOTP トークンを設定する手順については、「[AWS マネジメントコンソールでハードウェア TOTP トークンを割り当てる](id_credentials_mfa_enable_physical.md)」を参照してください。

**注記**  
**SMS テキストメッセージベース MFA** – AWS では、SMS 多要素認証 (MFA) の有効化のサポートを終了しました。SMS テキストメッセージベースの MFA を使用する IAM ユーザーを抱えているお客様は、別のいずれかの方法 ([パスキーまたはセキュリティキー](id_credentials_mfa_enable_fido.md)、[仮想 (ソフトウェアベースの) MFA デバイス](id_credentials_mfa_enable_virtual.md)、または[ハードウェア MFA デバイス](id_credentials_mfa_enable_physical.md)) に切り替えることをお勧めします。割り当てられた SMS MFA デバイスを使用して、アカウントのユーザーを識別することができます。これを行うには、IAM コンソールに移動して、ナビゲーションペインの [**ユーザー**] を選択し、テーブルの [**MFA**] 列の [**SMS**] を使用してユーザーを探します。

## MFA 奨励事項
<a name="id_credentials_mfa-recommendations"></a>

AWS ID を保護するには、MFA 認証に関する以下の推奨事項に従ってください。
+ [パスキーやセキュリティキー](#passkeys-security-keys-for-iam-users)などのフィッシング耐性のある MFA を MFA デバイスとして使用することをお勧めします。これらの FIDO ベースの認証機能は、フィッシングなどの攻撃に対して最も強力な保護を提供します。
+ AWS アカウント 内の AWS アカウントのルートユーザー と IAM ユーザーに対しては、複数の MFA デバイスを有効にすることをお勧めします。これにより、AWS アカウント のセキュリティレベルを引き上げ、AWS アカウントのルートユーザー などの権限の高いユーザーに対するアクセスの管理を簡素化できます。
+ AWS アカウントのルートユーザー および IAM ユーザーに対し、「[現在サポートされている MFA タイプ](https://aws.amazon.com/iam/features/mfa/)」の任意の組み合わせで、最大 **8** 台の MFA デバイスを登録できます。MFA デバイスが複数ある場合でも、そのユーザとして AWS マネジメントコンソール にログインしたり、AWS CLI を使用してセッションを作成したりするのに必要なのは、1 台の MFA デバイスだけです。IAM ユーザーは既存の MFA デバイスで認証して、追加の MFA デバイスを有効または無効にする必要があります。
+ MFA デバイスが紛失、盗難、またはアクセス不能になった場合は、残りの MFA デバイスのいずれかを使用して、AWS アカウント での回復手順を実行することなく AWS アカウント にアクセスできます。MFA デバイスが紛失または盗難に遭った場合は、関連付けられている IAM プリンシパルからそのデバイスを切り離してください。
+ 複数の MFA を使用すると、地理的に離れた場所にいる従業員やリモートで作業している従業員は、ハードウェアベースの MFA 使用して AWS にアクセスできます。ハードウェアデバイスを 1 台送付したり、1 台のハードウェアデバイスを従業員間で物理的に交換したりする必要はありません。
+ IAM プリンシパルに追加の MFA デバイスを使用すると、1 つ以上の MFA を日常的に使用できると同時に、物理 MFA デバイスをボールドなどの安全な物理的な場所に保存したり、バックアップや冗長性を確保したりできます。

**注意事項**  
セキュリティキーまたはパスキーの MFA 情報を AWS STS API オペレーションに渡して一時的認証情報をリクエストすることはできません。セキュリティキーまたはパスキーを使用する場合は、 `aws login` コマンドを実行して、AWS CLI および AWS SDK で使用する認証情報を取得できます。
AWS CLI コマンドまたは AWS API 操作を使用して [FIDO セキュリティキー](id_credentials_mfa_enable_fido.md)を有効にすることはできません。
複数のルートユーザーまたは IAM MFA デバイスに同じ名前を使用することはできません。

## その他のリソース
<a name="id_credentials_mfa-resources"></a>

MFA の詳細については、次のリソースを参照してください。
+ MFA を使用して AWS にアクセスする方法の詳細については、「[MFA 対応のサインイン](console_sign-in-mfa.md)」を参照してください。
+  IAM アイデンティティセンターを活用して、AWS アクセスポータル、IAM アイデンティティセンター統合アプリケーション、AWS CLI への安全な MFA アクセスを有効にすることができます。詳細については、「[IAM アイデンティティセンターで MFA を有効化する](https://docs.aws.amazon.com/singlesignon/latest/userguide/mfa-getting-started.html)」を参照してください。

# AWS マネジメントコンソールでパスキーやセキュリティキーを割り当てる
<a name="id_credentials_mfa_enable_fido"></a>

パスキーは、AWS リソースを保護するために使用できる[多要素認証 (MFA) デバイス](id_credentials_mfa.md)の一種です。AWS は、同期パスキーと、セキュリティキーとも呼ばれるデバイスにバインドされたパスキーをサポートします。

同期パスキーを使用すると、IAM ユーザーは、多くのデバイスで (新しいデバイスであっても)、FIDO サインイン認証情報にアクセスできます。すべてのアカウントですべてのデバイスを再登録する必要はありません。同期パスキーには、Google、Apple、Microsoft などのファーストパーティ認証情報マネージャーと、1Password 、Dashlane、Bitwarden などのサードパーティー認証情報マネージャーが 2 番目の要素として含まれます。デバイス上の生体認証 (TouchID、FaceID など) を使用して、選択した認証情報マネージャーのロックを解除してパスキーを使用することもできます。

または、デバイスにバインドされたパスキーは、コンピュータの USB ポートに接続する FIDO セキュリティキーにバインドされます。プロンプトが表示されたらタップしてサインインプロセスを安全に完了します。すでに他のサービスで FIDO セキュリティキーを使用していて、[AWS でサポートされている構成](id_credentials_mfa_fido_supported_configurations.md) (Yubico の YubiKey 5 シリーズなど) がある場合は、そのキーも AWS で使用できます。それ以外の場合、AWS で MFA 用に WebAuthn を使用するには、FIDO セキュリティキーを購入する必要があります。さらに、FIDO セキュリティキーは、同じデバイスで複数の IAM ユーザーまたはルートユーザーをサポートできるため、アカウントセキュリティのユーティリティが強化されます。両方のデバイスタイプの仕様と購入情報については、「[多要素認証](https://aws.amazon.com/iam/details/mfa/)」を参照してください。

AWS アカウントのルートユーザー および IAM ユーザーに対し、[[現在サポートされている MFA タイプ]](https://aws.amazon.com/iam/features/mfa/)の任意の組み合わせで、最大 **8** 台の MFA デバイスを登録できます。MFA デバイスが複数ある場合でも、そのユーザとして AWS マネジメントコンソール にログインしたり、AWS CLI を使用してセッションを作成したりするのに必要なのは、1 台の MFA デバイスだけです。複数の MFA デバイスを登録することをお勧めします。例えば、組み込みの認証アプリを登録し、物理的に安全な場所に保管するセキュリティキーも登録することができます。組み込みの認証アプリを使用できない場合は、登録済みのセキュリティキーを使用できます。認証アプリについては、認証アプリが搭載されたデバイスを紛失したり破損したりした場合に、アカウントにアクセスできなくなるのを防ぐため、それらのアプリのクラウドバックアップまたは同期機能を有効にすることもお勧めします。

**注記**  
人間のユーザーが AWS にアクセスする場合には、一時的な認証情報の使用を推奨します。ユーザーは、ID プロバイダーを使用して AWS にフェデレーションし、会社の認証情報と MFA 設定で認証できます。AWS へのアクセスとビジネスアプリケーションを管理する場合は、IAM Identity Center の使用をお勧めします。詳細については、「[IAM Identity Center ユーザーガイド](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)」を参照してください。

**Topics**
+ [必要なアクセス許可](#enable-fido-mfa-for-iam-user-permissions-required)
+ [自身の IAM ユーザーのパスキーまたはセキュリティキーを有効にする (コンソール)](#enable-fido-mfa-for-own-iam-user)
+ [別の IAM ユーザーのパスキーまたはセキュリティキーを有効にする (コンソール)](#enable-fido-mfa-for-iam-user)
+ [パスキーまたはセキュリティキーを置き換える](#replace-fido-mfa)
+ [パスキーとセキュリティキーを使用するためのサポートされる設定](id_credentials_mfa_fido_supported_configurations.md)

## 必要なアクセス許可
<a name="enable-fido-mfa-for-iam-user-permissions-required"></a>

重要な MFA 関連のアクションを保護しながら、独自の IAM ユーザー用に FIDO パスキーを管理するには、次のポリシーのアクセス許可が必要です。

**注記**  
ARN は静的な値であり、認証機能を登録するためにどのプロトコルが使用されたかを示すものではありません。U2F は廃止されたため、新しい実装はすべて WebAuthn を使用しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## 自身の IAM ユーザーのパスキーまたはセキュリティキーを有効にする (コンソール)
<a name="enable-fido-mfa-for-own-iam-user"></a>

自身の IAM ユーザーのパスキーまたはセキュリティキーは、AWS CLI API や AWS API からではなく、AWS マネジメントコンソール からのみ有効にできます。セキュリティキーを有効にするには、そのデバイスに物理的にアクセスできる必要があります。

**自身の IAM ユーザーのパスキーまたはセキュリティキーを有効にするには (コンソール)**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソール のセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. 選択した IAM ユーザーのページで、**[セキュリティ認証情報]** タブを選択します。

1. **[Multi-factor authentication (MFA)** (多要素認証 (MFA)) で、**[Assign MFA device]** (MFA デバイスの割り当て) を選択します。

1. **[MFA デバイス名]** ページで、**[デバイス名]** を入力し、**[パスキーまたはセキュリティキー]** を選択し、**[次へ]** を選択します。

1. **[デバイスの設定]** で、パスキーを設定します。顔や指紋などの生体認証データを使用、デバイス PIN を使用、またはコンピュータの USB ポートに FIDO セキュリティキーを挿入してタップすることで、パスキーを作成します。

1. ブラウザの指示に従って、**[続行]** を選択します。

これで、AWS で使用するパスキーまたはセキュリティキーが登録されました。AWS マネジメントコンソールでの MFA 利用の詳細については、「[MFA 対応のサインイン](console_sign-in-mfa.md)」を参照してください。

## 別の IAM ユーザーのパスキーまたはセキュリティキーを有効にする (コンソール)
<a name="enable-fido-mfa-for-iam-user"></a>

別の IAM ユーザーのパスキーまたはセキュリティキーは、AWS CLI API や AWS API からではなく、AWS マネジメントコンソール からのみ有効にすることができます。

**別の IAM ユーザーのパスキーまたはセキュリティキーを有効にするには (コンソール)**

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. **[ユーザー]** で、MFA を有効化するユーザーの名前を選択します。

1. 選択した IAM ユーザーのページで、**[セキュリティ認証情報]** タブを選択します。

1. **[Multi-factor authentication (MFA)** (多要素認証 (MFA)) で、**[Assign MFA device]** (MFA デバイスの割り当て) を選択します。

1. **[MFA デバイス名]** ページで、**[デバイス名]** を入力し、**[パスキーまたはセキュリティキー]** を選択し、**[次へ]** を選択します。

1. **[デバイスの設定]** で、パスキーを設定します。顔や指紋などの生体認証データを使用、デバイス PIN を使用、またはコンピュータの USB ポートに FIDO セキュリティキーを挿入してタップすることで、パスキーを作成します。

1. ブラウザの指示に従って、**[続行]** を選択します。

これで、別の IAM ユーザーが AWS で使用するパスキーまたはセキュリティキーが登録されました。AWS マネジメントコンソールでの MFA 利用の詳細については、「[MFA 対応のサインイン](console_sign-in-mfa.md)」を参照してください。

## パスキーまたはセキュリティキーを置き換える
<a name="replace-fido-mfa"></a>

[現在サポートされている MFA タイプ](https://aws.amazon.com/iam/features/mfa/)の任意の組み合わせで、一度に最大 8 台の MFA デバイスを、AWS アカウントのルートユーザー および IAM ユーザーに割り当てることができます。ユーザーが FIDO の認証装置を紛失した場合や、何らかの理由で交換する必要がある場合、最初に古い FIDO 認証装置を無効化する必要があります。その後、そのユーザー用に新しい MFA デバイスを追加できます。
+ IAM ユーザーに関連付けられているデバイスを非アクティブ化するには、「[MFA デバイスを無効にする](id_credentials_mfa_disable.md)」を参照してください。
+ IAM ユーザー用に新しい FIDO セキュリティキーを追加するには、「[自身の IAM ユーザーのパスキーまたはセキュリティキーを有効にする (コンソール)](#enable-fido-mfa-for-own-iam-user)」を参照してください。

新しいパスキーまたはセキュリティキーにアクセスできない場合は、新しい仮想 MFA デバイスまたはハードウェア TOTP トークンを有効化します。手順については、以下のいずれかを参照してください。
+ [AWS マネジメントコンソールで仮想 MFA デバイスを割り当てる](id_credentials_mfa_enable_virtual.md) 
+ [AWS マネジメントコンソールでハードウェア TOTP トークンを割り当てる](id_credentials_mfa_enable_physical.md) 

# パスキーとセキュリティキーを使用するためのサポートされる設定
<a name="id_credentials_mfa_fido_supported_configurations"></a>

現在サポートされている設定を使用して、IAM での 多要素認証 (MFA) メソッドとして、FIDO2 のデバイスにバインドされたパスキー (セキュリティキーとも呼ばれます) を使用できます。これには、IAM でサポートされている FIDO2 デバイスや、FIDO2 をサポートしているブラウザなどが含まれます。FIDO2 デバイスを登録する前に、お使いのブラウザとオペレーティングシステム (OS) のバージョンが最新であることを確認してください。機能の動作は、ブラウザ、認証システム、および OS クライアントによって異なる場合があります。あるブラウザでデバイスの登録に失敗した場合は、別のブラウザで登録を試みることができます。

FIDO2 はオープンな認証標準の FIDO U2F の拡張であり、公開鍵暗号に基づくセキュリティと同等の高レベルのセキュリティを提供します。FIDO2 は、W3C Web 認証仕様 (WebAuthn API) と、アプリケーション層プロトコルである FIDO アライアンスの Client-to-Authenticator Protocol (CTAP) で構成されています。CTAP は、ブラウザやオペレーティングシステムなどのクライアントまたはプラットフォームと外部認証システムとの間の通信を可能にします。AWS で FIDO 認定の認証機能を有効にすると、セキュリティキーにより、AWS でのみ使用するための新しいキーペアが作成されます。まず、認証情報を入力します。プロンプトが表示されたら、AWS によって発行された認証チャレンジに応答するセキュリティキーをタップします。FIDO2 標準の詳細については、「[FIDO2 プロジェクト](https://en.wikipedia.org/wiki/FIDO2_Project)」を参照してください。

## AWS でサポートされている FIDO2 デバイス
<a name="id_credentials_mfa_fido_supported_devices"></a>

IAM では、USB、Bluetooth、または NFC 経由でデバイスに接続する FIDO2 セキュリティデバイスをサポートしています。IAM は、TouchID や FaceID などのプラットフォーム認証機能もサポートしています。IAM は Windows Hello のローカルパスキー登録をサポートしていません。パスキーを作成して使用するには、Windows ユーザーは、モバイルデバイスやハードウェアセキュリティキーなどのデバイスのパスキーを使用して別のデバイス (ラップトップなど) にサインインする[クロスデバイス認証](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda)を使用する必要があります。

**注記**  
AWS は、FIDO2 デバイスを検証するためにコンピュータの物理的 USB ポートにアクセスする必要があります。セキュリティキーは、仮想マシン、リモート接続、またはブラウザのシークレットモードでは機能しません。

FIDO アライアンスでは、FIDO 仕様と互換性のあるすべての [FIDO2 製品](https://fidoalliance.org/certification/fido-certified-products/)のリストを公開しています。

## FIDO2 をサポートするブラウザ
<a name="id_credentials_mfa_fido_browsers"></a>

ウェブブラウザで実行される FIDO2 セキュリティデバイスの可用性は、ブラウザとオペレーティングシステムの組み合わせによって異なります。現在、以下のブラウザでセキュリティキーの使用がサポートされています。


****  

| ウェブブラウザ | macOS 10.15\$1 | Windows 10 | Linux | IOS 14.5 以降 | Android 7 以降 | 
| --- | --- | --- | --- | --- | --- | 
| Chrome | あり | はい | はい | あり | なし | 
| Safari | はい | なし | なし | あり | なし | 
| Edge | はい | あり | なし | あり | なし | 
| Firefox | あり | あり | なし | あり | なし | 

**注記**  
現在、FIDO2 をサポートしている Firefox のほとんどのバージョンでは、デフォルト状態で、そのサポートが有効になっていません。Firefox で FIDO2 のサポートを有効にする手順については、「[FIDO セキュリティキーをトラブルシューティングする](troubleshoot_mfa-fido.md)」を参照してください。  
macOS の Firefox は、パスキーのクロスデバイス認証ワークフローを完全にはサポートしていない場合があります。クロスデバイス認証に進む代わりに、セキュリティキーをタッチするように求めるプロンプトが表示される場合があります。macOS でパスキーを使用してサインインするには、Chrome や Safari などの別のブラウザを使用することをお勧めします。

YubiKey など、FIDO2 認定デバイスのブラウザのサポートについては、「[FIDO2 および U2F のオペレーティングシステムとウェブブラウザのサポート](https://support.yubico.com/hc/en-us/articles/360016615020-Operating-system-and-web-browser-support-for-FIDO2-and-U2F)」を参照してください。

### ブラウザプラグイン
<a name="id_credentials_mfa_fido_plugins"></a>

AWS は、FIDO2 をネイティブにサポートするブラウザのみをサポートしています。AWS は FIDO2 ブラウザのサポートを追加するためのプラグインの使用をサポートしていません。一部のブラウザプラグインは FIDO と互換性がなく、FIDO2 セキュリティキーで予期しない結果が生じることがあります。

ブラウザプラグインの無効化やその他のトラブルシューティングのヒントについては、「[FIDO セキュリティキーを有効にできない](troubleshoot_mfa-fido.md#troubleshoot_mfa-fido-cant-enable)」を参照してください。

## デバイス証明書
<a name="id_credentials_mfa_fido_certifications"></a>

FIPS 検証や FIDO 証明書レベルなど、デバイス関連の証明書を取得して割り当てるのは、セキュリティキーの登録時だけです。デバイス証明書は [FIDO Alliance Metadata Service (MDS)](https://fidoalliance.org/metadata/) から取得できます。セキュリティキーの証明書ステータスまたはレベルが変更されても、デバイスタグに自動的に反映されることはありません。デバイスの証明書情報を更新するには、デバイスを登録し直して、更新された証明書情報を取得します。

AWS では、FIDO MDS から取得したデバイス登録時の条件キーとして、FIPS-140-2、FIPS-140-3、および FIDO 証明書レベルの証明書タイプが用意されています。希望する証明書タイプとレベルに基づいて、IAM ポリシーに特定の認証者の登録を指定できます。詳細については、以下のポリシーを参照してください。

### デバイス証明書のポリシーの例
<a name="id_credentials_mfa_fido_certifications_policies"></a>

以下のユースケースは、FIPS 証明書を持つ MFA デバイスを登録できるようにするサンプルポリシーを示しています。

**Topics**
+ [ユースケース 1: FIPS-140-2 L2 証明書を持つデバイスのみの登録を許可する](#id_credentials_mfa_fido_certifications_policies_use_case_1)
+ [ユースケース 2: FIPS-140-2 L2 および FIDO L1 証明書を持つデバイスの登録を許可する](#id_credentials_mfa_fido_certifications_policies_use_case_2)
+ [ユースケース 3: FIPS-140-2 L2 または FIPS-140-3 L2 証明書を持つデバイスの登録を許可する](#id_credentials_mfa_fido_certifications_policies_use_case_3)
+ [ユースケース 4: FIPS-140-2 L2 認証を持ち、仮想認証システムやハードウェア TOTP などのその他の種類の MFA をサポートするデバイスの登録を許可する](#id_credentials_mfa_fido_certifications_policies_use_case_4)

#### ユースケース 1: FIPS-140-2 L2 証明書を持つデバイスのみの登録を許可する
<a name="id_credentials_mfa_fido_certifications_policies_use_case_1"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        }
    ]
}
```

------

#### ユースケース 2: FIPS-140-2 L2 および FIDO L1 証明書を持つデバイスの登録を許可する
<a name="id_credentials_mfa_fido_certifications_policies_use_case_2"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2",
                    "iam:FIDO-certification": "L1"
                }
            }
        }
    ]
}
```

------

#### ユースケース 3: FIPS-140-2 L2 または FIPS-140-3 L2 証明書を持つデバイスの登録を許可する
<a name="id_credentials_mfa_fido_certifications_policies_use_case_3"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L2"
                }
            }
        }
    ]
}
```

------

#### ユースケース 4: FIPS-140-2 L2 認証を持ち、仮想認証システムやハードウェア TOTP などのその他の種類の MFA をサポートするデバイスの登録を許可する
<a name="id_credentials_mfa_fido_certifications_policies_use_case_4"></a>

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:RegisterSecurityKey": "Create"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:RegisterSecurityKey": "Activate",
          "iam:FIDO-FIPS-140-2-certification": "L2"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "Null": {
          "iam:RegisterSecurityKey": "true"
        }
      }
    }
  ]
}
```

------

## AWS CLI および AWS API
<a name="id_credentials_mfa_fido_cliapi"></a>

AWS は、パスキーとセキュリティキーの使用を AWS マネジメントコンソール でのみサポートしています。MFA に対するパスキーとセキュリティキーの使用は [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) と [AWS API](https://aws.amazon.com/tools/) ではサポートされていません。また、[MFA 保護 API オペレーション](id_credentials_mfa_configure-api-require.md)へのアクセスでもサポートされていません。

## その他のリソース
<a name="id_credentials_mfa_fido_additional_resources"></a>
+ AWS でのパスキーとセキュリティキーの使用の詳細については、「[AWS マネジメントコンソールでパスキーやセキュリティキーを割り当てる](id_credentials_mfa_enable_fido.md)」を参照してください。
+ AWS でのパスキーとセキュリティキーのトラブルシューティングについては、「[FIDO セキュリティキーをトラブルシューティングする](troubleshoot_mfa-fido.md)」を参照してください。
+ FIDO2 サポートに関する一般的な業界情報については、「[FIDO2 プロジェクト](https://en.wikipedia.org/wiki/FIDO2_Project)」を参照してください。

# AWS マネジメントコンソールで仮想 MFA デバイスを割り当てる
<a name="id_credentials_mfa_enable_virtual"></a>

**重要**  
AWS では、AWS への MFA に可能な限りパスキーまたはセキュリティキーを使用することをお勧めします。詳細については、「[AWS マネジメントコンソールでパスキーやセキュリティキーを割り当てる](id_credentials_mfa_enable_fido.md)」を参照してください。

電話や他のデバイスを仮想多要素認証 (MFA) デバイスとして使用できます。これを行うには、[標準ベースの TOTP (時刻ベースのワンタイムパスワード) アルゴリズムである RFC 6238](https://datatracker.ietf.org/doc/html/rfc6238) に準拠するモバイルアプリをインストールします。これらのアプリは、6 桁の認証コードを生成します。認証はセキュリティで保護されていないモバイルデバイスで実行することができ、コードはアクセス許可のない当事者と共有される可能性があるため、TOTP ベースの MFA は [FIDO2](https://en.wikipedia.org/wiki/FIDO_Alliance#FIDO2) セキュリティキーやパスキーなどのフィッシング耐性オプションと同等のセキュリティを提供しません。フィッシングなどの攻撃に対して最も強力な保護を実現するには、MFA にパスキーまたはセキュリティキーを使用することをお勧めします。

パスキーまたはセキュリティキーをまだ使用できない場合は、ハードウェア購入の承認またはハードウェアの到着を待つ間、暫定措置として仮想 MFA デバイスを使用することをお勧めします。

一般的な仮想 MFA アプリでは、複数の仮想デバイスの作成がサポートされているため、複数の AWS アカウント またはユーザーに対しても同じアプリを使用できます。[MFA タイプ](https://aws.amazon.com/iam/features/mfa/)を任意に組み合わせた最大 **8** 台の MFA デバイスを AWS アカウントのルートユーザーおよび IAM ユーザーと共に登録できます。AWS マネジメントコンソールにログインしたり、AWS CLI を使用してセッションを確立したりするには、MFA デバイスが 1 台あれば十分です。複数の MFA デバイスを登録することをお勧めします。また、認証アプリ搭載のデバイスを紛失または損傷した場合にアカウントにアクセスできなくなるのを防ぐため、クラウドバックアップや同期機能を有効にすることをお勧めします。

AWS では、6 桁の OTP を生成する仮想 MFA アプリが必要です。使用できる仮想 MFA アプリケーションのリストについては、「[多要素認証](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)」を参照してください。

**Topics**
+ [必要なアクセス許可](#mfa_enable_virtual_permissions-required)
+ [IAM ユーザーの仮想 MFA デバイスの有効化 (コンソール)](#enable-virt-mfa-for-iam-user)
+ [仮想 MFA デバイスの交換](#replace-virt-mfa)

## 必要なアクセス許可
<a name="mfa_enable_virtual_permissions-required"></a>

IAM ユーザーの仮想 MFA デバイスを更新するには、次のポリシーのアクセス許可が必要です: [AWS: MFA で認証された IAM ユーザーが [セキュリティ認証情報] ページで自分の MFA デバイスを管理できるようにします](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md)。

## IAM ユーザーの仮想 MFA デバイスの有効化 (コンソール)
<a name="enable-virt-mfa-for-iam-user"></a>

AWS マネジメントコンソール で IAM を使用して、アカウントの IAM ユーザーの仮想 MFA デバイスを有効化および管理することができます。IAM リソース (仮想 MFA デバイスを含む) にタグをアタッチして、タグへのアクセスを特定、整理、制御することができます。仮想 MFA デバイスにタグを付けることができるのは、AWS CLI または AWS API を使用する場合のみです。AWS CLI または AWS API を使用して、MFA デバイスを有効化および管理するには、「[AWS CLI または AWS API で MFA デバイスを割り当てる](id_credentials_mfa_enable_cliapi.md)」を参照してください。IAM リソースのタグ付けの詳細については、「[AWS Identity and Access Management リソースのタグ](id_tags.md)」を参照してください 

**注記**  
MFA を設定するには、ユーザーの仮想 MFA デバイスをホストするハードウェアに物理的にアクセスできる必要があります。例えば、スマートフォンで実行される仮想 MFA デバイスを使用するユーザー用に MFA を設定するとします。その場合、ウィザードを完了するには、そのスマートフォンを利用できる必要があります。このため、ユーザーが自分の仮想 MFA デバイスを設定して管理できるようにすることをお勧めします。この場合、必要な IAM アクションを実行する権限をユーザーに付与する必要があります。このアクセス許可を付与する IAM ポリシーの詳細および例については、「[IAM チュートリアル: ユーザーに自分の認証情報および MFA 設定を許可する](tutorial_users-self-manage-mfa-and-creds.md)」およびポリシーの例「[AWS: MFA で認証された IAM ユーザーが [セキュリティ認証情報] ページで自分の MFA デバイスを管理できるようにします](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md)」を参照してください。

**IAM ユーザーの仮想 MFA デバイスを有効にするには (コンソール)**

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. **[Users]** (ユーザー) のリストで、IAM ユーザー名を選択します。

1. [**Security Credentials**] タブを選択します。**[Multi-factor authentication (MFA)** (多要素認証 (MFA)) で、**[Assign MFA device]** (MFA デバイスの割り当て) を選択します。

1. ウィザードで **[デバイス名]** を入力し、**[認証アプリ]**、**[次へ]** の順に選択します。

   IAM が QR コードを含む仮想 MFA デバイスの設定情報を生成して表示します。図は、QR コードに対応していないデバイスでの手動入力に利用できる「シークレット設定キー」を示しています。

1. 仮想 MFA アプリを開きます。仮想 MFA デバイスをホストするために使用できるアプリケーションのリストについては、「[多要素認証](https://aws.amazon.com/iam/details/mfa/)」を参照してください。

   仮想 MFA アプリが複数の仮想 MFA デバイスまたはアカウントをサポートしている場合は、新しい仮想 MFA デバイスまたはアカウントを作成するオプションを選択します。

1. MFA アプリが QR コードをサポートしているかどうかを確認してから、次のいずれかを実行します。
   + ウィザードから **[Show QR code]** (QR コードの表示) を選択し、アプリを使用して QR コードをスキャンします。そのための選択肢には、デバイスのカメラを使用してコードをスキャンするカメラアイコンや**スキャンコード**などがあります。
   + 同じウィザードで **[Show secret key]** (シークレットキーを表示) を選択した後、MFA アプリにシークレットキーを入力します。

   これで仮想 MFA デバイスはワンタイムパスワードの生成を開始します。

1. **[デバイスの設定]** ページで、**[MFA コード 1]** ボックスに、現在仮想 MFA デバイスに表示されているワンタイムパスワードを入力します。デバイスが新しいワンタイムパススワードを生成するまで待ちます (最長 30 秒)。生成されたら [**MFA code 2 (MFA コード 2)**] ボックスに 2 つ目のワンタイムパススワードを入力します。**[Add MFA]** (MFA を追加) を選択します。
**重要**  
コードを生成したら、即時にリクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、MFA デバイスはユーザーとは正常に関連付けられますが、その MFA デバイスは同期されません。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。その場合は、[デバイスの再同期](id_credentials_mfa_sync.md)ができます。

これで仮想 MFA デバイスを AWS で使用できます。AWS マネジメントコンソールでの MFA 利用の詳細については、「[MFA 対応のサインイン](console_sign-in-mfa.md)」を参照してください。

**注記**  
AWS アカウント で割り当てられていない仮想 MFA デバイスは、AWS マネジメントコンソール 経由で、またはサインインプロセス中に新しい仮想 MFA デバイスを追加すると削除されます。未割り当ての仮想 MFA デバイスとは、お客様のアカウントにあるデバイスですが、アカウントのルートユーザーまたは IAM ユーザーがサインインプロセスで使用されません。これらは削除されるため、新しい仮想 MFA デバイスをアカウントに追加できます。また、デバイス名を再利用することもできます。  
アカウント内の未割り当ての仮想 MFA デバイスを表示するには、[list-virtual-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-virtual-mfa-devices.html) AWS CLI コマンドまたは [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html) コールを使用できます。
仮想 MFA デバイスを非アクティブ化するには、[deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html) AWS CLI コマンドまたは [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html) コールを使用できます。このデバイスは未割り当てになります。
未割り当ての仮想 MFA デバイスを AWS アカウント ルートユーザーまたは IAM ユーザーにアタッチするには、[enable-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-mfa-device.html) AWS CLI コマンドまたは [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) コールとともに、デバイスが生成した認証コードが必要となります。

## 仮想 MFA デバイスの交換
<a name="replace-virt-mfa"></a>

AWS アカウントのルートユーザーと IAM ユーザーは、MFA タイプを任意に組み合わせた最大 **8** 台の MFA デバイスを登録できます。ユーザーがデバイスを紛失したか、何らかの理由で交換する必要がある場合は、古いデバイスを非アクティブ化します。その後、新しいデバイスをユーザーに追加できます。
+ 別の IAM ユーザーに関連付けられているデバイスを非アクティブ化するには、「[MFA デバイスを無効にする](id_credentials_mfa_disable.md)」を参照してください。
+ 別の IAM ユーザーの交換用の仮想 MFA デバイスを追加するには、上記の「[IAM ユーザーの仮想 MFA デバイスの有効化 (コンソール)](#enable-virt-mfa-for-iam-user)」の手順に従います。
+ AWS アカウントのルートユーザー ユーザーの交換用の仮想 MFA デバイスを追加するには、[ルートユーザーの仮想 MFA デバイスを有効にする (コンソール)](enable-virt-mfa-for-root.md) の手順に従います。

# AWS マネジメントコンソールでハードウェア TOTP トークンを割り当てる
<a name="id_credentials_mfa_enable_physical"></a>

**重要**  
AWS では、AWS への MFA に可能な限りパスキーまたはセキュリティキーを使用することをお勧めします。詳細については、「[AWS マネジメントコンソールでパスキーやセキュリティキーを割り当てる](id_credentials_mfa_enable_fido.md)」を参照してください。

ハードウェア TOTP トークンは、タイムベースドワンタイムパスワード (TOTP) アルゴリズムに基づいて、6 桁の数値コードを生成します。ユーザーは、サインインプロセス中に求められたら、デバイスから有効なコードを入力する必要があります。ユーザーに割り当てられる各 MFA デバイスは一意であり、他のユーザーのデバイス向けのコードでは認証されません。MFA デバイスをアカウント間またはユーザー間で共有することはできません。

ハードウェア TOTP トークンと [FIDO セキュリティキー](id_credentials_mfa_enable_fido.md)は、いずれもお客様が購入する物理デバイスです。ハードウェア MFA デバイスは、ユーザーが AWS にサインインすると認証用の TOTP コードを生成します。バッテリーに依存しているため、時間の経過とともにバッテリーの交換と AWS との再同期が必要になる場合があります。パブリックキー暗号化を利用した FIDO セキュリティキーは、バッテリーを必要とせず、シームレスな認証プロセスを提供します。フィッシング耐性を高めるためには、FIDO セキュリティキーを使用することをお勧めします。FIDO セキュリティキーは、TOTP デバイスの代わりに使用できる、よりセキュアな手段です。さらに、FIDO セキュリティキーは、同じデバイスで複数の IAM ユーザーまたはルートユーザーをサポートできるため、アカウントセキュリティのユーティリティが強化されます。両方のデバイスタイプの仕様と購入情報については、「[多要素認証](https://aws.amazon.com/iam/details/mfa/)」を参照してください。



IAM ユーザーのハードウェア TOTP デバイスは、AWS マネジメントコンソール、コマンドライン、または IAM API を使用して有効にすることができます。AWS アカウントのルートユーザー の MFA デバイス設定を有効にするには、「[のルートユーザー (コンソール) 用にハードウェア TOTP トークンを有効にします](enable-hw-mfa-for-root.md)」を参照してください。

AWS アカウントのルートユーザー および IAM ユーザーに対し、「[現在サポートされている MFA タイプ](https://aws.amazon.com/iam/features/mfa/)」の任意の組み合わせで、最大 **8** 台の MFA デバイスを登録できます。MFA デバイスが複数ある場合でも、そのユーザとして AWS マネジメントコンソール にログインしたり、AWS CLI を使用してセッションを作成したりするのに必要なのは、1 台の MFA デバイスだけです。

**重要**  
MFA デバイスを紛失したりアクセスできなくなったりした場合に、ユーザーが引き続きアカウントにアクセスできるようにするため、複数の MFA デバイスを利用可能にしておくことをお勧めします。

**注記**  
コマンドラインから MFA デバイスを有効化する場合には、[https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html) を使用します。IAM API で MFA デバイスを有効化する場合には、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) オペレーションを使用します。

**Topics**
+ [必要なアクセス許可](#enable-hw-mfa-for-iam-user-permissions-required)
+ [自身の IAM ユーザーでハードウェア TOTP トークンを有効にする (コンソール)](#enable-hw-mfa-for-own-iam-user)
+ [別の IAM ユーザーのハードウェア TOTP トークンを有効にする (コンソール)](#enable-hw-mfa-for-iam-user)
+ [物理的な MFA デバイスの交換](#replace-phys-mfa)

## 必要なアクセス許可
<a name="enable-hw-mfa-for-iam-user-permissions-required"></a>

重要な MFA 関連のアクションを保護しながら、IAM ユーザー用にハードウェア TOTP トークンを管理するには、以下のポリシーによるアクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## 自身の IAM ユーザーでハードウェア TOTP トークンを有効にする (コンソール)
<a name="enable-hw-mfa-for-own-iam-user"></a>

 自分のハードウェア TOTP トークンは、AWS マネジメントコンソール から有効化できます。

**注記**  
ハードウェア TOTP トークンを有効にする前に、そのデバイスに対し物理的なアクセス権限を持つ必要があります。

**自身の IAM ユーザーのハードウェア TOTP トークンを有効にするには (コンソール)**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソール のセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **[AWS IAM 認証情報]** タブの **[多要素認証 (MFA)]** セクションで、**[MFA デバイスの割り当て]** を選択します。

1. ウィザード内で **[Device name]** (デバイス名) に入力した後、**[Hardware TOTP token]** (ハードウェア TOTP トークン)、**[Next]** (次へ) の順に選択します。

1. 対象デバイスのシリアルナンバーを入力します。シリアルナンバーは、通常、デバイスの背面にあります。

1. MFA デバイスに表示されている 6 桁の数字を [**MFA code 1 (MFA コード 1)**] に入力します。デバイス前面のボタンを押して数字を表示する場合があります。  
![\[IAM ダッシュボード、MFA デバイス\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/MFADevice.png)

1. デバイスがコードを更新するまで 30 秒ほど待ち、更新後に表示された 6 桁の数字を [**MFA code 2 (MFA コード 2)**] に入力します。デバイス前面のボタンを再度押して新しい数字を表示する場合があります。

1. **[Add MFA]** (MFA を追加) を選択します。
**重要**  
認証コードを生成した後すぐに、リクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、MFA デバイスはユーザーとは正常に関連付けられますが、その MFA デバイスは同期されなくなります。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。その場合は、[デバイスの再同期](id_credentials_mfa_sync.md)ができます。

デバイスを AWS で使用する準備が整いました。AWS マネジメントコンソールでの MFA 利用の詳細については、「[MFA 対応のサインイン](console_sign-in-mfa.md)」を参照してください。

## 別の IAM ユーザーのハードウェア TOTP トークンを有効にする (コンソール)
<a name="enable-hw-mfa-for-iam-user"></a>

 AWS マネジメントコンソール から別の IAM ユーザーのハードウェア TOTP トークンを有効にできます。

**別の IAM ユーザーのハードウェア TOTP トークンを有効にするには (コンソール)**

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. MFA を有効化するユーザーの名前を選択します。

1. [**Security Credentials**] タブを選択します。**[Multi-factor authentication (MFA)** (多要素認証 (MFA)) で、**[Assign MFA device]** (MFA デバイスの割り当て) を選択します。

1. ウィザード内で **[Device name]** (デバイス名) に入力した後、**[Hardware TOTP token]** (ハードウェア TOTP トークン)、**[Next]** (次へ) の順に選択します。

1. 対象デバイスのシリアルナンバーを入力します。シリアルナンバーは、通常、デバイスの背面にあります。

1. MFA デバイスに表示されている 6 桁の数字を [**MFA code 1 (MFA コード 1)**] に入力します。デバイス前面のボタンを押して数字を表示する場合があります。  
![\[IAM ダッシュボード、MFA デバイス\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/MFADevice.png)

1. デバイスがコードを更新するまで 30 秒ほど待ち、更新後に表示された 6 桁の数字を [**MFA code 2 (MFA コード 2)**] に入力します。デバイス前面のボタンを再度押して新しい数字を表示する場合があります。

1. **[Add MFA]** (MFA を追加) を選択します。
**重要**  
認証コードを生成した後すぐに、リクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、MFA デバイスはユーザーとは正常に関連付けられますが、その MFA デバイスは同期されなくなります。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。その場合は、[デバイスの再同期](id_credentials_mfa_sync.md)ができます。

デバイスを AWS で使用する準備が整いました。AWS マネジメントコンソールでの MFA 利用の詳細については、「[MFA 対応のサインイン](console_sign-in-mfa.md)」を参照してください。

## 物理的な MFA デバイスの交換
<a name="replace-phys-mfa"></a>

「[現在サポートされている MFA タイプ](https://aws.amazon.com/iam/features/mfa/)」の任意の組み合わせで、一度に最大 8 台の MFA デバイスを、AWS アカウントのルートユーザー および IAM ユーザーに割り当てることができます。ユーザーがデバイスを紛失したか、何らかの理由で交換する必要がある場合、最初に古いデバイスを非アクティブ化する必要があります。その後、新しいデバイスをユーザーに追加できます。
+ 現在ユーザーに関連付けられているデバイスを非アクティブ化するには、「[MFA デバイスを無効にする](id_credentials_mfa_disable.md)」を参照してください。
+ IAM ユーザーに対し、交換用ハードウェア TOTP トークンを追加するには、このトピックの前半にある手順「[別の IAM ユーザーのハードウェア TOTP トークンを有効にする (コンソール)](#enable-hw-mfa-for-iam-user)」の各ステップに従います。
+ AWS アカウントのルートユーザー に対し、交換用ハードウェア TOTP トークンを追加するには、このトピックの上記手順「[のルートユーザー (コンソール) 用にハードウェア TOTP トークンを有効にします](enable-hw-mfa-for-root.md)」の各ステップに従います。

# AWS CLI または AWS API で MFA デバイスを割り当てる
<a name="id_credentials_mfa_enable_cliapi"></a>

IAM ユーザーの仮想 MFA デバイスを有効にするには、AWS CLI コマンドまたは AWS API オペレーションを使用します。AWS CLI、AWS API、Tools for Windows PowerShell、またはその他のコマンドラインツールを使用して AWS アカウントのルートユーザー の MFA デバイスを有効にすることはできません。ただし、AWS マネジメントコンソール を使用して、ルートユーザーの MFA デバイスを有効化することができます。

AWS マネジメントコンソール から MFA デバイスを有効にすると、コンソールがお客様に代わって複数のステップを実行します。代わりに AWS CLI、Tools for Windows PowerShell、または AWS API を使用して仮想デバイスを作成する場合は、それらのステップを適切な順序で自分で実行する必要があります。たとえば、仮想 MFA デバイスを作成するには、IAM オブジェクトを作成し、文字列または QR コードグラフィックとしてコードを抽出する必要があります。次に、デバイスを IAM ユーザーと同期させて関連付ける必要があります。詳細については、[New-IAMVirtualMFADevice](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=New-IAMVirtualMFADevice.html&tocid=New-IAMVirtualMFADevice) の **[Examples]** (例) セクションを参照してください。物理デバイスの場合は作成ステップを飛ばし、デバイスを同期してユーザーに関連付ける手順へ直接進んでください。

IAM リソース (仮想 MFA デバイスを含む) にタグをアタッチして、タグへのアクセスを特定、整理、制御することができます。仮想 MFA デバイスにタグを付けることができるのは、AWS CLI または AWS API を使用する場合のみです。

SDK または CLI を使用する IAM ユーザーは、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) を呼び出して追加の MFA デバイスを有効にするか、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html) を呼び出して既存の MFA デバイスを無効にできます。これを正常に行うには、まず [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) を呼び出し、既存の MFA デバイスで MFA コードを送信する必要があります。この呼び出しで、一時的なセキュリティ認証情報を返されます。この認証情報を使用して、MFA 認証を必要とする API オペレーションに署名できます。リクエストとレスポンスの例については、「[`GetSessionToken`—信頼されていない環境にあるユーザー向けの一時的認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken)」を参照してください。

**IAM で仮想デバイスのエンティティを作成し、仮想 MFA デバイスを表すには**  
これらのコマンドは、次のコマンドの多くでシリアルナンバーの代わりに使用されるデバイスの ARN を提供します。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/create-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-virtual-mfa-device.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html) 

**AWS を使用するように MFA デバイスを有効にするには**  
これらのコマンドでは、デバイスを AWS と同期させて、ユーザーと関連付けます。デバイスが仮想デバイスの場合、仮想デバイスの ARN をシリアルナンバーとして使用します。

**重要**  
認証コードを生成した後すぐに、リクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、MFA デバイスはユーザーとは正常に関連付けられますが、その MFA デバイスは同期されなくなります。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。この場合は、次のコマンドを使用してデバイスを再同期できます。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) 

**デバイスを無効にするには**  
以下のコマンドでは、デバイスとユーザーの関連付けを解除し、デバイスを無効化します。デバイスが仮想デバイスの場合、仮想デバイスの ARN をシリアルナンバーとして使用します。別途、仮想デバイスのエンティティも削除する必要があります。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)

**仮想 MFA デバイスエンティティを一覧表示するには**  
以下のコマンドでは、仮想 MFA デバイスのエンティティを一覧表示します。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html) 

**仮想 MFA デバイスにタグを付けるには**  
仮想 MFA デバイスにタグを付けるには、次のコマンドを使用します。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/tag-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-mfa-device.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagMFADevice.html) 

**仮想 MFA デバイスのタグを一覧表示するには**  
仮想 MFA デバイスにアタッチされたタグを一覧表示するには、次のコマンドを使用します。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-device-tags.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-device-tags.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html) 

**仮想 MFA デバイスのタグを解除するには**  
仮想 MFA デバイスにアタッチされたタグを削除するには、次のコマンドを使用します。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/untag-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-mfa-device.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagMFADevice.html) 

**MFA デバイスを再同期するには**  
AWS が受け入れられないコードをデバイスが生成している場合は、以下のコマンドを使用します。デバイスが仮想デバイスの場合、仮想デバイスの ARN をシリアルナンバーとして使用します。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html) 

**IAM で仮想 MFA デバイスのエンティティを削除するには**  
デバイスのユーザーへの関連付けを解除した後、そのデバイスのエンティティを削除できます。
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html) 
+ AWS API:[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html) 

**紛失または故障中の仮想 MFA デバイスを復旧するには**  
仮想化 MFA アプリをホストするユーザーのデバイスが紛失、交換、または機能しなくなることがあります。この場合、ユーザーが自分で復旧することはできません。ユーザーは、デバイスを無効にするために管理者に連絡する必要があります。詳細については、「[IAM 内で MFA で保護された ID を復元する](id_credentials_mfa_lost-or-broken.md)」を参照してください。

# MFA ステータスをチェックする
<a name="id_credentials_mfa_checking-status"></a>

IAM コンソールで、AWS アカウントのルートユーザー または IAM ユーザーで有効な MFA デバイスが有効化されているかどうかを確認します。

**ルートユーザーの MFA ステータスを確認するには**

1. ルートユーザー認証情報を使用して AWS マネジメントコンソール にサインインし、IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[セキュリティ認証情報]** を選択します。

1. **[Multi-factor Authentication (MFA)]** で、MFA が有効か無効かを確認します。MFA がアクティブ化されていない場合は、アラート記号 (![\[Alert icon\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/console-alert-icon.console.png)) が表示されます。

アカウントに対して MFA を有効化する場合は、以下のいずれかを参照してください。
+ [ルートユーザーの仮想 MFA デバイスを有効にする (コンソール)](enable-virt-mfa-for-root.md)
+ [ルートユーザーのパスキーまたはセキュリティキーを有効にする (コンソール）](enable-fido-mfa-for-root.md)
+ [のルートユーザー (コンソール) 用にハードウェア TOTP トークンを有効にします](enable-hw-mfa-for-root.md)

**IAM ユーザーの MFA ステータスを確認するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで **[ユーザー]** を選択します。

1. 必要に応じて、以下の手順を実行して、[**MFA**] 列を USERS テーブルに追加します。

   1. 右端のテーブルの上で、設定アイコン (![\[Settings icon\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/console-settings-icon.console.png)) を選択します。

   1. [**Manage Columns (列の管理)**] で、[**MFA**] を選択します。

   1. (オプション) ユーザーテーブルに表示しない列見出しのチェックボックスをオフにします。

   1. [**Close (閉じる)**] を選択して、ユーザーのリストに戻ります。

1. [**MFA**] 列に、有効になっている MFA デバイスが表示されます。そのユーザーにアクティブな MFA デバイスがない場合は、コンソールに **[None]** (なし) と表示されます。ユーザーの MFA デバイスが有効になっている場合は、**MFA** 列に、そのデバイスのタイプを示す値 (**[Virtual]** (仮想)、**[Security Key]** (セキュリティキー)、**[Hardware]** (ハードウェア)、または **SMS**) が表示されます。
**注記**  
AWS は、間もなく SMS 多要素認証 (MFA) のサポートを終了します。SMS テキストメッセージベース MFA を使用する IAM ユーザーのお客様は、以下の別のいずれかの方法 ([仮想 (ソフトウェアベースの) MFA デバイス](id_credentials_mfa_enable_virtual.md)、[FIDO セキュリティキー](id_credentials_mfa_enable_fido.md)、または[ハードウェア MFA デバイス](id_credentials_mfa_enable_physical.md)) に切り替えることをお勧めします。割り当てられた SMS MFA デバイスを使用して、アカウントのユーザーを識別することができます。これを行うには、IAM コンソールに移動して、ナビゲーションペインの [**ユーザー**] を選択し、テーブルの [**MFA**] 列の [**SMS**] を使用してユーザーを探します。

1. ユーザーの MFA デバイスに関する追加情報を表示するには、確認する MFA ステータスのユーザー名を選択します。次に、[**認証情報**] タブを選択します。

1. そのユーザーにアクティブな MFA デバイスがない場合は、コンソールに **[MFA デバイスなし] と表示されます。**[多要素認証 (MFA)]** セクションで [MFA デバイスを割り当てて AWS 環境のセキュリティを強化します]**。ユーザーの MFA デバイスが有効化されている場合、**[Multi-factor authentication (MFA)]** (多要素認証 (MFA)) セクションには、対象のデバイスに関する詳細が表示されます。
   + デバイス名
   + デバイスのタイプ
   + デバイスのID (物理デバイスのシリアル番号、または AWS での仮想デバイスの ARN)
   + デバイスの作成日時

デバイスを削除または再同期するには、そのデバイスの横にあるラジオボタンをオンにし、**[Remove]** (削除) または **[Resync]** (再同期) を選択します。

MFA の有効化の詳細については、以下を参照してください。
+ [AWS マネジメントコンソールで仮想 MFA デバイスを割り当てる](id_credentials_mfa_enable_virtual.md)
+ [AWS マネジメントコンソールでパスキーやセキュリティキーを割り当てる](id_credentials_mfa_enable_fido.md)
+ [AWS マネジメントコンソールでハードウェア TOTP トークンを割り当てる](id_credentials_mfa_enable_physical.md)

# 仮想 MFA デバイスとハードウェア MFA デバイスを再同期する
<a name="id_credentials_mfa_sync"></a>

AWS コンソールを使用して、仮想およびハードウェア Multi-Factor Authentication (MFA) デバイスを再同期できます。ユーザーのデバイスが使用しようとしたときに同期されていない場合、ユーザーのサインインは失敗し、IAM はユーザーにデバイスの再同期を促します。

**注記**  
FIDO セキュリティキーは同期しなくなることはありません。FIDO セキュリティキーが紛失または破損した場合は、それを非アクティブにすることができます。MFA デバイスタイプを無効にする方法については、「[別の IAM ユーザーの MFA デバイスを無効化するには (コンソール)](id_credentials_mfa_disable.md#deactivate-mfa-for-user)」を参照してください。

AWS 管理者は、IAM ユーザーの仮想およびハードウェア MFA デバイスがシステムと同期されていない場合、それらのデバイスを再同期できます。

AWS アカウントのルートユーザー MFA デバイスが動作していない場合は、IAM コンソールを使用してデバイスを再同期することができます。デバイスを正常に再同期できない場合は、デバイスの関連付けを解除して再関連付けする必要がある場合があります。方法の詳細については、「[MFA デバイスを無効にする](id_credentials_mfa_disable.md)」および「[IAM の AWS 多要素認証](id_credentials_mfa.md)」を参照してください。

**Topics**
+ [必要なアクセス許可](#id_credentials_mfa_sync_console-permissions-required)
+ [仮想およびハードウェア MFA デバイスの再同期 (IAM コンソール)](#id_credentials_mfa_sync_console)
+ [仮想およびハードウェア MFA デバイスの再同期 (AWS CLI)](#id_credentials_mfa_sync_cli)
+ [仮想およびハードウェア MFA デバイスの再同期 (AWS API)](#id_credentials_mfa_sync_api)

## 必要なアクセス許可
<a name="id_credentials_mfa_sync_console-permissions-required"></a>

独自の IAM ユーザーの仮想またはハードウェア MFA デバイスを再同期するには、次のポリシーのアクセス許可が必要です。このポリシーでは、デバイスを作成することや非アクティブ化することはできません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToViewAndManageTheirOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "BlockAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## 仮想およびハードウェア MFA デバイスの再同期 (IAM コンソール)
<a name="id_credentials_mfa_sync_console"></a>

IAM コンソールを使用して、仮想およびハードウェア MFA デバイスを再同期できます。

**独自の IAM ユーザーの仮想またはハードウェア MFA デバイスを再同期するには (コンソール)**

1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して [IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。
**注記**  
利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある**[別のアカウントにサインイン]**を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

   AWS アカウント アカウント ID の取得については、管理者にお問い合わせください。

1. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて **[Security credentials]** (セキュリティ認証情報) を選択します。  
![\[AWS マネジメントコンソールのセキュリティ認証情報へのリンク\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **[AWS IAM 認証情報]** タブの **[多要素認証 (MFA)]** セクションで、MFA デバイスの横にあるラジオボタンを選択し、**[再同期]** を選択します。

1. デバイスで連続して生成された次の 2 つのコードを [**MFA コード 1**] および [**MFA コード 2**] に入力します。次に、**[Resync]** (再同期) を選択します。
**重要**  
コードを生成したら、即時にリクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、リクエスト処理中に見えますが、デバイスは同期されていません。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。

**別の IAM ユーザーの仮想またはハードウェア MFA デバイスを再同期するには (コンソール)**

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

1. ナビゲーションペインで [**ユーザー**] を選択してから、MFA デバイスを再同期する必要があるユーザーの名前を選択します。

1. ［**Security credentials**］タブを選択します。**[多要素認証 (MFA)]** セクションで、MFA デバイスの横にあるラジオボタンを選択し、**[再同期]** を選択します。

1. デバイスで連続して生成された次の 2 つのコードを [**MFA コード 1**] および [**MFA コード 2**] に入力します。次に、**[Resync]** (再同期) を選択します。
**重要**  
コードを生成したら、即時にリクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、リクエスト処理中に見えますが、デバイスは同期されていません。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。

**サインインする前に ルートユーザーMFA を再同期するには (コンソール)**

1. [**Amazon Web Services Sign In With Authentication Device (認証デバイスによる Amazon Web Services へのサインイン)**] ページで、[**認証デバイスに問題がありますか?] を選択します。[Click here]** (ここをクリックしてください)｡
**注記**  
他のテキスト (例: **MFA を使用してサインイン** や **認証デバイスのトラブルシューティング**) が表示される場合があります。ただし、提供されている機能は同じです。

1. [**Re-Sync With Our Servers (サーバーとの再同期)**] セクションで、デバイスで連続して生成された次の 2 つのコードを [**MFA code 1 (MFA コード 1)**] および [**MFA code 2 (MFA コード 2)**] に入力します。次に、[**Re-sync authentication device (認証デバイスの再同期)**] を選択します。

1. 必要に応じて、パスワードをもう一度入力し、[**サインイン**] を選択します。次に、MFA デバイスを使用してサインインを完了します。

**サインインした後に ルートユーザーMFA デバイスを再同期するには (コンソール)**

1. **[Root user]** (ルートユーザー) を選択して AWS アカウント の E メールアドレスを入力し、アカウント所有者として [IAM コンソール](https://console.aws.amazon.com/iam/)にサインインします。次のページでパスワードを入力します。
**注記**  
ルートユーザーでは、「**IAM ユーザーとしてサインイン**」ページにサインインすることはできません。**[IAM ユーザーのサインイン]** ページが表示された場合、ページ下部付近で **[ルートユーザーの電子メールを使用してサインインする]** を選択します。ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「[ルートユーザーとして AWS マネジメントコンソール へサインインする](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-          root-user-sign-in-tutorial.html)」を参照してください。

1. ナビゲーションバーの右側で、使用するアカウント名を選択し、次に **[Security Credentials]** (セキュリティ認証情報) を選択します。必要に応じて、**[Continue to Security credentials]** (セキュリティ認証情報に進む) を選択します。  
![\[ナビゲーションメニューの [Security credentials] (セキュリティ認証情報)\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. ページの [**Multi-Factor Authentication (MFA)**] セクションを展開します。

1. デバイスの横にあるラジオボタンを選択して、**[Resync]** (再同期) を選択します。

1. **[Resync MFA device]** (MFA デバイスを再同期) ダイアログボックスで、デバイスで連続して生成された次の 2 つのコードを **[MFA code 1]** (MFA コード 1) および **[MFA code 2]** (MFA コード 2) に入力します。次に、**[Resync]** (再同期) を選択します。
**重要**  
コードを生成したら、即時にリクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合、MFA デバイスはユーザーとは正常に関連付けられますが、その MFA デバイスは同期しません。これは、タイムベースドワンタイムパスワード (TOTP) の有効期間が短いために起こります。

## 仮想およびハードウェア MFA デバイスの再同期 (AWS CLI)
<a name="id_credentials_mfa_sync_cli"></a>

AWS CLI から仮想およびハードウェア MFA デバイスを再同期できます。

**IAM ユーザーの仮想 MFA デバイスまたはハードウェア MFA デバイスを再同期するには (AWS CLI)**  
コマンドプロンプトで、[aws iam resync-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html)コマンドを発行します。
+ 仮想 MFA デバイス: デバイスの Amazon リソースネーム（ARN）をシリアル番号として入力します。

  ```
  aws iam resync-mfa-device --user-name Richard --serial-number arn:aws:iam::123456789012:mfa/RichardsMFA --authentication-code1 123456 --authentication-code2 987654
  ```
+ ハードウェア MFA デバイス: ハードウェアデバイスのシリアル番号をシリアル番号として指定します。形式はベンダー固有です。例えば、Amazon から gemalto トークンを購入できます。シリアル番号は通常、4 つの文字の後に 4 つの数字が続きます。

  ```
  aws iam resync-mfa-device --user-name Richard --serial-number ABCD12345678 --authentication-code1 123456 --authentication-code2 987654
  ```

**重要**  
コードを生成したら、即時にリクエストを送信します。コードを生成した後にリクエストを送信するまで時間がかかりすぎる場合は、コードの有効期間が短いためリクエストは送信されません。

## 仮想およびハードウェア MFA デバイスの再同期 (AWS API)
<a name="id_credentials_mfa_sync_api"></a>

IAM には同期を実行する API コールがあります。この場合、仮想およびハードウェア MFA デバイスユーザーにこの API コールに対するアクセス許可を付与することをお勧めします。API コールに基づいてツールを構築して、ユーザーが必要に応じてデバイスを再同期できるようにします。

**IAM ユーザーの仮想またはハードウェア MFA デバイスを再同期するには (AWS API)**
+ [ResyncMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html) リクエストを送信します。

# MFA デバイスを無効にする
<a name="id_credentials_mfa_disable"></a>

IAM ユーザーとして多要素認証 (MFA) デバイスにサインインできない場合は、管理者に連絡してください。

管理者として、他の IAM ユーザー用に端末を無効にすることができます。これにより、ユーザーは MFA を使用しないでサインインできます。MFA デバイスが置き換えられる際、またはデバイスが一時的に使用できない時に、一時的な対処方法としてれを行う場合があります。ただし、ユーザーの新しいデバイスを可能な限り速やかに有効にすることをお勧めします。MFA デバイスを有効化する方法については [IAM の AWS 多要素認証](id_credentials_mfa.md) を参照してください。

**注記**  
API または AWS CLI を使用して AWS アカウント からユーザーを削除する場合は、ユーザーの MFA デバイスを無効化または削除する必要があります。この変更は、ユーザーを削除するプロセスの一環として行います。ユーザーの削除の詳細については、「[IAM ユーザーを削除または非アクティブ化する](id_users_remove.md)」を参照してください。

**Topics**
+ [MFA デバイスの無効化 (コンソール)](#deactive-mfa-console)
+ [MFA デバイスの無効化 (AWS CLI)](#deactivate-mfa-cli)
+ [MFA デバイスの無効化 (AWS API)](#deactivate-mfa-api)

## MFA デバイスの無効化 (コンソール)
<a name="deactive-mfa-console"></a><a name="deactivate-mfa-for-user"></a>

**別の IAM ユーザーの MFA デバイスを無効化するには (コンソール)**

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. ユーザーの MFA デバイスを非アクティブ化するには、削除する MFA を持つユーザーの名前を選択します。

1. ［**Security credentials**］タブを選択します。

1. **[多要素認証 (MFA)]** で MFA デバイスの横にあるラジオボタンを選択し、**[削除]** を選択し、さらにまた **[削除]** を選択します。

   デバイスは AWS から削除されます。このデバイスは、再び有効化されて AWS ユーザーや AWS アカウントのルートユーザー に関連付けられるまで、サインインやリクエストの認証に使用できなくなります。<a name="deactivate-mfa-for-root"></a>

**AWS アカウントのルートユーザー の MFA デバイスを無効にするには (コンソール)**

1. **[Root user]** (ルートユーザー) を選択して AWS アカウント の E メールアドレスを入力し、アカウント所有者として [IAM コンソール](https://console.aws.amazon.com/iam/)にサインインします。次のページでパスワードを入力します。
**注記**  
ルートユーザーでは、「**IAM ユーザーとしてサインイン**」ページにサインインすることはできません。**[IAM ユーザーのサインイン]** ページが表示された場合、ページ下部付近で **[ルートユーザーの電子メールを使用してサインインする]** を選択します。ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「[ルートユーザーとして AWS マネジメントコンソール へサインインする](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-          root-user-sign-in-tutorial.html)」を参照してください。

1. ナビゲーションバーの右側で、使用するアカウント名を選択し、次に **[Security Credentials]** (セキュリティ認証情報) を選択します。必要に応じて、**[Continue to Security credentials]** (セキュリティ認証情報に進む) を選択します。  
![\[ナビゲーションメニューのセキュリティ認証情報\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. **[Multi-factor authentication (MFA)]** (多要素認証 (MFA))セクションで、無効化する MFA デバイスの横にあるラジオボタンをオンにし、**[Remove]** (削除) を選択します。

1. **[**を削除] を選択します。

   AWS アカウント 向けの MFA デバイスの無効化が完了しました。AWS アカウント に関連付けられている E メールを Amazon Web Services からの確認メッセージで確認します。この E メールでは、Amazon Web Services の Multi-Factor Authentication (MFA) が無効化されたことを通知します。メッセージは `@amazon.com` または `@aws.amazon.com` から送信されます。

**注記**  
AWS アカウント で割り当てられていない仮想 MFA デバイスは、AWS マネジメントコンソール 経由で、またはサインインプロセス中に新しい仮想 MFA デバイスを追加すると削除されます。未割り当ての仮想 MFA デバイスとは、お客様のアカウントにあるデバイスですが、アカウントのルートユーザーまたは IAM ユーザーがサインインプロセスで使用されません。これらは削除されるため、新しい仮想 MFA デバイスをアカウントに追加できます。また、デバイス名を再利用することもできます。

## MFA デバイスの無効化 (AWS CLI)
<a name="deactivate-mfa-cli"></a>

**IAM ユーザーの MFA デバイスを無効化するには (AWS CLI)**
+ 次のコマンドを実行します。[https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html)

## MFA デバイスの無効化 (AWS API)
<a name="deactivate-mfa-api"></a>

**IAM ユーザーの MFA デバイスを無効化するには (AWS API)**
+ 呼び出すオペレーション: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)

# IAM 内で MFA で保護された ID を復元する
<a name="id_credentials_mfa_lost-or-broken"></a>

[仮想 MFA デバイス](id_credentials_mfa_enable_virtual.md)または[ハードウェア TOTP トークン](id_credentials_mfa_enable_physical.md)が正常に機能しているようでも、AWS リソースへのアクセスに使用できない場合は、AWS と同期していない可能性があります。仮想またはハードウェア MFA デバイスの同期については、「[仮想 MFA デバイスとハードウェア MFA デバイスを再同期する](id_credentials_mfa_sync.md)」を参照してください。[FIDO セキュリティキー](id_credentials_mfa_enable_fido.md)は同期しなくなることはありません。

AWS アカウントのルートユーザーの [MFA デバイス](id_credentials_mfa.md)で紛失、破損、動作不能といった問題が起きても、アカウントへのアクセスを回復できます。IAM ユーザーは、デバイスを無効にするために管理者に連絡する必要があります。

**重要**  
複数の MFA デバイスをアクティブ化することをお勧めします。複数の MFA デバイスを登録すると、1 つのデバイスが紛失または損傷しても、継続的なアクセスを確保できるようになります。AWS アカウントのルートユーザー と IAM ユーザーは、任意のタイプの MFA デバイスを最大 8 台登録できます。

## 前提条件 — 別の MFA デバイスを使用する
<a name="mfa-lost-or-broken-prerequisites"></a>

[多要素認証 (MFA) デバイス](id_credentials_mfa.md)を紛失または破損したり、MFA デバイスが機能しなかったりする場合は、同じルートユーザーまたは IAM ユーザーに登録された別の MFA デバイスを使用してサインインできます。

**別の MFA デバイスを使用してサインインするには**

1. AWS アカウント ID またはアカウントのエイリアスおよびパスワードを使用して [AWS マネジメントコンソール](url-comsole-domain;iam) にサインインします。

1. **[追加の検証が必要]** ページまたは **[多要素認証]** ページで、**[別の MFA 方法を試す]** を選択します。

1. 選択した MFA デバイスのタイプで認証します。

1. 次のステップは、代替 MFA デバイスで正常にサインインしたかどうかによって異なります。
   + 正常にサインインできたら、[仮想 MFA デバイスとハードウェア MFA デバイスを再同期する](id_credentials_mfa_sync.md) を実行できます。これにより、問題が解決する可能性があります。MFA デバイスが紛失または破損した場合は、非アクティブ化できます。MFA デバイスタイプを無効にする方法については、「[MFA デバイスを無効にする](id_credentials_mfa_disable.md)」を参照してください。
   + MFA でサインインできない場合は、「[ルートユーザー MFA デバイスの回復](#root-mfa-lost-or-broken)」または「[IAM ユーザー MFA デバイスの回復](#iam-user-mfa-lost-or-broken)」のステップを実行して、MFA で保護された ID を復旧します。



## ルートユーザー MFA デバイスの回復
<a name="root-mfa-lost-or-broken"></a>

MFA を使用してサインインできない場合は、アカウントに登録されているメールアドレスと主な連絡先電話番号を使用して本人確認を行うことで、別の認証方法を使用してサインインできます。

代替認証要素を使用してルートユーザーとしてサインインする前に、アカウントに関連付けられている E メールと主要連絡先の電話番号にアクセスできることを確認します。主要連絡先の電話番号を更新する必要がある場合は、ルートユーザーではなく、管理者アクセス権を持つ IAM ユーザーとしてサインインします。アカウント連絡先情報の更新に関するその他の手順については、AWS Billing ユーザーガイドの「[連絡先情報の編集](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html)」を参照してください。E メールと主要連絡先の電話番号にアクセスできない場合は、[AWS サポート](https://support.aws.amazon.com/#/contacts/aws-mfa-support) に連絡する必要があります。

**重要**  
アカウントを正常に回復するために、ルートユーザーにリンクされている E メールアドレスと連絡先電話番号を最新の状態に保つことをお勧めします。詳細については、「AWS アカウント管理リファレンスガイド」の「[AWS アカウントの主要連絡先の更新](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html)」を参照してください。

**認証の代替要因を AWS アカウントのルートユーザー として使用してログインするには**

1.  **[ルートユーザー]** を選択し、AWS アカウント のメールアドレスを入力して、アカウント所有者として [AWS マネジメントコンソール](https://console.aws.amazon.com/) にサインインします。次のページでパスワードを入力します。

1. 「**追加の検証が必要**」ページで、認証に使用する MFA メソッドを選択し、**[次へ]** を選択します。
**注記**  
次のような代替テキストが表示される場合があります。**MFA を使用してサインイン**、**認証デバイスのトラブルシューティング**、または **MFA のトラブルシューティング**ですが、機能は同じです。代替認証要素を使用してアカウントの E メールアドレスと主要連絡先の電話番号を確認できない場合は、MFA デバイスを非アクティブ化するように [AWS サポート](https://support.aws.amazon.com/#/contacts/aws-mfa-support) に連絡する必要があります。

1. 使用している MFA の種類に応じて表示されるページは異なりますが、**[MFA のトラブルシューティング]** オプションの機能は同じです。**[追加の検証が必要]** ページまたは「[**多要素認証]** ページで、**[MFA のトラブルシューティング]** を選択します。

1. 必要に応じて、パスワードをもう一度入力し、[**サインイン**] を選択します。

1. **[認証デバイスのトラブルシューティング]** ページの **[別の認証要素を使用してサインイン]** セクションで **[別の要素を使用してサインイン]** を選択します。

1. 「**別の認証要素を使用してサインイン**」ページで、E メールアドレスの確認を行ってアカウントを認証します。**[確認 E メールを送信]** を選択します。

1. AWS アカウント に関連付けられているメールで、Amazon ウェブサービス (recover-mfa-no-reply@verify.signin.aws) からのメッセージを確認します。E メールの指示にしたがって操作します。

   アカウントに E メールが表示されない場合は、迷惑メールフォルダを確認するか、ブラウザに戻り、[**Resend the email (E メールの再送信)**] を選択します。

1. E メールアドレスを確認した後も、アカウントの認証を続けることができます。主要連絡先の電話番号を確認するには、**[Call me now]** (すぐに連絡を受ける) を選択します。

1. AWS からの呼び出しに応答し、プロンプトが表示されたら、AWS ウェブサイトの電話番号の 6 桁の番号を入力します。

   AWS からの呼び出しを受けない場合は、[**サインイン**] を選択してコンソールに再度サインインし、やり直してください。または、「[Lost or unusable Multi-Factor Authentication (MFA) device](https://support.aws.amazon.com/#/contacts/aws-mfa-support)」(多要素認証 (MFA) の紛失または使用不可) を参照して、サポートにお問い合わせください。

1. 電話番号を確認した後、[**Sign in to the console (コンソールにサインイン)**] を選択してアカウントにサインインすることができます。

1. 次の手順は、使用している MFA のタイプによって異なります。
   + 仮想 MFA デバイスの場合は、デバイスからアカウントを削除します。次に、[AWS セキュリティ認証情報](https://console.aws.amazon.com/iam/home?#security_credential)ページにアクセスし、古い仮想 MFA デバイスのエンティティを削除してから、新しいキーペアを作成することができます。
   + FIDO セキュリティキーの場合は、[[AWS Security Credentials]](https://console.aws.amazon.com/iam/home?#security_credential) ページに移動し、新しい FIDO セキュリティキーを有効にする前に古い FIDO セキュリティキーを非アクティブにします。
   + ハードウェア TOTP トークンの場合は、デバイスの修理または交換についてサードパーティープロバイダーにお問い合わせください。新しいデバイスを受け取るまで、認証の代替要因を使用してサインインを続けることができます。新しいハードウェア MFA デバイスを入手したら、[AWS セキュリティ認証情報](https://console.aws.amazon.com/iam/home?#security_credential)ページに移動し、古い MFA デバイスを削除します。
**注記**  
紛失または盗難された MFA デバイスを同じタイプのデバイスで置き換える必要はありません。例えば、FIDO セキュリティキーが損傷し、新しいものを注文した場合は、その新しい FIDO キーが届くまで、仮想 MFA またはハードウェア TOTP トークンを使用できます。

**重要**  
MFA デバイスが紛失または盗まれた場合は、代替の MFA デバイスにサインインして確立してから、ルートユーザーパスワードを変更します。攻撃者が認証デバイスを盗み、現在のパスワードも保持している可能性があるからです。詳細については、「[AWS アカウントのルートユーザー のパスワードを変更する](root-user-password.md)」を参照してください。

## IAM ユーザー MFA デバイスの回復
<a name="iam-user-mfa-lost-or-broken"></a>

MFA でサインインできない IAM ユーザーは、自ら MFA デバイスを復旧することはできません。管理者に連絡して、デバイスを非アクティブ化するように依頼する必要があります。その後、新しいデバイスを有効にすることができます。

**IAM ユーザーとしての MFA デバイスに関するヘルプ情報を入手するには**

1. お使いの IAM ユーザーのユーザー名やパスワードの設定を行った AWS システム管理者あるいは別の担当者にご連絡ください。管理者は､サインインできるように「[MFA デバイスを無効にする](id_credentials_mfa_disable.md)」の説明に従って、MFA デバイスを非アクティブ化する必要があります。

1. 次の手順は、使用している MFA のタイプによって異なります。
   + 仮想 MFA デバイスの場合は、デバイスからアカウントを削除します。次に、「[AWS マネジメントコンソールで仮想 MFA デバイスを割り当てる](id_credentials_mfa_enable_virtual.md)」の説明に従って､仮想デバイスを有効にします。
   + FIDO セキュリティキーの場合、デバイスの交換についてサードパーティープロバイダーにお問い合わせください。新しい FIDO セキュリティキーを受け取ったら、「[AWS マネジメントコンソールでパスキーやセキュリティキーを割り当てる](id_credentials_mfa_enable_fido.md)」で説明されているとおりに有効にします。
   + ハードウェア TOTP トークンの場合は、デバイスの修理または交換についてサードパーティープロバイダーにお問い合わせください。新しい物理 MFA デバイスを入手したら、「[AWS マネジメントコンソールでハードウェア TOTP トークンを割り当てる](id_credentials_mfa_enable_physical.md)」の説明に従ってデバイスを有効にします。
**注記**  
紛失または盗難された MFA デバイスを同じタイプのデバイスで置き換える必要はありません。任意の組み合わせの MFA デバイスを最大で 8 台用意できます。例えば、FIDO セキュリティキーが損傷し、新しいものを注文した場合は、その新しい FIDO キーが届くまで、仮想 MFA またはハードウェア TOTP トークンを使用できます。

1. MFA デバイスを紛失または盗難にあった場合は、アタッカーがその認証デバイスから現在のパスワードを入手している可能性があるため、パスワードを変更してください。詳細については、[IAM ユーザーのパスワードを管理する](id_credentials_passwords_admin-change-user.md) を参照してください。

# MFA を使用した安全な API アクセス
<a name="id_credentials_mfa_configure-api-require"></a>

IAM ポリシーを使用して、ユーザーが呼び出すことができる API オペレーションを指定できます。特に重要なアクションの実行をユーザーに許可する前に、多要素認証 (MFA) で認証するように求めることで、セキュリティを強化できます。

たとえば、ユーザーにAmazon EC2 `RunInstances`、`DescribeInstances`、および `StopInstances` アクションの実行を許可するポリシーがすでに存在する可能性があります。ただし `TerminateInstances` のような有害なアクションを制限し、AWS MFA デバイスによって認証される場合に限り、ユーザーがそのアクションを実行できるように管理することもできます。

**Topics**
+ [概要:](#MFAProtectedAPI-overview)
+ [シナリオ: クロスアカウントの委任の MFA 保護](#MFAProtectedAPI-cross-account-delegation)
+ [シナリオ: 現在のアカウントの API オペレーションへのアクセスに対する MFA 保護](#MFAProtectedAPI-user-mfa)
+ [シナリオ: リソースベースのポリシーを持つリソースの MFA 保護](#MFAProtectedAPI-resource-policies)

## 概要:
<a name="MFAProtectedAPI-overview"></a>

API オペレーションに MFA 保護を追加する場合、次のタスクが関連します:

1. 管理者は、MFA 認証が求められる API リクエストを行うユーザーごとに AWS MFA デバイスを設定します。詳細については、「[IAM の AWS 多要素認証](id_credentials_mfa.md)」を参照してください。

1. 管理者はユーザーに対し、ユーザーが AWS MFA デバイスで認証されているかどうかを確認する `Condition` 要素を含むポリシーを作成します。

1. ユーザーは、MFA パラメータをサポートする AWS STS API オペレーションである [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) または [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) のいずれかを呼び出します。この呼び出しの一部としてユーザーは、このユーザーに関連付けられるデバイスのデバイス識別子を含めます。また、ユーザーは、デバイスが生成する時間ベースのワンタイムパスワード (TOTP) も含めます。そのつど、ユーザーは一時的な認証情報を取り戻し、その情報を使用して AWS に追加リクエストを行うことができます。
**注記**  
サービスの API オペレーションの MFA 保護は、サービスが一時的なセキュリティ認証情報をサポートする場合にのみ使用できます。サポートするサービスの一覧については、「[一時的セキュリティ認証情報を使用して AWS にアクセスする](https://docs.aws.amazon.com/STS/latest/UsingSTS/UsingTokens.html)」を参照してください。

承認が失敗した場合、AWS は他の承認されていないアクセスと同様に "Access Denied" というエラーメッセージを返します。MFA 保護 API ポリシーが存在する場合、ユーザーが有効な MFA 認証なしで API オペレーションを呼び出す場合に、AWS はポリシーで指定される API オペレーションへのアクセスを拒否します。また、API オペレーションへのリクエストのタイムスタンプがポリシーで指定される許可範囲外である場合にも、そのオペレーションは拒否されます。ユーザーは、MFA コードとデバイスのシリアルナンバーを使って新しい一時的な認証情報をリクエストすることで、再度、MFA の認証を受ける必要があります。

### MFA 条件を指定した IAM ポリシー
<a name="MFAProtectedAPI-policies"></a>

MFA 条件を指定したポリシーは、次にアタッチすることができます:
+ IAM ユーザーまたはグループ
+ Amazon S3 バケット、Amazon SQS キュー、または Amazon SNS トピックなどのリソース
+ ユーザーが引き受けることのできる IAM ロールの信頼ポリシー

ポリシーの MFA 条件を使用して、次のプロパティを確認することができます。
+ 存在 — ユーザーが MFA を使って認証されたことを単に確認するには、`Bool` 条件で `aws:MultiFactorAuthPresent` キーが `True` であることを確認します。ユーザーが短期的な認証情報で認証した場合に限りキーが表示されます。アクセスキーのような長期的な認証情報に、このキーは含まれません。
+ 期間 - MFA 認証後、指定された期間内のみアクセス権を与える場合、数値条件タイプを使用して `aws:MultiFactorAuthAge` キーの有効期間を値 (3600 秒など) と比較します。MFA が使用されなかった場合、`aws:MultiFactorAuthAge` キーは存在しません。

以下の例は、MFA 認証の存在をテストする MFA 条件が含まれる、IAM ロールの信頼ポリシーを示します。このポリシーにより、`Principal` 要素 (`ACCOUNT-B-ID` を有効な AWS アカウント ID に置き換えます) で指定された AWS アカウント のユーザーは、このポリシーがアタッチされたロールを引き受けることができます。ただし、このようなユーザーは、MFA を使用して認証されたユーザーの場合のみ、ロールを引き受けることができます。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Principal": {"AWS": "ACCOUNT-B-ID"},
    "Action": "sts:AssumeRole",
    "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
  }
}
```

------

MFA の条件種別の詳細については、「[AWS グローバル条件コンテキストキー](reference_policies_condition-keys.md)」、「[数値条件演算子](reference_policies_elements_condition_operators.md#Conditions_Numeric)」、および「[条件キーの有無をチェックする条件演算子](reference_policies_elements_condition_operators.md#Conditions_Null)」を参照してください。

### GetSessionToken または AssumeRole を選択する
<a name="scenarios"></a>

AWS STS には、ユーザーが MFA 情報を渡す際に使用できる 2 つの API オペレーションである `GetSessionToken` と `AssumeRole` があります。ユーザーが一時的な認証情報を取得するために呼び出す API オペレーションは、以下のどのシナリオがあてはまるかによって異なります。

**以下のシナリオでは、`GetSessionToken` を使用します。**
+ リクエストを作成する IAM ユーザーと同じ AWS アカウント のリソースにアクセスする API オペレーションの呼び出し。 `GetSessionToken`リクエストによる一時的な認証情報で IAM および AWS STS API にアクセスできるのは、認証情報のリクエストに MFA 情報を含めた場合*のみ*である点に注意してください。`GetSessionToken` によって返される一時的な認証情報には MFA 情報が含まれているので、認証情報によって実行される各 API オペレーションで MFA を確認できます。
+ リソースに基づくポリシー (MFA 条件を含む) で保護されているリソースへのアクセス。

`GetSessionToken` オペレーションの目的は、MFA を使用してユーザーを認証することです。認証オペレーションを制御するためにポリシーを使用することはできません。

**以下のシナリオでは、`AssumeRole` を使用します。**
+ 同じまたは異なる AWS アカウント のリソースにアクセスする API オペレーションの呼び出し。API コールには、任意の IAM または AWS STS API を含めることができます。アクセスを保護するには、ユーザーがロールを引き受けた時点で MFA を強制する必要があります。`AssumeRole` によって返される一時的な認証情報のコンテキストには MFA 情報が含まれていないので、MFA に対する個別の API オペレーションを確認できません。このため、リソースベースのポリシーで保護されたリソースへのアクセスを制限するために、`GetSessionToken` を使用する必要があります。

**注記**  
IAM ユーザーが MFA でサインインするとき、AWS CloudTrail ログには MFA 情報が含まれます。IAM ユーザーが IAM ロールを引き受けると、CloudTrail は引き受けたロールを使用して実行されたアクションの `sessionContext` 属性も `mfaAuthenticated: true` をログに記録します。ただし、CloudTrail ログ記録は、引き受けたロールの認証情報を使用して API コールが行われたときに IAM で必要になるものとは異なります。詳細については、「[CloudTrail userIdentity 要素](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。

これらのシナリオの実行方法に関する詳細は、本書で後から提供されます。

### MFA 保護された API アクセスについて重要な点
<a name="MFAProtectedAPI-important-points"></a>

API オペレーションの MFA 保護の次の点に注意してください:
+ MFA 保護は、一時的なセキュリティ認証情報を使用した場合のみ利用できます。この認証情報は、`AssumeRole` または `GetSessionToken` を使用して取得する必要があります。
+ AWS アカウントのルートユーザー 認証情報で MFA 保護 API アクセスを使用することはできません。
+ U2F セキュリティキーで MFA 保護 API アクセスを使用することはできません。
+ フェデレーションユーザーに AWS サービス利用のために MFA デバイスを割り当てることはできませんので、そのようなユーザーは MFA が管理する AWS リソースへアクセスできません。(次のポイントを参照してください。) 
+ 一時的な認証情報を返す他の AWS STS API オペレーションは、MFA をサポートしていません。`AssumeRoleWithWebIdentity` と `AssumeRoleWithSAML` の場合、ユーザーは外部プロバイダーによって認証されており、プロバイダーが MFA を要求したかどうかを AWS が判断することはできません。`GetFederationToken` については、MFA は必ずしも特定のユーザーに関連付けられていません。
+ 同様に、長期的な認証情報 (IAM ユーザーアクセスキーと ルートユーザーアクセスキー) は失効しないため、MFA 保護 API アクセスでは使用できません。
+ `AssumeRole` と `GetSessionToken` は、MFA 情報がない状態でも呼び出すことができます。この場合、発信者は一時的な認証情報を取り戻しますが、その一時的認証情報のセッション情報では、ユーザーが MFA を使用して認証されたことが示されません。
+ API オペレーションに対する MFA 保護を確立するには、ポリシーに MFA 条件を追加します。MFA の使用を適用するには、ポリシーに `aws:MultiFactorAuthPresent` 条件キーが含まれている必要があります。クロスアカウントの委任では、ロールの信頼ポリシーに条件キーが含まれている必要があります。
+ 別の AWS アカウント に自分のアカウントのリソースへのアクセスを許可する場合、リソースのセキュリティは、信頼されたアカウント (つまりお客様のアカウントではない他のアカウント) の設定によって決まります。これは、多要素認証を要求する場合にも当てはまります。仮想 MFA デバイスを作成するアクセス許可がある、信頼されるアカウント内のアイデンティティは、ロールの信頼ポリシーのその部分を満たすために MFA クレームを作成できます。他のアカウントのメンバーに多要素認証を必要とする自身の AWS リソースへのアクセスを許可する前に、信頼されるアカウントの所有者がセキュリティのベストプラクティスを取り入れていることを確認する必要があります。たとえば、信頼されるアカウントは、MFA デバイス管理 API オペレーションなどの機密性の高い API オペレーションへのアクセスを指定する信頼できるアイデンティティに制限する必要があります。
+ ポリシーに MFA の条件が含まれている場合、ユーザーが MFA 認証済みでないか、無効な MFA デバイス識別子または無効な TOTP を入力すると、リクエストは拒否されます。

## シナリオ: クロスアカウントの委任の MFA 保護
<a name="MFAProtectedAPI-cross-account-delegation"></a>

このシナリオでは、ユーザーが AWS MFA デバイスを使用して認証された場合にのみ、別のアカウントの IAM ユーザーにアクセスを委任します。クロスアカウントの委任に関する詳細については、「[ロールに関する用語と概念](id_roles.md#id_roles_terms-and-concepts)」を参照してください。

アカウント A (アクセス対象のリソースを所有している信頼するアカウント) があり、このアカウントに管理者権限を持つ IAM ユーザー Anaya がいると仮定します。Anaya は、アカウント B (信頼されたアカウント) のユーザー Richard にアクセス許可を付与するつもりですが、Richard がロールを引き受ける前に、MFA によって認証されていることを確認する必要があります。

1. 信頼するアカウント A で、Anaya は `CrossAccountRole` という IAM ロールを作成し、ロールの信頼ポリシーのプリンシパルをアカウント B のアカウント ID に設定します。この信頼ポリシーは、AWS STS `AssumeRole` アクションに対するアクセス許可を付与します。Anaya は、次の例に示すように、信頼ポリシーに MFA の条件も追加します。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {"AWS": "ACCOUNT-B-ID"},
       "Action": "sts:AssumeRole",
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }
   }
   ```

------

1. Anaya は、ロールが実行できることを指定するアクセス許可ポリシーを、ロールに追加します。MFA 保護を使用するロールのアクセス許可ポリシーは、他のロールアクセス許可ポリシーと同じです。次の例では、Anaya がこのロールに追加するポリシーを示しています。これによって、引き受けるユーザーがアカウント A のテーブル `Books` で任意の Amazon DynamoDB アクションを実行することを許可します。また、このポリシーは、コンソールでアクションを実行するときに必要となる `dynamodb:ListTables` アクションも許可します。
**注記**  
アクセス許可ポリシーに MFA 条件は含まれません。ユーザーがロールを引き受けることができるかどうかを決定するためにのみ MFA 認証が使用されていることに注意してください。ユーザーがロールを引き受けた場合、それ以上の MFA の確認は行われません。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "TableActions",
               "Effect": "Allow",
               "Action": "dynamodb:*",
               "Resource": "arn:aws:dynamodb:*:111122223333:table/Books"
           },
           {
               "Sid": "ListTables",
               "Effect": "Allow",
               "Action": "dynamodb:ListTables",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 信頼されたアカウント B で管理者は、IAM ユーザー Richard が AWS MFA デバイスを使用して設定されていること、および Richard がデバイスの ID を知っていることを確認します。ハードウェア MFA デバイスの場合には、デバイス ID はシリアル番号であり、仮想 MFA デバイスの場合には、デバイス ID はデバイスの ARN です。

1. アカウント B で、管理者は、`AssumeRole` アクションを呼び出すことを許可する次のポリシーを、ユーザー Richard (または彼が属するグループ) にアタッチします。リソースは、Anaya がステップ 1 で作成したロールの ARN に設定されます。このポリシーに MFA 条件が含まれないことに注意してください。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Resource": [
                   "arn:aws:iam::111122223333:role/CrossAccountRole"
               ]
           }
       ]
   }
   ```

------

1. アカウント B で、Richard (または Richard が実行中のアプリケーション) が `AssumeRole` を呼び出します。API コールには、引き受けるロールの ARN (`arn:aws:iam::ACCOUNT-A-ID:role/CrossAccountRole`)、MFA デバイスの ID、Richard がデバイスから取得した現在の TOTP が含まれます。

   Richard が `AssumeRole` を呼び出すと、AWS は Richard に有効な認証情報 (MFA の要件など) があるかどうかを確認します。その場合、Richard は正常にロールを引き受け、ロールの一時的な認証情報を使用して、アカウント A の `Books` という名前のテーブルで DynamoDB アクションを実行できます。

   `AssumeRole` を呼び出すプログラムの例については、「[MFA 認証での AssumeRole の呼び出し](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-assumerole)」を参照してください。

## シナリオ: 現在のアカウントの API オペレーションへのアクセスに対する MFA 保護
<a name="MFAProtectedAPI-user-mfa"></a>

このシナリオでは、使用する AWS アカウント でユーザーが AWS MFA デバイスを使用して認証された場合のみ、機密性の高い API オペレーションにアクセスできるようにする必要があります。

アカウント A があり、そこに EC2 インスタンスの作業を必要としている開発者グループが存在すると仮定します。通常の開発者は、インスタンスの作業を実行できますが、`ec2:StopInstances` または `ec2:TerminateInstances` アクションへのアクセス許可を付与されていません。このようなの「有害な」特権的アクションをいくつかの信頼されたユーザーに制限するために、これらの機密性の高い Amazon EC2 アクションを許可するポリシーに MFA 保護を追加します。

このシナリオでは、信頼されたユーザーの 1 人がユーザー Sofía です。ユーザー Anaya は、アカウント A の管理者です。

1. Anaya は、Sofía が AWS MFA デバイスで設定されていること、および Sofía がこのデバイスの ID を知っていることを確認します。ハードウェア MFA デバイスの場合には、デバイス ID はシリアル番号であり、仮想 MFA デバイスの場合には、デバイス ID はデバイスの ARN です。

1. Anaya は `EC2-Admins` という名のグループを作成し、ユーザー Sofía をグループに追加します。

1. Anaya は、次のポリシーを `EC2-Admins` グループにアタッチします。このポリシーは、ユーザーが MFA を使用して認証された場合にのみ、ユーザーに Amazon EC2 `StopInstances` アクションと `TerminateInstances` アクションを呼び出すアクセス許可を与えます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [{
       "Effect": "Allow",
       "Action": [
         "ec2:StopInstances",
         "ec2:TerminateInstances"
       ],
       "Resource": ["*"],
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }]
   }
   ```

------

1. 
**注記**  
このポリシーを有効にするために、ユーザーはまずサインアウトして、再度サインインする必要があります。

   ユーザー Sofía が Amazon EC2 インスタンスを停止または終了する必要がある場合、Sofía (または Sofía が実行しているアプリケーション) は `GetSessionToken` を呼び出します。この API オペレーションは、MFA デバイスの ID と Sofía がデバイスから取得した現在の TOTP を渡します。

1. ユーザー Sofía (または Sofía が使用しているアプリケーション) は、`GetSessionToken` から提供される一時的な認証情報を使用して Amazon EC2 の `StopInstances` または `TerminateInstances` アクションを呼び出します。

   `GetSessionToken` を呼び出すプログラムの例については、本書で後から説明する「[MFA 認証での GetSessionToken の呼び出し](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-getsessiontoken)」を参照してください。

## シナリオ: リソースベースのポリシーを持つリソースの MFA 保護
<a name="MFAProtectedAPI-resource-policies"></a>

このシナリオでは、S3 バケット、SQS キュー、または SNS トピックの所有者であるとします。リソースにアクセスする任意の AWS アカウント の任意のユーザーが AWS MFA デバイスによって認証されていることを確認する必要があります。

このシナリオは、最初にユーザーにロールを引き受けることを要求せずに、クロスアカウント MFA 保護を提供する方法を説明します。この場合、ユーザーは次の 3 つの条件を満たしている場合にリソースにアクセスできます。これは、ユーザーが MFA によって認証される必要があること、`GetSessionToken` から一時的なセキュリティ認証情報を取得できること、および、リソースのポリシーによって信頼されているアカウントにいることです。

アカウント A に存在し、S3 バケットを作成すると仮定します。さまざまな AWS アカウント に存在するユーザーが、MFA を使って認証されている場合にのみ、このバケットへのアクセスを許可します。

このシナリオでは、ユーザー Anaya はアカウント A の管理者です。ユーザー Nikhil は、アカウント C の IAM ユーザーです。

1. アカウント A で、Anaya が `Account-A-bucket` という名前のバケットを作成します。

1. Anaya はバケットにバケットポリシーを追加します。このポリシーは、アカウント A、アカウント B、またはアカウント C のユーザーに、バケット内の Amazon S3 `PutObject` および `DeleteObject` アクションの実行を許可します。ポリシーは、MFA 条件を含みます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"AWS": [
         "ACCOUNT-A-ID",
         "ACCOUNT-B-ID",
         "ACCOUNT-C-ID"
       ]},
       "Action": [
         "s3:PutObject",
         "s3:DeleteObject"
       ],
       "Resource": ["arn:aws:s3:::ACCOUNT-A-BUCKET-NAME/*"],
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }]
   }
   ```

------
**注記**  
Amazon S3 により MFA 削除機能が *ルート*アカウントアクセス (のみ)に提供されています。バケットのバージョニング状態を設定する際に、Amazon S3 MFA 削除機能を有効にできます。IAM ユーザーでは Amazon S3 MFA 削除機能を使うことはできず、また MFA 保護 API とは別のアクセス管理となっています。バケットの削除権限を持つ IAM ユーザーであっても、Amazon S3 MFA 削除機能を使用してバケットの削除を行うことはできません。Amazon S3 MFA 削除機能の詳細については、[MFA Delete](https://docs.aws.amazon.com/AmazonS3/latest/dev/MultiFactorAuthenticationDelete.html) を参照してください。

1. アカウント C で管理者は、ユーザー Nikhil が AWS MFA デバイスを使用して設定されていること、および Nikhil がデバイスの ID を知っていることを確認します。ハードウェア MFA デバイスの場合には、デバイス ID はシリアル番号であり、仮想 MFA デバイスの場合には、デバイス ID はデバイスの ARN です。

1. アカウント C で、Nikhil (または Nikhil が実行中のアプリケーション) が `GetSessionToken` を呼び出します。呼び出しには、MFA デバイスの ID または ARN、および Nikhil がデバイスから取得する現在の TOTP が含まれます。

1. Nikhil (または Nikhil が使用中のアプリケーション) は、`GetSessionToken` から返された一時的な認証情報を使用して Amazon S3 の `PutObject` アクションを呼び出し、ファイルを `Account-A-bucket` にアップロードします。

   `GetSessionToken` を呼び出すプログラムの例については、本書で後から説明する「[MFA 認証での GetSessionToken の呼び出し](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-getsessiontoken)」を参照してください。
**注記**  
この場合、`AssumeRole` が返す一時的認証情報は機能しません。ユーザーはロールを引き受けるために MFA 情報を提供できますが、`AssumeRole` が返す一時的認証情報には MFA 情報は含まれません。この情報は、このポリシーの MFA 条件を満たすために必要です。

# サンプルコード: 多要素認証での認証情報のリクエスト
<a name="id_credentials_mfa_sample-code"></a>

以下の例では、`GetSessionToken` と `AssumeRole` オペレーションを呼び出し、MFA 認証パラメータを渡す方法を示しています。`GetSessionToken` の呼び出しにはアクセス権限は必要ありませんが、`AssumeRole` を呼び出すポリシーがあることが必要です。返される認証情報は、アカウントのすべての S3 バケットを一覧表示するために使用されます。

## MFA 認証での GetSessionToken の呼び出し
<a name="MFAProtectedAPI-example-getsessiontoken"></a>

以下の例は、`GetSessionToken` を呼び出し、MFA 認証情報を渡す方法を示しています。`GetSessionToken` オペレーションによって返される一時的な認証情報は、アカウントのすべての S3 バケットを一覧表示するために使用されます。

このコードを実行するユーザー (あるいはこのユーザーが含まれるグループ) にアタッチされるポリシーは、返された一時的な認証情報へのアクセス権限を提供します。このコード例のポリシーでは、Amazon S3 `ListBuckets` オペレーションをリクエストするアクセス許可をユーザーに付与しています。

次のサンプルコードは、`GetSessionToken` を使用する方法を説明しています。

------
#### [ CLI ]

**AWS CLI**  
**IAM ID のために短期間有効な認証情報のセットを取得するには**  
次の `get-session-token` コマンドは、呼び出しを実行する IAM ID のために短期間有効な認証情報のセットを取得します。結果として得られる認証情報は、ポリシーによって多要素認証 (MFA) が必要とされるリクエストのために使用できます。認証情報は生成されてから 15 分後に失効します。  

```
aws sts get-session-token \
    --duration-seconds 900 \
    --serial-number "YourMFADeviceSerialNumber" \
    --token-code 123456
```
出力:  

```
{
    "Credentials": {
        "AccessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
        "SessionToken": "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE",
        "Expiration": "2020-05-19T18:06:10+00:00"
    }
}
```
詳細については、「*AWS IAM ユーザーガイド*」の「[一時的なセキュリティ認証情報のリクエスト](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetSessionToken](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-session-token.html)」を参照してください。

------
#### [ PowerShell ]

**Tools for PowerShell V4**  
**例 1: 一定期間有効な一時的な認証情報を含む `Amazon.RuntimeAWSCredentials` インスタンスを返します。一時的な認証情報をリクエストするために使用される認証情報は、現在のシェルのデフォルトから推測されます。他の認証情報を指定するには、-ProfileName または-AccessKey/-SecretKey パラメータを使用します。**  

```
Get-STSSessionToken
```
**出力:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**例 2: 1 時間有効な一時的な認証情報を含む `Amazon.RuntimeAWSCredentials` インスタンスを返します。リクエストを行うために使用される認証情報は、指定されたプロファイルから取得されます。**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile
```
**出力:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**例 3: プロファイル「myprofilename」で認証情報が指定されているアカウントに関連付けられた MFA デバイスの識別番号とデバイスから提供された値を使用して、1 時間有効な一時的な認証情報を含む `Amazon.RuntimeAWSCredentials` インスタンスを返します。**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456
```
**出力:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
+  API の詳細については、*AWS Tools for PowerShell コマンドレットリファレンス (V4)* の「[GetSessionToken](https://docs.aws.amazon.com/powershell/v4/reference)」を参照してください。

**Tools for PowerShell V5**  
**例 1: 一定期間有効な一時的な認証情報を含む `Amazon.RuntimeAWSCredentials` インスタンスを返します。一時的な認証情報をリクエストするために使用される認証情報は、現在のシェルのデフォルトから推測されます。他の認証情報を指定するには、-ProfileName または-AccessKey/-SecretKey パラメータを使用します。**  

```
Get-STSSessionToken
```
**出力:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**例 2: 1 時間有効な一時的な認証情報を含む `Amazon.RuntimeAWSCredentials` インスタンスを返します。リクエストを行うために使用される認証情報は、指定されたプロファイルから取得されます。**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile
```
**出力:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**例 3: プロファイル「myprofilename」で認証情報が指定されているアカウントに関連付けられた MFA デバイスの識別番号とデバイスから提供された値を使用して、1 時間有効な一時的な認証情報を含む `Amazon.RuntimeAWSCredentials` インスタンスを返します。**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456
```
**出力:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
+  API の詳細については、「*AWS Tools for PowerShell Cmdlet リファレンス (V5)*」の「[GetSessionToken](https://docs.aws.amazon.com/powershell/v5/reference)」を参照してください。

------
#### [ Python ]

**SDK for Python (Boto3)**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sts#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。
MFA トークンを渡してセッショントークンを取得し、それを使用してアカウントの Amazon S3 バケットを一覧表示します。  

```
def list_buckets_with_session_token_with_mfa(mfa_serial_number, mfa_totp, sts_client):
    """
    Gets a session token with MFA credentials and uses the temporary session
    credentials to list Amazon S3 buckets.

    Requires an MFA device serial number and token.

    :param mfa_serial_number: The serial number of the MFA device. For a virtual MFA
                              device, this is an Amazon Resource Name (ARN).
    :param mfa_totp: A time-based, one-time password issued by the MFA device.
    :param sts_client: A Boto3 STS instance that has permission to assume the role.
    """
    if mfa_serial_number is not None:
        response = sts_client.get_session_token(
            SerialNumber=mfa_serial_number, TokenCode=mfa_totp
        )
    else:
        response = sts_client.get_session_token()
    temp_credentials = response["Credentials"]

    s3_resource = boto3.resource(
        "s3",
        aws_access_key_id=temp_credentials["AccessKeyId"],
        aws_secret_access_key=temp_credentials["SecretAccessKey"],
        aws_session_token=temp_credentials["SessionToken"],
    )

    print(f"Buckets for the account:")
    for bucket in s3_resource.buckets.all():
        print(bucket.name)
```
+  API の詳細については、「AWS SDK for Python (Boto3) API リファレンス」の「[GetSessionToken](https://docs.aws.amazon.com/goto/boto3/sts-2011-06-15/GetSessionToken)」を参照してください。

------

## MFA 認証での AssumeRole の呼び出し
<a name="MFAProtectedAPI-example-assumerole"></a>

以下の例は、`AssumeRole` を呼び出し、MFA 認証情報を渡す方法を示しています。`AssumeRole` によって返される一時的セキュリティ認証情報は、アカウントのすべての Amazon S3 バケットを一覧表示するために使用されます。

このシナリオの詳細については、「[シナリオ: クロスアカウントの委任の MFA 保護](id_credentials_mfa_configure-api-require.md#MFAProtectedAPI-cross-account-delegation)」を参照してください。

次のサンプルコードは、`AssumeRole` を使用する方法を説明しています。

------
#### [ .NET ]

**SDK for .NET**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/STS#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。

```
using System;
using System.Threading.Tasks;
using Amazon;
using Amazon.SecurityToken;
using Amazon.SecurityToken.Model;

namespace AssumeRoleExample
{
    class AssumeRole
    {
        /// <summary>
        /// This example shows how to use the AWS Security Token
        /// Service (AWS STS) to assume an IAM role.
        ///
        /// NOTE: It is important that the role that will be assumed has a
        /// trust relationship with the account that will assume the role.
        ///
        /// Before you run the example, you need to create the role you want to
        /// assume and have it trust the IAM account that will assume that role.
        ///
        /// See https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html
        /// for help in working with roles.
        /// </summary>

        // A region property may be used if the profile or credentials loaded do not specify a region,
        // or to use a specific region.
        private static readonly RegionEndpoint REGION = RegionEndpoint.USWest2;

        static async Task Main()
        {
            // Create the SecurityToken client and then display the identity of the
            // default user.
            var roleArnToAssume = "arn:aws:iam::123456789012:role/testAssumeRole";

            var client = new Amazon.SecurityToken.AmazonSecurityTokenServiceClient(REGION);

            // Get and display the information about the identity of the default user.
            var callerIdRequest = new GetCallerIdentityRequest();
            var caller = await client.GetCallerIdentityAsync(callerIdRequest);
            Console.WriteLine($"Original Caller: {caller.Arn}");

            // Create the request to use with the AssumeRoleAsync call.
            var assumeRoleReq = new AssumeRoleRequest()
            {
                DurationSeconds = 1600,
                RoleSessionName = "Session1",
                RoleArn = roleArnToAssume
            };

            var assumeRoleRes = await client.AssumeRoleAsync(assumeRoleReq);

            // Now create a new client based on the credentials of the caller assuming the role.
            var client2 = new AmazonSecurityTokenServiceClient(credentials: assumeRoleRes.Credentials, REGION);

            // Get and display information about the caller that has assumed the defined role.
            var caller2 = await client2.GetCallerIdentityAsync(callerIdRequest);
            Console.WriteLine($"AssumedRole Caller: {caller2.Arn}");
        }
    }
}
```
+  API の詳細については、AWS SDK for .NET API リファレンスの「[AssumeRole](https://docs.aws.amazon.com/goto/DotNetSDKV3/sts-2011-06-15/AssumeRole)」を参照してください。**

------
#### [ Bash ]

**Bash スクリプトを使用した AWS CLI**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/iam#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。

```
###############################################################################
# function iecho
#
# This function enables the script to display the specified text only if
# the global variable $VERBOSE is set to true.
###############################################################################
function iecho() {
  if [[ $VERBOSE == true ]]; then
    echo "$@"
  fi
}

###############################################################################
# function errecho
#
# This function outputs everything sent to it to STDERR (standard error output).
###############################################################################
function errecho() {
  printf "%s\n" "$*" 1>&2
}

###############################################################################
# function sts_assume_role
#
# This function assumes a role in the AWS account and returns the temporary
#  credentials.
#
# Parameters:
#       -n role_session_name -- The name of the session.
#       -r role_arn -- The ARN of the role to assume.
#
# Returns:
#       [access_key_id, secret_access_key, session_token]
#     And:
#       0 - If successful.
#       1 - If an error occurred.
###############################################################################
function sts_assume_role() {
  local role_session_name role_arn response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function sts_assume_role"
    echo "Assumes a role in the AWS account and returns the temporary credentials:"
    echo "  -n role_session_name -- The name of the session."
    echo "  -r role_arn -- The ARN of the role to assume."
    echo ""
  }

  while getopts n:r:h option; do
    case "${option}" in
      n) role_session_name=${OPTARG} ;;
      r) role_arn=${OPTARG} ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done

  response=$(aws sts assume-role \
    --role-session-name "$role_session_name" \
    --role-arn "$role_arn" \
    --output text \
    --query "Credentials.[AccessKeyId, SecretAccessKey, SessionToken]")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-role operation failed.\n$response"
    return 1
  fi

  echo "$response"

  return 0
}
```
+  API の詳細については、「AWS CLI コマンドリファレンス」の「[AssumeRole](https://docs.aws.amazon.com/goto/aws-cli/sts-2011-06-15/AssumeRole)」を参照してください。

------
#### [ C\$1\$1 ]

**SDK for C\$1\$1**  
 GitHub には、その他のリソースもあります。用例一覧を検索し、[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sts#code-examples)での設定と実行の方法を確認してください。

```
bool AwsDoc::STS::assumeRole(const Aws::String &roleArn,
                             const Aws::String &roleSessionName,
                             const Aws::String &externalId,
                             Aws::Auth::AWSCredentials &credentials,
                             const Aws::Client::ClientConfiguration &clientConfig) {
    Aws::STS::STSClient sts(clientConfig);
    Aws::STS::Model::AssumeRoleRequest sts_req;

    sts_req.SetRoleArn(roleArn);
    sts_req.SetRoleSessionName(roleSessionName);
    sts_req.SetExternalId(externalId);

    const Aws::STS::Model::AssumeRoleOutcome outcome = sts.AssumeRole(sts_req);

    if (!outcome.IsSuccess()) {
        std::cerr << "Error assuming IAM role. " <<
                  outcome.GetError().GetMessage() << std::endl;
    }
    else {
        std::cout << "Credentials successfully retrieved." << std::endl;
        const Aws::STS::Model::AssumeRoleResult result = outcome.GetResult();
        const Aws::STS::Model::Credentials &temp_credentials = result.GetCredentials();

        // Store temporary credentials in return argument.
        // Note: The credentials object returned by assumeRole differs
        // from the AWSCredentials object used in most situations.
        credentials.SetAWSAccessKeyId(temp_credentials.GetAccessKeyId());
        credentials.SetAWSSecretKey(temp_credentials.GetSecretAccessKey());
        credentials.SetSessionToken(temp_credentials.GetSessionToken());
    }

    return outcome.IsSuccess();
}
```
+  API の詳細については、AWS SDK for C\$1\$1 API リファレンスの「[AssumeRole](https://docs.aws.amazon.com/goto/SdkForCpp/sts-2011-06-15/AssumeRole)」を参照してください。**

------
#### [ CLI ]

**AWS CLI**  
**ロールを引き受けるには**  
次の `assume-role` コマンドは、IAM ロール `s3-access-example` のために短期間有効な認証情報のセットを取得します。  

```
aws sts assume-role \
    --role-arn arn:aws:iam::123456789012:role/xaccounts3access \
    --role-session-name s3-access-example
```
出力:  

```
{
    "AssumedRoleUser": {
        "AssumedRoleId": "AROA3XFRBF535PLBIFPI4:s3-access-example",
        "Arn": "arn:aws:sts::123456789012:assumed-role/xaccounts3access/s3-access-example"
    },
    "Credentials": {
        "SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
        "SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
        "Expiration": "2016-03-15T00:05:07Z",
        "AccessKeyId": "ASIAJEXAMPLEXEG2JICEA"
    }
}
```
コマンドの出力には、AWS に対する認証に使用できるアクセスキー、シークレットキー、およびセッショントークンが含まれています。  
AWS CLI を使用する場合は、ロールに関連付けられた名前付きプロファイルを設定できます。プロファイルを使用すると、AWS CLI は assume-role を呼び出し、ユーザーのために認証情報を管理します。詳細については、「*AWS CLI ユーザーガイド*」の「[AWS CLI で IAM ロールを使用する](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[AssumeRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html)」を参照してください。

------
#### [ Java ]

**SDK for Java 2.x**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sts#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;
import software.amazon.awssdk.services.sts.model.StsException;
import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
import software.amazon.awssdk.services.sts.model.Credentials;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;

/**
 * To make this code example work, create a Role that you want to assume.
 * Then define a Trust Relationship in the AWS Console. You can use this as an
 * example:
 *
 * {
 * "Version":"2012-10-17",		 	 	 
 * "Statement": [
 * {
 * "Effect": "Allow",
 * "Principal": {
 * "AWS": "<Specify the ARN of your IAM user you are using in this code example>"
 * },
 * "Action": "sts:AssumeRole"
 * }
 * ]
 * }
 *
 * For more information, see "Editing the Trust Relationship for an Existing
 * Role" in the AWS Directory Service guide.
 *
 * Also, set up your development environment, including your credentials.
 *
 * For information, see this documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class AssumeRole {
    public static void main(String[] args) {
        final String usage = """

                Usage:
                    <roleArn> <roleSessionName>\s

                Where:
                    roleArn - The Amazon Resource Name (ARN) of the role to assume (for example, arn:aws:iam::000008047983:role/s3role).\s
                    roleSessionName - An identifier for the assumed role session (for example, mysession).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String roleArn = args[0];
        String roleSessionName = args[1];
        Region region = Region.US_EAST_1;
        StsClient stsClient = StsClient.builder()
                .region(region)
                .build();

        assumeGivenRole(stsClient, roleArn, roleSessionName);
        stsClient.close();
    }

    public static void assumeGivenRole(StsClient stsClient, String roleArn, String roleSessionName) {
        try {
            AssumeRoleRequest roleRequest = AssumeRoleRequest.builder()
                    .roleArn(roleArn)
                    .roleSessionName(roleSessionName)
                    .build();

            AssumeRoleResponse roleResponse = stsClient.assumeRole(roleRequest);
            Credentials myCreds = roleResponse.credentials();

            // Display the time when the temp creds expire.
            Instant exTime = myCreds.expiration();
            String tokenInfo = myCreds.sessionToken();

            // Convert the Instant to readable date.
            DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)
                    .withLocale(Locale.US)
                    .withZone(ZoneId.systemDefault());

            formatter.format(exTime);
            System.out.println("The token " + tokenInfo + "  expires on " + exTime);

        } catch (StsException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }
    }
}
```
+  API の詳細については、AWS SDK for Java 2.x API リファレンスの「[AssumeRole](https://docs.aws.amazon.com/goto/SdkForJavaV2/sts-2011-06-15/AssumeRole)」を参照してください。**

------
#### [ JavaScript ]

**SDK for JavaScript (v3)**  
 GitHub には、その他のリソースもあります。用例一覧を検索し、[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sts#code-examples)での設定と実行の方法を確認してください。
クライアントを作成します。  

```
import { STSClient } from "@aws-sdk/client-sts";
// Set the AWS Region.
const REGION = "us-east-1";
// Create an AWS STS service client object.
export const client = new STSClient({ region: REGION });
```
IAM ロールを割り当てます。  

```
import { AssumeRoleCommand } from "@aws-sdk/client-sts";

import { client } from "../libs/client.js";

export const main = async () => {
  try {
    // Returns a set of temporary security credentials that you can use to
    // access Amazon Web Services resources that you might not normally
    // have access to.
    const command = new AssumeRoleCommand({
      // The Amazon Resource Name (ARN) of the role to assume.
      RoleArn: "ROLE_ARN",
      // An identifier for the assumed role session.
      RoleSessionName: "session1",
      // The duration, in seconds, of the role session. The value specified
      // can range from 900 seconds (15 minutes) up to the maximum session
      // duration set for the role.
      DurationSeconds: 900,
    });
    const response = await client.send(command);
    console.log(response);
  } catch (err) {
    console.error(err);
  }
};
```
+  API の詳細については、「*AWS SDK for JavaScript API リファレンス*」の「[AssumeRole](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sts/command/AssumeRoleCommand)」を参照してください。

**SDK for JavaScript (v2)**  
 GitHub には、その他のリソースもあります。用例一覧を検索し、[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascript/example_code/sts#code-examples)での設定と実行の方法を確認してください。

```
// Load the AWS SDK for Node.js
const AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

var roleToAssume = {
  RoleArn: "arn:aws:iam::123456789012:role/RoleName",
  RoleSessionName: "session1",
  DurationSeconds: 900,
};
var roleCreds;

// Create the STS service object
var sts = new AWS.STS({ apiVersion: "2011-06-15" });

//Assume Role
sts.assumeRole(roleToAssume, function (err, data) {
  if (err) console.log(err, err.stack);
  else {
    roleCreds = {
      accessKeyId: data.Credentials.AccessKeyId,
      secretAccessKey: data.Credentials.SecretAccessKey,
      sessionToken: data.Credentials.SessionToken,
    };
    stsGetCallerIdentity(roleCreds);
  }
});

//Get Arn of current identity
function stsGetCallerIdentity(creds) {
  var stsParams = { credentials: creds };
  // Create STS service object
  var sts = new AWS.STS(stsParams);

  sts.getCallerIdentity({}, function (err, data) {
    if (err) {
      console.log(err, err.stack);
    } else {
      console.log(data.Arn);
    }
  });
}
```
+  API の詳細については、AWS SDK for JavaScript API リファレンスの「[AssumeRole](https://docs.aws.amazon.com/goto/AWSJavaScriptSDK/sts-2011-06-15/AssumeRole)」を参照してください。**

------
#### [ PowerShell ]

**Tools for PowerShell V4**  
**例 1: 一時的な認証情報一式 (アクセスキー、シークレットキー、セッショントークン) を返します。この認証情報は、リクエストしたユーザーが通常はアクセスできない AWS リソースに 1 時間アクセスするために使用できます。返される認証情報には、引き受けているロールのアクセスポリシーと提供されたポリシーで許可されている権限があります (提供されたポリシーを使用して、引き受けているロールのアクセスポリシーで定義されている権限を超える権限を付与することはできません)。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -Policy "...JSON policy..." -DurationInSeconds 3600
```
**例 2: 引き受けているロールのアクセスポリシーで定義されているのと同じ権限を持つ、1 時間有効の一時的な認証情報を返します。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600
```
**例 3: コマンドレットの実行に使用されるユーザー認証情報に関連付けられている MFA からシリアル番号と生成されたトークンを提供する一時的な認証情報一式を返します。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -SerialNumber "GAHT12345678" -TokenCode "123456"
```
**例 4: 顧客アカウントで定義されているロールを引き受けた一時的な認証情報一式を返します。第三者が引き受けることができるロールごとに、顧客アカウントは、ロールを引き受けるたび、-ExternalId パラメータで渡す必要がある識別子を使用してロールを作成する必要があります。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -ExternalId "ABC123"
```
+  API の詳細については、*AWS Tools for PowerShell コマンドレットリファレンス (V4)* の「[AssumeRole](https://docs.aws.amazon.com/powershell/v4/reference)」を参照してください。

**Tools for PowerShell V5**  
**例 1: 一時的な認証情報一式 (アクセスキー、シークレットキー、セッショントークン) を返します。この認証情報は、リクエストしたユーザーが通常はアクセスできない AWS リソースに 1 時間アクセスするために使用できます。返される認証情報には、引き受けているロールのアクセスポリシーと提供されたポリシーで許可されている権限があります (提供されたポリシーを使用して、引き受けているロールのアクセスポリシーで定義されている権限を超える権限を付与することはできません)。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -Policy "...JSON policy..." -DurationInSeconds 3600
```
**例 2: 引き受けているロールのアクセスポリシーで定義されているのと同じ権限を持つ、1 時間有効の一時的な認証情報を返します。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600
```
**例 3: コマンドレットの実行に使用されるユーザー認証情報に関連付けられている MFA からシリアル番号と生成されたトークンを提供する一時的な認証情報一式を返します。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -SerialNumber "GAHT12345678" -TokenCode "123456"
```
**例 4: 顧客アカウントで定義されているロールを引き受けた一時的な認証情報一式を返します。第三者が引き受けることができるロールごとに、顧客アカウントは、ロールを引き受けるたび、-ExternalId パラメータで渡す必要がある識別子を使用してロールを作成する必要があります。**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -ExternalId "ABC123"
```
+  API の詳細については、「*AWS Tools for PowerShell Cmdlet リファレンス (V5)*」の「[AssumeRole](https://docs.aws.amazon.com/powershell/v5/reference)」を参照してください。

------
#### [ Python ]

**SDK for Python (Boto3)**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sts#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。
MFA トークンを必要とする IAM ロールを想定し、一時的な認証情報を使用してアカウントの Amazon S3 バケットを一覧表示します。  

```
def list_buckets_from_assumed_role_with_mfa(
    assume_role_arn, session_name, mfa_serial_number, mfa_totp, sts_client
):
    """
    Assumes a role from another account and uses the temporary credentials from
    that role to list the Amazon S3 buckets that are owned by the other account.
    Requires an MFA device serial number and token.

    The assumed role must grant permission to list the buckets in the other account.

    :param assume_role_arn: The Amazon Resource Name (ARN) of the role that
                            grants access to list the other account's buckets.
    :param session_name: The name of the STS session.
    :param mfa_serial_number: The serial number of the MFA device. For a virtual MFA
                              device, this is an ARN.
    :param mfa_totp: A time-based, one-time password issued by the MFA device.
    :param sts_client: A Boto3 STS instance that has permission to assume the role.
    """
    response = sts_client.assume_role(
        RoleArn=assume_role_arn,
        RoleSessionName=session_name,
        SerialNumber=mfa_serial_number,
        TokenCode=mfa_totp,
    )
    temp_credentials = response["Credentials"]
    print(f"Assumed role {assume_role_arn} and got temporary credentials.")

    s3_resource = boto3.resource(
        "s3",
        aws_access_key_id=temp_credentials["AccessKeyId"],
        aws_secret_access_key=temp_credentials["SecretAccessKey"],
        aws_session_token=temp_credentials["SessionToken"],
    )

    print(f"Listing buckets for the assumed role's account:")
    for bucket in s3_resource.buckets.all():
        print(bucket.name)
```
+  API の詳細については、「*AWS SDK for Python (Boto3) API リファレンス*」の「[AssumeRole](https://docs.aws.amazon.com/goto/boto3/sts-2011-06-15/AssumeRole)」を参照してください。

------
#### [ Ruby ]

**SDK for Ruby**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/iam#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。

```
  # Creates an AWS Security Token Service (AWS STS) client with specified credentials.
  # This is separated into a factory function so that it can be mocked for unit testing.
  #
  # @param key_id [String] The ID of the access key used by the STS client.
  # @param key_secret [String] The secret part of the access key used by the STS client.
  def create_sts_client(key_id, key_secret)
    Aws::STS::Client.new(access_key_id: key_id, secret_access_key: key_secret)
  end

  # Gets temporary credentials that can be used to assume a role.
  #
  # @param role_arn [String] The ARN of the role that is assumed when these credentials
  #                          are used.
  # @param sts_client [AWS::STS::Client] An AWS STS client.
  # @return [Aws::AssumeRoleCredentials] The credentials that can be used to assume the role.
  def assume_role(role_arn, sts_client)
    credentials = Aws::AssumeRoleCredentials.new(
      client: sts_client,
      role_arn: role_arn,
      role_session_name: 'create-use-assume-role-scenario'
    )
    @logger.info("Assumed role '#{role_arn}', got temporary credentials.")
    credentials
  end
```
+  API の詳細については、AWS SDK for Ruby API リファレンスの「[AssumeRole](https://docs.aws.amazon.com/goto/SdkForRubyV3/sts-2011-06-15/AssumeRole)」を参照してください。**

------
#### [ Rust ]

**SDK for Rust**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/sts/#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。

```
async fn assume_role(config: &SdkConfig, role_name: String, session_name: Option<String>) {
    let provider = aws_config::sts::AssumeRoleProvider::builder(role_name)
        .session_name(session_name.unwrap_or("rust_sdk_example_session".into()))
        .configure(config)
        .build()
        .await;

    let local_config = aws_config::from_env()
        .credentials_provider(provider)
        .load()
        .await;
    let client = Client::new(&local_config);
    let req = client.get_caller_identity();
    let resp = req.send().await;
    match resp {
        Ok(e) => {
            println!("UserID :               {}", e.user_id().unwrap_or_default());
            println!("Account:               {}", e.account().unwrap_or_default());
            println!("Arn    :               {}", e.arn().unwrap_or_default());
        }
        Err(e) => println!("{:?}", e),
    }
}
```
+  API の詳細については、「AWS SDK for Rust API リファレンス」の「[AssumeRole](https://docs.rs/aws-sdk-sts/latest/aws_sdk_sts/client/struct.Client.html#method.assume_role)」を参照してください。

------
#### [ Swift ]

**SDK for Swift**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/iam#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。

```
import AWSSTS

    public func assumeRole(role: IAMClientTypes.Role, sessionName: String)
        async throws -> STSClientTypes.Credentials
    {
        let input = AssumeRoleInput(
            roleArn: role.arn,
            roleSessionName: sessionName
        )
        do {
            let output = try await stsClient.assumeRole(input: input)

            guard let credentials = output.credentials else {
                throw ServiceHandlerError.authError
            }

            return credentials
        } catch {
            print("Error assuming role: ", dump(error))
            throw error
        }
    }
```
+  API の詳細については、「AWS SDK for Swift API リファレンス」の「[AssumeRole](https://sdk.amazonaws.com/swift/api/awssts/latest/documentation/awssts/stsclient/assumerole(input:))」を参照してください。

------

# IAM ユーザーのサービス固有の認証情報
<a name="id_credentials_service-specific-creds"></a>

サービス固有の認証情報は、特定のAWS サービス用に設計された特殊な認証メカニズムです。これらの認証情報は、標準のAWS 認証情報と比較して認証が簡素化されており、個々のAWS サービスの認証要件に合わせて調整されます。複数のAWS サービスで使用できるアクセスキーとは異なり、サービス固有の認証情報は、作成されたサービスでのみ使用するように設計されています。このターゲットを絞ったアプローチにより、認証情報の適用範囲を制限することでセキュリティを強化します。

サービス固有の認証情報は通常、特定のサービスの要件に従ってフォーマットされたユーザー名とパスワードのペアまたは特殊な API キーで構成されます。サービス固有の認証情報を作成すると、デフォルトでアクティブになるため直ぐに使用できます。サポート対象の各サービスでは、IAM ユーザーごとにサービス固有の認証情報を最大 2 セット設定できます。この制限により、必要に応じて新しいセットにローテーションしながら、1 つのアクティブなセットを維持できます。 AWS は現在、次のサービスのサービス固有の認証情報をサポートしています。

## サービス固有の認証情報を使用するタイミング
<a name="id_credentials_service-specific-creds-usecase"></a>

サービス固有の認証情報は、AWS 認証情報、AWS SDK、または AWS API とネイティブに互換性のないサードパーティーのライブラリ、SDK、ツール、またはアプリケーションとの互換性を目的としています。このようなユースケースには、セルフホストインフラストラクチャまたは他のプロバイダーがホストするサービスからの AWS サービスへの移行が含まれます。

一から始める場合、および可能な限り、IAM ロールによって提供される認証情報などの AWS 一時的認証情報を使用し、AWS SDK または一時的認証情報をサポートする AWS ライブラリを使用して AWS サービスで認証することをお勧めします。

## サービス固有の認証情報のローテーション
<a name="id_credentials_service-specific-creds-rotation"></a>

セキュリティのベストプラクティスとして、サービス固有の認証情報を定期的にローテーションします。アプリケーションを中断せずに認証情報を更新するには：

1. 同じサービスと IAM ユーザーに対して、サービス固有の認証情報の 2 番目のセットを作成する

1. すべてのアプリケーションを更新して、新しい認証情報で正しく動作することを確認します。

1. 元の認証情報の状態を「非アクティブ」に変更します。

1. すべてのアプリケーションが正常に機能していることを確認します。

1. 非アクティブなサービス固有の認証情報を、不要であることを確認したら削除します。

## サービス固有の認証情報のモニタリング
<a name="id_credentials_service-specific-creds-monitoring"></a>

AWS CloudTrail を使用して、AWS アカウント内のサービス固有の認証情報の使用をモニタリングできます。サービス固有の認証情報の使用に関連する CloudTrail イベントを表示するには、認証情報が使用されるサービスからのイベントの CloudTrail ログを確認します。詳細については、「[AWS CloudTrail による IAM および AWS STS の API コールのログ記録](cloudtrail-integration.md)」を参照してください。

セキュリティを強化するには、不正アクセスやその他のセキュリティ上の懸念を示す可能性のある特定の認証情報の使用パターンを通知するように CloudWatch アラームを設定することを検討してください。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[Amazon CloudWatch Logs による CloudTrail ログファイルのモニタリング](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html)」を参照してください。

以下のトピックでは、サービス固有の認証情報について説明します。

**Topics**
+ [サービス固有の認証情報を使用するタイミング](#id_credentials_service-specific-creds-usecase)
+ [サービス固有の認証情報のローテーション](#id_credentials_service-specific-creds-rotation)
+ [サービス固有の認証情報のモニタリング](#id_credentials_service-specific-creds-monitoring)
+ [Amazon Bedrock と Amazon CloudWatch Logs の API キー](id_credentials_bedrock_cloudwatchlogs.md)
+ [Amazon Keyspaces で IAM を使用する（Apache Cassandra の場合）](id_credentials_keyspaces.md)

# Amazon Bedrock と Amazon CloudWatch Logs の API キー
<a name="id_credentials_bedrock_cloudwatchlogs"></a>

**注記**  
Amazon CloudWatch Logs API キーは現在プレビューで提供されていて、今後数週間で一般公開される予定です。Amazon CloudWatch Logs API キーは、このページで説明されている Amazon Bedrock 長期 API キーとよく似ています。Amazon CloudWatch Logs 長期 API キーの詳細については、「[Sending logs to Amazon CloudWatch Logs using HLC endpoint](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_HLC_Endpoint.html)」を参照してください。

Amazon Bedrock は、主要な AI 企業と Amazon の基盤モデルを提供するフルマネージドサービスです。Amazon Bedrock には、AWS マネジメントコンソール を通じてアクセスできるほか、AWS CLI や AWS APIを使えばプログラムからもアクセスできます。Amazon Bedrock にプログラムからリクエストする場合は、[一時的なセキュリティ認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)または Amazon Bedrock の API キーを使用して認証できます。Amazon Bedrock は、次の 2 種類の API キーをサポートしています。
+ **短期 API キー** – 短期 API キーは、AWS 署名バージョン 4 を使用する署名付き URL です。短期 API キーは、API キーを生成する ID の認証情報と同じアクセス許可と有効期限を共有し、最大 12 時間またはコンソールセッションの残り時間の短い方の時間まで有効です。Amazon Bedrock コンソール、Python パッケージ `aws-bedrock-token-generator`、および他のプログラミング言語用のパッケージを使用して、短期 API キーを生成できます。詳細については、「*Amazon Bedrock ユーザーガイド*」の「[Generate Amazon Bedrock API keys for easy access to the Amazon Bedrock API](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys.html)」を参照してください。
+ **長期 API キー** – 長期 API キーは IAM ユーザーに関連付けられ、IAM [サービス固有の認証情報](id_credentials_service-specific-creds.md)を使用して生成されます。これらの認証情報は Amazon Bedrock でのみ使用するように設計されており、認証情報の適用範囲を制限することでセキュリティを強化しています。長期 API キーの有効期限を設定できます。IAM または Amazon Bedrock コンソール、AWS CLI、AWS API を使用して、長期 API キーを生成できます。

IAM ユーザーは、Amazon Bedrock 用に最大 2 つの長期 API キーを持つことができ、安全なキーローテーションプラクティスを実装するのに役立ちます。

長期 API キーを生成すると、AWS 管理ポリシー [AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/bedrock/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonBedrockLimitedAccess) が IAM ユーザーに自動的にアタッチされます。このポリシーは、コア Amazon Bedrock API オペレーションへのアクセスを許可します。追加の Amazon Bedrock アクセスが必要な場合は、IAM ユーザーのアクセス許可を変更できます。許可の変更については、「[IAM ID のアクセス許可の追加および削除](access_policies_manage-attach-detach.md)」を参照してください。Amazon Bedrock キーの使用方法の詳細については、「Amazon Bedrock ユーザーガイド」の「[Amazon Bedrock API キーを使用する](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-use.html)」を参照してください。

**注記**  
長期 API キーは、短期 API キーと比較してセキュリティリスクが高くなります。可能であれば、短期 API キーまたは一時的なセキュリティ認証情報を使用することをお勧めします。長期 API キーを使用する場合は、定期的なキーローテーションプラクティスを実施することをお勧めします。

## 前提条件
<a name="id_credentials_bedrock_prerequisites"></a>

IAM コンソールで Amazon Bedrock 長期 API キーを生成する前に、次の前提条件を満たす必要があります。
+ 長期 API キーに関連付ける IAM ユーザー。IAM ユーザーの作成手順については、「[AWS アカウント で IAM ユーザーを作成する](id_users_create.md)」を参照してください。
+ IAM ユーザーのサービス固有の認証情報を管理するには、次の IAM ポリシーのアクセス許可があることを確認してください。このポリシー例では、サービス固有の認証情報を作成、一覧表示、更新、削除、およびリセットするアクセス許可を付与します。Resource の要素の `username` 値を、Amazon Bedrock API キーを生成する IAM ユーザーの名前に置き換えます。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "ManageBedrockServiceSpecificCredentials",
              "Effect": "Allow",
              "Action": [
                  "iam:CreateServiceSpecificCredential",
                  "iam:ListServiceSpecificCredentials",
                  "iam:UpdateServiceSpecificCredential",
                  "iam:DeleteServiceSpecificCredential",
                  "iam:ResetServiceSpecificCredential"
              ],
              "Resource": "arn:aws:iam::*:user/username"
          }
      ]
  }
  ```

------

## Amazon Bedrock の長期 API キーの生成 (コンソール)
<a name="id_credentials_bedrock_console_create"></a>

**Amazon Bedrock 長期 API キーを生成するには (コンソール)**

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

1. IAM コンソールのナビゲーションペインで **[ユーザー]** を選択します。

1. IAM ユーザーを選択して、Amazon Bedrock の長期 API キーを生成します。

1. **[セキュリティ認証情報]** タブを選択します。

1. **[Amazon Bedrock の API キー]** セクションで、**[API キーの生成]** を選択します。

1. **API キーの有効期限**について、以下のいずれかを実行します。
   + API キーの有効期限として **1**、**5**、**30**、**90**、または **365** 日を選択します。
   + **カスタム期間**を選択して、カスタム API キーの有効期限を指定します。
   + **[有効期限なし]** (非推奨) を選択します。

1. **[API キーの生成]** を選択します。

1. API キーをコピーまたはダウンロードします。API キー値を表示できるのは今回だけです。
**重要**  
API キーを安全に保存してください。ダイアログボックスを閉じた後は、API キーを再度取得することはできません。シークレットアクセスキーがわからないまたは忘れた場合、取得することはできません。代わりに、新しいアクセスキーを作成し、古いキーを非アクティブにします。

## Amazon Bedrock の長期 API キーの生成 (AWS CLI）
<a name="id_credentials_bedrock_cli_create"></a>

AWS CLI を使用して Amazon Bedrock 長期 API キーを生成するには、次の手順を実行します。

1. [create-user](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-user.html) コマンドを使用して、Amazon Bedrock を使用するために必要な IAM ユーザーを作成します。

   ```
   aws iam create-user \
       --user-name BedrockAPIKey_1
   ```

1. [ attach-user-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-user-policy.html) コマンドを使用して、AWS 管理ポリシー `AmazonBedrockLimitedAccess` を Amazon Bedrock IAM ユーザーにアタッチします。

   ```
   aws iam attach-user-policy --user-name BedrockAPIKey_1 \
       --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
   ```

1. [ create-service-specific-credential](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-service-specific-credential.html) コマンドを使用して、Amazon Bedrock の長期 API キーを生成します。認証情報の有効期間には、1～36600 日の値を指定できます。認証情報の有効期間を指定しないと、API キーは期限切れになりません。

   有効期限が 30 日の長期 API キーを生成するには:

   ```
   aws iam create-service-specific-credential \
       --user-name BedrockAPIKey_1 \
       --service-name bedrock.amazonaws.com \
       --credential-age-days 30
   ```

レスポンスで返される `ServiceApiKeyValue` が、Amazon Bedrock の 長期 API キーです。`ServiceApiKeyValue` 値は後で取得できないため、安全に保管してください。

### 長期 API キーを一覧表示する (AWS CLI）
<a name="id_credentials_bedrock_cli_list"></a>

特定のユーザーの Amazon Bedrock 長期 API キーメタデータを一覧表示するには、[list-service-specific-credentials](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-service-specific-credentials.html) コマンドと `--user-name` パラメータを使用します。

```
aws iam list-service-specific-credentials \
    --service-name bedrock.amazonaws.com \
    --user-name BedrockAPIKey_1
```

アカウント内のすべての Amazon Bedrock 長期 API キーメタデータを一覧表示するには、[list-service-specific-credentials](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-service-specific-credentials.html) コマンドと `--all-users`パラメータを使用します。

```
aws iam list-service-specific-credentials \
    --service-name bedrock.amazonaws.com \
    --all-users
```

### 長期 API キーステータスを更新する (AWS CLI）
<a name="id_credentials_bedrock_cli_update"></a>

Amazon Bedrock の長期 API キーのステータスを更新するには、[update-service-specific-credential](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-service-specific-credential.html) コマンドを使用します。

```
aws iam update-service-specific-credential \
    --user-name "BedrockAPIKey_1" \
    --service-specific-credential-id "ACCA1234EXAMPLE1234" \
    --status Inactive|Active
```

## Amazon Bedrock の長期 API キーの生成 (AWS API)
<a name="id_credentials_bedrock_api"></a>

次の API オペレーションを使用して、Amazon Bedrock の長期 API キーを生成および管理できます。
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html) 

# Amazon Keyspaces で IAM を使用する（Apache Cassandra の場合）
<a name="id_credentials_keyspaces"></a>

Amazon Keyspaces (Apache Cassandra 用) は、スケーラブルで可用性の高い、Apache Cassandra 互換のマネージドデータベースサービスです。AWS マネジメントコンソール を通じてかプログラムにより、Amazon Keyspaces にアクセスできます。サービス固有の認証情報を使用して Amazon Keyspaces にプログラムでアクセスするには、`cqlsh` またはオープンソースの Cassandra ドライバーを使用できます。サービス固有の認証情報は、Cassandra が認証とアクセス管理に使用するようなユーザー名とパスワードを含みます。サポート対象の各サービスでは、ユーザーごとにサービス固有の認証情報を最大 2 セット設定できます。

AWS アクセスキーを使用して Amazon Keyspaces にプログラムでアクセスするには、AWS SDK や AWS Command Line Interface (AWS CLI) またはオープンソースの Cassandra ドライバーと SigV4 プラグインを使用できます。詳細については、「Amazon Keyspaces (Apache Cassandra 向け) 開発者ガイド」の「[Amazon Keyspaces の AWS の認証情報の作成と設定](https://docs.aws.amazon.com//keyspaces/latest/devguide/access.credentials.html)」を参照してください。

**注記**  
コンソール経由で Amazon Keyspaces とやり取りする予定がある場合、サービス固有の認証情報を生成する必要はありません。詳細については、「Amazon Keyspaces (Apache Cassandra 向け) 開発者ガイド」の「[コンソールを使用した Amazon Keyspaces へのアクセス](https://docs.aws.amazon.com/keyspaces/latest/devguide/console_keyspaces.html)」を参照してください。

Amazon Keyspaces にアクセスするために必要な権限の詳細については、 『[Amazon Keyspaces (Apache Cassandra 用）開発者ガイド](https://docs.aws.amazon.com/keyspaces/latest/devguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console)』の「*Amazon キースペース (Apache Cassandraの場合) ID ベースのポリシーの例*」を参照してください。

## Amazon Keyspaces 認証情報の生成 (コンソール)
<a name="keyspaces_credentials_console"></a>

AWS マネジメントコンソール を使用して、IAM ユーザー用の Amazon Keyspaces (Apache Cassandra 用) 認証情報を生成できます。

**Amazon Keyspaces サービス固有の認証情報を生成するには (コンソール)**

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

1. ナビゲーションペインで、[**ユーザー**] を選択し、認証情報を必要とするユーザーの名前を選択します。

1. [**セキュリティ認証情報**] タブにある [**Amazon Keyspaces (Apache Cassandra 用) の認証情報**] で、[**認証情報を生成する**] を選択します。

1. これで、サービス固有の認証情報が利用可能になりました。パスワードを表示またはダウンロードできるのはこのときだけです。後で回復することはできません。ただし、パスワードはいつでもリセットできます。ユーザーおよびパスワードは後で必要になるため、安全な場所に保存します。

## Amazon Keyspaces 認証情報の生成（AWS CLI)
<a name="keyspaces_credentials_cli"></a>

AWS CLI を使用して、IAM ユーザー用の Amazon Keyspaces (Apache Cassandra 用) 認証情報を生成できます。

**Amazon Keyspaces サービス固有の認証情報を生成するには (AWS CLI)**
+ 以下のコマンドを使用します。
  + [aws iam create-service-specific-credential](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-specific-credential.html)

## Amazon Keyspaces 認証情報の生成（AWS API)
<a name="keyspaces_credentials_api"></a>

AWS API を使用して、IAM ユーザー用の Amazon Keyspaces (Apache Cassandra 用) 認証情報を生成できます。

**Amazon Keyspaces サービス固有の認証情報を生成するには (AWS API)**
+ 以下のオペレーションを実行します。
  + [CreateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) 

# 使用していない AWS 認証情報の検索
<a name="id_credentials_finding-unused"></a>

AWS アカウント のセキュリティを高めるには、不要な IAM ユーザー認証 (パスワードおよびアクセスキー) を削除します。たとえば、ユーザーが組織を離れる際、または今後 AWS へのアクセスが不要な場合には、使用されていた認証情報を検索し、それらが無効になっていることを確認する必要があります。必要のなくなった認証情報は削除することが理想的です。それらは必要に応じて、後日いつでも再作成できます。少なくとも、パスワードを変更するか、アクセスキーを無効にして、以前のユーザーがアクセスできないようにする必要があります。

もちろん、*使用していない*の定義は異なる可能性がありますが、通常は特定の期間内に使用されなかった認証情報を指します。

## 使用していないパスワードの検索
<a name="finding-unused-passwords"></a>

AWS マネジメントコンソール を使用して、ユーザーのパスワード使用状況情報を表示できます。多数のユーザーがいる場合は、コンソールを使用して、ユーザーごとのコンソールパスワードの最終使用日時に関する情報を含む認証情報レポートをダウンロードできます。また、AWS CLI または IAM API から情報にアクセスすることも可能です。

**未使用のパスワードを検索するには (コンソール)**

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. 必要に応じて、[**Console last sign-in (コンソールへの前回サインイン)**] 列を USERS テーブルに追加します。

   1. 右端のテーブルの上で、設定アイコン (![\[Settings icon\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/console-settings-icon.console.png)) を選択します。

   1. **[表示する列の選択]** で、**[コンソールの最終サインイン]** を選択します。

   1. **[確認]** を選択して、ユーザーのリストに戻ります。

1. [**Console last sign-in**] (コンソールへの最終サインイン) 列に、ユーザーがコンソールを通じて AWS に最後にサインインした日付が表示されます。この情報を使用して、特定の期間以上サインインしていないユーザーとパスワードを検索できます。この列には、一度もサインインしていないユーザーとパスワードに、[**なし**] と表示されます。[**なし**] は、パスワードが設定されていないユーザーを表します。最近使用されていないパスワードは削除の対象となります。
**重要**  
サービス上の問題により、前回使用したパスワードに関するデータには、2018 年 5 月 3 日 22 時 50 分 (太平洋夏時間) から 2018 年 5 月 23 日 14 時 08 分 (太平洋夏時間) までのパスワードの使用は含まれません。これは、IAM コンソールに表示される[前回サインイン](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html)した日付および [IAM 認証情報レポート](https://docs.aws.amazon.com/IAM/latest/UserGuide/SupportedTypes.xmlid_credentials_getting-report.html)でパスワードを前回使用した日付として [GetUser API オペレーション](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)から返される日付に影響を与えます。該当する期間中にユーザーがサインインした場合、パスワードを前回使用した日付として返される日付は、2018 年 5 月 3 日より前にユーザーが最後にサインインした日付になります。2018 年 5 月 23 日 14 時 08 分 (太平洋夏時間) より後にサインインしたユーザーの場合、パスワードを前回使用した日付として返される日付は正確です。  
前回使用したパスワードに関する情報を使用して未使用の認証情報を特定して削除する (例: 過去 90 日間に AWS にサインインしなかったユーザーを削除する) 場合は、2018 年 5 月 23 日より後の日付を含めるように評価ウィンドウを調整してください。または、ユーザーがアクセスキーを使用して AWS にプログラムでアクセスする場合は、前回使用したアクセスキーの情報を参照できます。これはすべての日付について正確であるためです。

**コンソールで認証情報レポートをダウンロードして、使用されていないパスワードを検索するには (コンソール)**

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

1. ナビゲーションペインで、[**認証情報レポート**] を選択します。

1. [**レポートをダウンロード**] を選択して、`status_reports_<date>T<time>.csv` という名前のカンマ区切り値 (CSV) のファイルをダウンロードします。5 番目の列には、日付または以下のいずれか 1 つを含む `password_last_used` 列が表示されます。
   + **該当なし** – 割り当てられているパスワードが 1 つもないユーザー。
   + [**no\$1information (情報なし)**] – IAM パスワードの有効期間の追跡を開始した 2014 年 10 月 20 日以降にパスワードを使用していないユーザー。

**未使用のパスワードを見つけるには (AWS CLI)**  
未使用のパスワードを見つけるには、次のコマンドを実行します。
+ `[aws iam list-users](https://docs.aws.amazon.com/cli/latest/reference/iam/list-users.html)` は、ユーザーのリストを返します。各ユーザーには、`PasswordLastUsed` 値が設定されています。値がない場合は、ユーザーがパスワードを持っていないか、IAM がパスワードの有効期限の追跡を開始した 2014 年 10 月 20 日以降にパスワードが使用されていないことを示します。

**未使用のパスワードを見つけるには (AWS API)**  
未使用のパスワードを見つけるには、次のオペレーションを呼び出します。
+  ` [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)` は、ユーザーのコレクションを返します。各ユーザーには、`<PasswordLastUsed>` 値が設定されています。値がない場合は、ユーザーがパスワードを持っていないか、IAM がパスワードの古さの追跡を開始した 2014 年 10 月 20 日以降にパスワードが使用されていないことを示します。

認証情報レポートをダウンロードするためのコマンドについては、「[認証情報レポートの取得 (AWS CLI)](id_credentials_getting-report.md#getting-credential-reports-cliapi)」を参照してください。

## 使用していないアクセスキーの検索
<a name="finding-unused-access-keys"></a>

AWS マネジメントコンソール を使用して、ユーザーのアクセスキーの使用状況に関する情報を表示できます。多数のユーザーがいる場合は、コンソールを使用して認証情報レポートをダウンロードし、ユーザーごとのアクセスキーの最終使用日時を検索できます。また、AWS CLI または IAM API から情報にアクセスすることも可能です。

**使用していないアクセスキーを検索するには (コンソール)**

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

1. ナビゲーションペインで [**Users (ユーザー)**] を選択します。

1. 必要に応じて、[**Access key last used (アクセスキー前回使用)**] 列をユーザーテーブルに追加します。

   1. 右端のテーブルの上で、設定アイコン (![\[Settings icon\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/console-settings-icon.console.png)) を選択します。

   1. **[表示する列の選択]** で、**[最後に使用したアクセスキー]** を選択します。

   1. **[確認]** を選択して、ユーザーのリストに戻ります。

1. [**Access key last used (アクセスキー前回使用)**] 列には、ユーザーがプログラムで最後に AWS にアクセスしてから経過した日数が表示されます。この情報を使用して、指定の期間以上使用されていないアクセスキーを持つユーザーを検索できます。この列のアクセスキーのないユーザーに、**[–]** と表示されます。最近使用されていないアクセスキーは削除の対象となります。

**認証情報レポートをダウンロードして、使用していないアクセスキーを検索するには (コンソール)**

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

1. ナビゲーションペインで、[**認証情報レポート**] を選択します。

1. [**レポートをダウンロード**] を選択して、`status_reports_<date>T<time>.csv` という名前のカンマ区切り値 (CSV) のファイルをダウンロードします。列 11 ～ 13 にはアクセスキー 1 を最後に使用した日付、アクセスキーのリージョン、およびサービス情報が含まれます。列 16 ～ 18 にはアクセスキー 2 の同様の情報が含まれます。ユーザーがアクセスキーを持っていないか、IAM がアクセスキーの有効期限の追跡を開始した 2015 年 4 月 22 日以降にアクセスキーが使用されていない場合、値 [**該当なし**] が表示されます。

**未使用のアクセスキーを見つけるには (AWS CLI)**  
以下のコマンドを使用して、未使用のアクセスキーを見つけることができます。
+ `[aws iam list-access-keys](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)` は `AccessKeyID` を含む、ユーザーのアクセスキーに関する情報を返します。
+ `[aws iam get-access-key-last-used](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)` はアクセスキー ID を使用して、`LastUsedDate`、アクセスキーを最後に使用した `Region`、最後に要求されたサービスの `ServiceName` を含む出力を返します。`LastUsedDate` が見つからない場合、IAM がアクセスキーの有効期限の追跡を開始した 2015 年 4 月 22 日以降にアクセスキーは使用されていません。

**未使用のアクセスキーを見つけるには (AWS API)**  
未使用のアクセスキーを見つけるには、以下のオペレーションを呼び出します。
+ `[ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html)` は指定したユーザーに関連付けられたアクセスキーの `AccessKeyID` 値のリストを返します。
+ `[GetAccessKeyLastUsed](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)` はアクセスキー ID を使用して、値のコレクションを返します。これには、`LastUsedDate`、アクセスキーを最後に使用した `Region`、最後に要求されたサービスの `ServiceName` が含まれています。値が見つからない場合、ユーザーがアクセスキーを持っていないか、IAM がアクセスキーの古さの追跡を開始した 2015 年 4 月 22 日以降にアクセスキーが使用されていないことを示します。

認証情報レポートをダウンロードするためのコマンドについては、「[認証情報レポートの取得 (AWS CLI)](id_credentials_getting-report.md#getting-credential-reports-cliapi)」を参照してください。

# AWS アカウント の認証情報レポートを生成します。
<a name="id_credentials_getting-report"></a>

アカウントのすべてのユーザーと、ユーザーの各種認証情報 (パスワード、アクセスキー、MFA デバイスなど) のステータスが示された*認証情報レポート*を生成し、ダウンロードできます。認証情報レポートは、AWS マネジメントコンソール、[AWS SDK](https://aws.amazon.com/tools)、[コマンドラインツール](https://aws.amazon.com/tools/#Command_Line_Tools)、または IAM API から取得できます。

**注記**  
IAM 認証情報レポートには IAM が管理する次の認証情報のみが含まれます。パスワード、ユーザーごとに最初の 2 つのアクセスキー、MFA デバイス、X.509 署名証明書。このレポートには、サービス固有の認証情報 (CodeCommit パスワード、Amazon Bedrock の長期 API キー、Amazon CloudWatch Logs の長期 API キーなど) や、最初の 2 つ以外のユーザーアクセスキーは含まれません。認証情報をすべて表示するには、[ListServiceSpecificCredentials](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html) API と [ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) API を使用します。

認証情報レポートを使用して、監査やコンプライアンスの作業を支援することができます。このレポートを使用して、パスワードやアクセスキーの更新など、認証情報ライフサイクルの要件の効果を監査できます。外部の監査人にこのレポートを提供することも、監査人が直接このレポートをダウンロードできるようにアクセス権限を付与することもできます。

認証情報レポートは、4 時間ごとに 1 回生成できます。レポートをリクエストすると、IAM はまず AWS アカウント について過去 4 時間以内にレポートが生成されたかどうかを確認します。レポートが生成されている場合は、最新のレポートがダウンロードされます。アカウントの最新のレポートが 4 時間以上前のものであるか、アカウントに以前のレポートがない場合、IAM は新しいレポートを生成してダウンロードします。

**Topics**
+ [必要なアクセス許可](#id_credentials_required_permissions)
+ [レポートフォーマットの理解](#id_credentials_understanding_the_report_format)
+ [認証情報レポートの取得 (コンソール)](#getting-credential-reports-console)
+ [認証情報レポートの取得 (AWS CLI)](#getting-credential-reports-cliapi)
+ [認証情報レポートの取得 (AWS API)](#getting-credential-reports-api)

## 必要なアクセス許可
<a name="id_credentials_required_permissions"></a>

レポートを作成してダウンロードするには、以下のアクセス許可が必要です。
+ 認証情報レポートを作成生成するには: `iam:GenerateCredentialReport` 
+ レポートをダウンロードするには: `iam:GetCredentialReport`

## レポートフォーマットの理解
<a name="id_credentials_understanding_the_report_format"></a>

認証情報レポートは、カンマ区切り値（CSV）ファイルとしてフォーマットされます。CSV ファイルを一般的なスプレッドシートソフトウェアで開いて分析を実行できます。また、CSV ファイルをプログラム的に利用するアプリケーションを作成して、カスタム分析を実行することもできます。

CSV ファイルには、次の列が含まれます。

**ユーザー**  
ユーザーのわかりやすい名前。

**arn**  
ユーザーの Amazon リソースネーム（ARN）。ARN の詳細については、[IAM ARN](reference_identifiers.md#identifiers-arns)を参照してください。

**user\$1creation\$1time**  
ユーザーが作成された日時 ([ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601))。

**password\$1enabled**  
ユーザーがパスワードを持っている場合、この値は `TRUE` です。それ以外の場合は、`FALSE` です。組織の一部として作成された新規メンバーアカウントは、デフォルトでルートユーザー認証情報を持たないため、この値は `FALSE` になります。

**password\$1last\$1used**  
AWS アカウントのルートユーザー またはユーザーのパスワードを使用して最後に AWS ウェブサイトにサインインした日時「[(ISO 8601 日付/時刻形式)](http://www.iso.org/iso/iso8601)」。AWS ユーザーの最終サインイン時刻をキャプチャするウェブサイトには、AWS マネジメントコンソール、AWS ディスカッションフォーラム、および AWS Marketplace があります。5 分以内にパスワードが複数回使用された場合、最初の使用のみがこのフィールドに記録されます。  
+ 次のような場合、このフィールドの値は `no_information` になります。
  + ユーザーのパスワードが使用されたことがない場合。
  + IAM が 2014 年 10 月 20 日にこの情報の追跡を開始してから、ユーザーのパスワードが使用されていないなど、パスワードに関連付けられたサインインデータがない場合。
+ ユーザーがパスワードを所有していない場合、このフィールドの値は `N/A` (該当なし) です。

**重要**  
サービス上の問題により、前回使用したパスワードに関するデータには、2018 年 5 月 3 日 22 時 50 分 (太平洋夏時間) から 2018 年 5 月 23 日 14 時 08 分 (太平洋夏時間) までのパスワードの使用は含まれません。これは、IAM コンソールに表示される[前回サインイン](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html)した日付および [IAM 認証情報レポート](https://docs.aws.amazon.com/IAM/latest/UserGuide/SupportedTypes.xmlid_credentials_getting-report.html)でパスワードを前回使用した日付として [GetUser API オペレーション](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)から返される日付に影響を与えます。該当する期間中にユーザーがサインインした場合、パスワードを前回使用した日付として返される日付は、2018 年 5 月 3 日より前にユーザーが最後にサインインした日付になります。2018 年 5 月 23 日 14 時 08 分 (太平洋夏時間) より後にサインインしたユーザーの場合、パスワードを前回使用した日付として返される日付は正確です。  
前回使用したパスワードに関する情報を使用して未使用の認証情報を特定して削除する (例: 過去 90 日間に AWS にサインインしなかったユーザーを削除する) 場合は、2018 年 5 月 23 日より後の日付を含めるように評価ウィンドウを調整してください。または、ユーザーがアクセスキーを使用して AWS にプログラムでアクセスする場合は、前回使用したアクセスキーの情報を参照できます。これはすべての日付について正確であるためです。

**password\$1last\$1changed**  
ユーザーのパスワードが最後に設定された日時 ([ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601))。ユーザーがパスワードを所有していない場合、このフィールドの値は `N/A` (該当なし) です。

**password\$1next\$1rotation**  
アカウントにパスワードの更新を必要とする[パスワードポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html)がある場合、このフィールドには、新しいパスワードを設定するようユーザーに求める日時 ([ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601)) が保存されます。AWS アカウント (ルート) の値は常に `not_supported` です。

**mfa\$1active**  
ユーザーに対して[多要素認証](id_credentials_mfa.md) (MFA) デバイスが有効になっていた場合、この値は `TRUE` です。それ以外の場合は、`FALSE` です。

**access\$1key\$11\$1active**  
ユーザーがアクセスキーを所有し、そのアクセスキーのステータスが `Active` である場合、この値は `TRUE` です。それ以外の場合は、`FALSE` です。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。

**access\$1key\$11\$1last\$1rotated**  
ユーザーのアクセスキーが作成または最後に変更された日時 ([ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601))。ユーザーがアクティブなアクセスキーを所有していない場合、このフィールドの値は `N/A` (該当なし) です。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。

**access\$1key\$11\$1last\$1used\$1date**  
AWS API リクエストの署名にユーザーのアクセスキーが直近に使用されたときの [ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601)の日付と時刻。15 分以内にアクセスキーが複数回使用された場合、最初の使用のみがこのフィールドに記録されます。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。  
次のような場合、このフィールドの値は `N/A`（該当なし）になります。  
+ ユーザーにアクセスキーがない場合。
+ アクセスキーが一度も使用されていない場合。
+ IAM が 2015 年 4 月 22 日にこの情報の追跡を開始してから、アクセスキーが使用されていない場合。

**access\$1key\$11\$1last\$1used\$1region**  
アクセスキーが直近に使用された [AWS リージョン](https://docs.aws.amazon.com/general/latest/gr/rande.html)。15 分以内にアクセスキーが複数回使用された場合、最初の使用のみがこのフィールドに記録されます。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。  
次のような場合、このフィールドの値は `N/A`（該当なし）になります。  
+ ユーザーにアクセスキーがない場合。
+ アクセスキーが一度も使用されていない場合。
+ アクセスキーが最後に使用されたのが、IAM が 2015 年 4 月 22 日にこの情報の追跡を開始するより前の場合。
+ 最後に使用したサービスは、Amazon S3 など、リージョン固有ではありません。

**access\$1key\$11\$1last\$1used\$1service**  
アクセスキーを使用して最近アクセスされた AWS サービス。このフィールドの値として、サービスの`s3`名前空間 (Amazon S3 の 、Amazon EC2 の `ec2` など) が使用されます。15 分以内にアクセスキーが複数回使用された場合、最初の使用のみがこのフィールドに記録されます。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。  
次のような場合、このフィールドの値は `N/A`（該当なし）になります。  
+ ユーザーにアクセスキーがない場合。
+ アクセスキーが一度も使用されていない場合。
+ アクセスキーが最後に使用されたのが、IAM が 2015 年 4 月 22 日にこの情報の追跡を開始するより前の場合。

**access\$1key\$12\$1active**  
ユーザーが 2 つ目のアクセスキーを所有し、その 2 つ目のキーのステータスが `Active` である場合、この値は `TRUE` です。それ以外の場合は、`FALSE` です。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。  
ユーザーはアクセスキーを 2 つまで持つことができ、最初にキーを更新してから前のキーを削除すると、ローテーションが簡単になります。アクセスキーの更新の詳細については、「[アクセスキーを更新する](id-credentials-access-keys-update.md)」を参照してください。

**access\$1key\$12\$1last\$1rotated**  
ユーザーの 2 つ目のアクセスキーが作成された、または最後に更新された日時 ([ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601))。ユーザーが 2 つ目のアクティブなアクセスキーを所有していない場合、このフィールドの値は `N/A` (該当なし) です。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。

**access\$1key\$12\$1last\$1used\$1date**  
AWS API リクエストの署名にユーザーの 2 つ目のアクセスキーが直近に使用されたときの [ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601)の日付と時刻。15 分以内にアクセスキーが複数回使用された場合、最初の使用のみがこのフィールドに記録されます。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。  
次のような場合、このフィールドの値は `N/A`（該当なし）になります。  
+ ユーザーに 2 つ目のアクセスキーがない場合。
+ ユーザーの 2 つ目のアクセスキーが一度も使用されていない場合。
+ ユーザーの 2 つ目のアクセスキーが最後に使用されたのが、IAM が 2015 年 4 月 22 日にこの情報の追跡を開始するより前の場合。

**access\$1key\$12\$1last\$1used\$1region**  
ユーザーの 2 つ目のアクセスキーが直近に使用された [AWS リージョン](https://docs.aws.amazon.com/general/latest/gr/rande.html)。15 分以内にアクセスキーが複数回使用された場合、最初の使用のみがこのフィールドに記録されます。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。次のような場合、このフィールドの値は `N/A`（該当なし）になります。  
+ ユーザーに 2 つ目のアクセスキーがない場合。
+ ユーザーの 2 つ目のアクセスキーが一度も使用されていない場合。
+ ユーザーの 2 つ目のアクセスキーが最後に使用されたのが、IAM が 2015 年 4 月 22 日にこの情報の追跡を開始するより前の場合。
+ 最後に使用したサービスは、Amazon S3 など、リージョン固有ではありません。

**access\$1key\$12\$1last\$1used\$1service**  
ユーザーの 2 つ目のアクセスキーを使用して最近アクセスされた AWS サービス。このフィールドの値として、サービスの`s3`名前空間 (Amazon S3 の 、Amazon EC2 の `ec2` など) が使用されます。15 分以内にアクセスキーが複数回使用された場合、最初の使用のみがこのフィールドに記録されます。アカウントのルートユーザーと IAM ユーザーの両方に適用されます。次のような場合、このフィールドの値は `N/A`（該当なし）になります。  
+ ユーザーに 2 つ目のアクセスキーがない場合。
+ ユーザーの 2 つ目のアクセスキーが一度も使用されていない場合。
+ ユーザーの 2 つ目のアクセスキーが最後に使用されたのが、IAM が 2015 年 4 月 22 日にこの情報の追跡を開始するより前の場合。

**cert\$11\$1active**  
ユーザーが X.509 署名証明書を所有し、その証明書のステータスが `Active` である場合、この値は `TRUE` です。それ以外の場合は、`FALSE` です。

**cert\$11\$1last\$1rotated**  
ユーザーの署名証明書が作成または最後に変更された日時 ([ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601))。ユーザーがアクティブな署名証明書を所有していない場合、このフィールドの値は `N/A` (該当なし) です。

**cert\$12\$1active**  
ユーザーが 2 つ目の X.509 署名証明書を所有し、その証明書のステータスが `Active` である場合、この値は `TRUE` です。それ以外の場合は、`FALSE` です。  
証明書のローテーションを容易にするために、ユーザーは最大で 2 個の X.509 署名証明書を持つことができます。

**cert\$12\$1last\$1rotated**  
ユーザーの 2 つ目の署名証明書が作成または最後に変更された日時 ([ISO 8601 日付/時刻形式](https://en.wikipedia.org/wiki/ISO_8601))。ユーザーが 2 つ目のアクティブな署名証明書を所有していない場合、このフィールドの値は `N/A` (該当なし) です。

**additional\$1credentials\$1info**  
ユーザーが 3 つ以上のアクセスキーまたは証明書を持っている場合、この値は追加のアクセスキーまたは証明書、およびユーザーに関連付けられたアクセスキーまたは証明書を一覧表示するために使用できるアクションの数になります。

## 認証情報レポートの取得 (コンソール)
<a name="getting-credential-reports-console"></a>

AWS マネジメントコンソールを使用して、認証情報レポートをカンマ区切り値 (CSV) ファイルとしてダウンロードできます。

**認証情報レポートをダウンロードするには (コンソール)**

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

1. ナビゲーションペインで、[**認証情報レポート**] を選択します。

1. [**レポートをダウンロード**] を選択します。

## 認証情報レポートの取得 (AWS CLI)
<a name="getting-credential-reports-cliapi"></a>

**認証情報レポートをダウンロードするには (AWS CLI)**

1. 認証情報レポートを生成します。AWS には、単一のレポートが格納されます。レポートが存在する場合、認証情報レポートを生成すると、以前のレポートが上書きされます。[https://docs.aws.amazon.com/cli/latest/reference/iam/generate-credential-report.html](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-credential-report.html)

1. 最後に生成されたレポートを表示します: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-credential-report.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-credential-report.html)

## 認証情報レポートの取得 (AWS API)
<a name="getting-credential-reports-api"></a>

**認証情報レポートをダウンロードするには (AWS API)**

1. 認証情報レポートを生成します。AWS には、単一のレポートが格納されます。レポートが存在する場合、認証情報レポートを生成すると、以前のレポートが上書きされます。[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html)

1. 最後に生成されたレポートを表示します: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html)

# CodeCommit の IAM 認証情報: Git 認証情報、SSH キー、および AWS アクセス キー
<a name="id_credentials_ssh-keys"></a>

CodeCommit はマネージド型バージョン管理サービスであり、AWS クラウド内のプライベート Git リポジトリをホストします。CodeCommit を使用するには、Git クライアントを CodeCommit リポジトリと通信できるように設定します。この設定の一環として、CodeCommit がユーザーの認証に使用できる IAM 認証情報を指定します。IAM は、次の 3 種類の認証情報で CodeCommit をサポートしています。
+ Git 認証情報。HTTPS 経由の CodeCommit リポジトリとの通信に使用できる、IAM によって生成されたユーザー名とパスワードのペアです。
+ SSH キー。IAM ユーザーに関連付けて SSH 経由で CodeCommit リポジトリと通信できる、ローカルで生成されたパブリックキーとプライベートキーのペアです。
+  [AWS アクセスキー](id_credentials_access-keys.md)。AWS CLI に含まれる認証情報ヘルパーで使用して、HTTPS 経由で CodeCommit リポジトリと通信できます。

**注記**  
別の AWS アカウントのリポジトリにアクセスするには、SSH キーまたは Git 認証情報を使用できません。別の IAM ユーザーおよびグループに対して、CodeCommit リポジトリへのアクセスを設定する方法を学ぶには AWS アカウント の詳細については、「AWS CodeCommit ユーザーガイド」の「[ロールを使用した AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html)」を参照してください。

以下のセクションに各オプションの詳細を示します。

## CodeCommitで Git 認証情報および HTTPS を使用する (推奨)
<a name="git-credentials-code-commit"></a>

Git 認証情報では、IAM ユーザーの静的ユーザー名とパスワードのペアを生成し、その認証情報を HTTPS 接続に使用します。また、静的 Git 認証情報をサポートするサードパーティー製ツールや統合開発環境 (IDE) でもこの認証情報を使用できます。

これらの認証情報はサポートされているすべてのオペレーティングシステムで共通であり、ほとんどの認証情報管理システム、開発環境、その他のソフトウェア開発ツールと互換性があるため、推奨される方法です。Git 認証情報のパスワードはいつでもリセットできます。また、認証情報が不要になった場合は、非アクティブ化または削除できます。

**注記**  
Git 認証情報用のユーザー名やパスワードは選択できません。IAMは、これらのクレデンシャルを生成して、AWS のセキュリティ標準と CodeCommit の安全なリポジトリを確実に満たすようにします。認証情報は、生成時に 1 回のみダウンロードできます。必ず、認証情報を安全な場所に保存してください。必要に応じて、パスワードをいつでもリセットできますが、そうすると古いパスワードを使用した接続が無効になります。接続するには、新しいパスワードを使用するように接続を再構成する必要があります。

詳細については、以下のトピックを参照してください。
+ IAM ユーザーを作成するには、「[AWS アカウント で IAM ユーザーを作成する](id_users_create.md)」を参照してください。
+ CodeCommit で Git 認証情報を生成して使用するには、[AWS CodeCommit ユーザーガイド](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)の「*Git 認証情報を使用する HTTPS ユーザーの場合*」を参照してください。

**注記**  
Git 認証情報を生成した後で IAM ユーザーの名前を変更しても、Git 認証情報のユーザー名は変更されません。ユーザー名とパスワードは変わらず、有効のままです。

**サービス固有の認証情報を更新するには**

1. 現在使用されているセットに加えて、2 つ目のサービス固有の認証情報セットを作成します。

1. 新しい認証情報のセットを使用するようにすべてのアプリケーションを更新して、アプリケーションが動作することを確認します。

1. 元の認証情報の状態を「非アクティブ」に変更します。

1. すべてのアプリケーションが動作していることを確認します。

1. 非アクティブ化したサービス固有の認証情報を削除します。

## CodeCommit で SSH キーと SSH を使用する
<a name="ssh-keys-code-commit"></a>

SSH 接続では、SSH 認証用に Git および CodeCommit が使用するパブリックキーとプライベートキーのファイルをローカルマシンで作成します。パブリックキーは IAM ユーザーに関連付け、プライベートキーはローカルマシンに保存します。詳細については、以下のトピックを参照してください。
+ IAM ユーザーを作成するには、「[AWS アカウント で IAM ユーザーを作成する](id_users_create.md)」を参照してください。
+ SSH 公開キーを作成して IAM ユーザーに関連付けるには、[AWS CodeCommit ユーザーガイド](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html)の「[Linux、macOS、または Unix での SSH 接続について](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-windows.html)」または「*Windows での SSH 接続について*」を参照してください。

**注記**  
パブリックキーは ssh-rsa 形式または PEM 形式でエンコードされます。パブリックキーの最小のビットの長さは 2048 ビットですが、パブリックキーの最大長は 16384 ビットです。これはアップロードするファイルのサイズとは異なります。たとえば 2048 ビットキーを生成した場合、作成された PEM ファイルの長さは 1679 バイトになります。パブリックキーを別の形式またはサイズで提供すると、キーの形式が無効であることを知らせるエラーメッセージが表示されます。

## AWS CLI 認証情報ヘルパーおよび CodeCommit で HTTPS を使用する
<a name="access-keys-code-commit"></a>

Git が CodeCommit リポジトリとの通信で AWS に対する認証を必要とする場合は、Git 認証情報を使用した HTTPS 接続の代わりに、暗号化された署名済みバージョンの IAM ユーザー認証情報または Amazon EC2 インスタンスロールを Git で使用できます。これは、IAM ユーザーを必要としない CodeCommit リポジトリと接続する唯一の方法です。また、フェデレーションアクセスおよび一時的な認証情報を使用できる唯一の方法でもあります。詳細については、以下のトピックを参照してください。
+ フェデレーションアクセスの詳細については、[ID プロバイダーと AWS とのフェデレーション](id_roles_providers.md)および[外部で認証されたユーザーへのアクセス (ID フェデレーション)](id_roles_common-scenarios_federated-users.md)を参照してください。
+ 一時的な認証情報の詳細については、「[IAM の一時的な認証情報](id_credentials_temp.md)」および「[CodeCommit リポジトリへの一時アクセス](https://docs.aws.amazon.com/codecommit/latest/userguide/temporary-access.html)」を参照してください。

AWS CLI 認証情報ヘルパーには、Keychain Access や Windows Credential Management などの他の認証情報ヘルパーシステムとの互換性はありません。認証情報ヘルパーを使用して HTTPS 接続を設定する際は、追加の設定考慮事項があります。詳細については、[AWS CLI ユーザーガイド](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html)の「[AWS CLI 資格情報ヘルパーを使用したLinux、macOS、または Unix での HTTPS 接続](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-windows.html)」または「*AWS CodeCommit 資格情報ヘルパーを使用した Windows での HTTPS 接続について*」を参照してください。

# IAM でサーバー証明書を管理する
<a name="id_credentials_server-certs"></a>

ウェブサイトまたは AWS のアプリケーションへの HTTPS 接続を有効にするには、SSL/TLS *サーバー証明書*が必要です。AWS Certificate Manager (ACM) によってサポートされているリージョンの証明書では、ACM を使用して、サーバー証明書をプロビジョン、管理、およびデプロイすることをお勧めします。サポートされていないリージョンでは、IAM を Certificate Manager として使用する必要があります。ACM がサポートするリージョンについては、「AWS 全般のリファレンス」の「[AWS Certificate Manager エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/acm.html)」を参照してください。

**重要**  
ACM は、サーバー証明書をプロビジョン、管理、デプロイするための推奨ツールです。ACM を使用すると、証明書をリクエストしたり、既存の ACM または外部証明書を AWS リソースにデプロイしたりできます。ACM で提供された証明書は無料で自動的に更新されます。[サポートされているリージョン](https://docs.aws.amazon.com/general/latest/gr/acm.html)では、ACM を使用して、コンソールまたはプログラムでサーバー証明書を管理できます。ACM の使用の詳細については、[https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)を参照してください。ACM 証明書のリクエストの詳細については、*AWS Certificate Manager ユーザーガイド*の「[パブリック証明書のリクエスト](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html)」または「[プライベート証明書のリクエスト](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)」を参照してください。ACM へのサードパーティー証明書のインポートの詳細については、*AWS Certificate Manager ユーザーガイド*の「[証明書のインポート](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)」を参照してください。

[ACM でサポート](https://docs.aws.amazon.com/general/latest/gr/acm.html)されていないリージョンで HTTPS 接続をサポートする必要があるときにのみ、Certificate Manager として IAM を使用してください。IAM はプライベートキーを安全に暗号化し、暗号化されたバージョンを IAM SSL 証明書ストレージに保存します。IAM はすべてのリージョンでのサーバー証明書のデプロイをサポートしますが、AWS で使用するには、外部プロバイダーから証明書を取得する必要があります。ACM 証明書を IAM にアップロードすることはできません。また、IAM コンソールから証明書を管理することはできません。

IAM へのサードパーティー証明書のアップロードの詳細については、以下のトピックを参照してください。

**Topics**
+ [サーバー証明書をアップロードする (AWS API)](#upload-server-certificate)
+ [サーバー証明書の AWS API オペレーション](#id_credentials_server-certs-api)
+ [サーバー証明書のトラブルシューティング](#server-certificate-troubleshooting)

## サーバー証明書をアップロードする (AWS API)
<a name="upload-server-certificate"></a>

IAM にサーバー証明書をアップロードするには、証明書と対応するプライベートキーを提供する必要があります。証明書が自己署名されていない場合、証明書チェーンも提供する必要があります (自己署名証明書をアップロードするときに証明書チェーンは必要ありません)。証明書をアップロードする前に、これらの項目がすべてあり、以下の条件を満たしていることを確認します。
+ 証明書はアップロード時に有効である必要があります。有効期間の開始 (証明書の `NotBefore` 日付) 前、または有効期間の終了 (証明書の `NotAfter` 日) 後に証明書をアップロードすることはできません。
+ プライベートキーは非暗号化される必要があります。パスワードやパスフレーズで保護されたプライベートキーをアップロードすることはできません。暗号化されたプライベートキーの復号のヘルプについては、「[サーバー証明書のトラブルシューティング](#server-certificate-troubleshooting)」を参照してください。
+ 証明書、プライベートキー、および証明書チェーンはすべて PEM エンコードされる必要があります。これらの項目の PEM 形式への変換のヘルプについては、「[サーバー証明書のトラブルシューティング](#server-certificate-troubleshooting)」を参照してください。

[IAM API](https://docs.aws.amazon.com/IAM/latest/APIReference/) を使用して証明書をアップロードするには、[UploadServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadServerCertificate.html) リクエストを送信します。次の例では、[AWS Command Line Interface (AWS CLI) ](https://aws.amazon.com/cli/) を使用してこのオペレーションを行う方法を示します。例では、次のように想定しています。
+ PEM エンコードされた証明書は、`Certificate.pem` というファイルに保存されます。
+ PEM エンコードされた証明書チェーンは、`CertificateChain.pem` というファイルに保存されます。
+ PEM エンコードされ、非暗号化されたプライベートキーは、`PrivateKey.pem` というファイルに保存されます。
+ (オプション) キーバリューペアを使ってサーバー証明書にタグを付けるとします。例えば、証明書の特定と整理を行うために、タグキー `Department` と タグ値 `Engineering` を追加することが可能です。

次のコマンドの例を使用するには、これらのファイル名を独自のファイル名に置き換えます。*ExampleCertificate* をアップロードした証明書の名前に置き換えます。証明書にタグを付ける場合は、*ExampleKey* と *ExampleValue* タグのキーバリューのペアを独自の値に置き換えます。1 つの連続した行にコマンドを入力します。次の例では、読みやすくするために改行とスペースを追加しています。

```
aws iam upload-server-certificate --server-certificate-name ExampleCertificate
                                    --certificate-body file://Certificate.pem
                                    --certificate-chain file://CertificateChain.pem
                                    --private-key file://PrivateKey.pem
                                    --tags '{"Key": "ExampleKey", "Value": "ExampleValue"}'
```

前のコマンドが成功すると、[Amazon リソースネーム (ARN)](reference_identifiers.md#identifiers-arns)、わかりやすい名前、識別子 (ID)、有効期限日、タグなど、アップロードされた証明書に関するメタデータを返します。

**注記**  
Amazon CloudFront で使用することを目的としてサーバー証明書をアップロードする場合、`--path` オプションを使用してパスを指定する必要があります。パスの先頭に `/cloudfront` を含め、末尾にスラッシュを含める必要があります（例: `/cloudfront/test/`）。

AWS Tools for Windows PowerShell を使用して証明書をアップロードするには、[Publish-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Publish-IAMServerCertificate.html&tocid=Publish-IAMServerCertificate) を使用します。

## サーバー証明書の AWS API オペレーション
<a name="id_credentials_server-certs-api"></a>

次のコマンドを使用して、サーバー証明書を表示、タグ付け、名前変更、削除します。
+ [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html) を使用して証明書を取得します。このリクエストは、証明書、証明書チェーン (アップロードされた場合)、および証明書に関するメタデータを返します。
**注記**  
アップロード後に IAM からプライベートキーをダウンロードまたは取得することはできません。
+ [Get-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Get-IAMServerCertificate.html&tocid=Get-IAMServerCertificate) を使用して証明書を取得します。
+ アップロードされたサーバー証明書を一覧表示するには、[ListServerCertificates](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificates.html) を使用します。リクエストは、各証明書に関するメタデータを含むリストを返します。
+ アップロードしたサーバー証明書を一覧表示するには、[Get-IAMServerCertificates](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Get-IAMServerCertificates.html&tocid=Get-IAMServerCertificates) を使用します。
+ 既存のサーバー証明書にタグを付けするには、[TagServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagServerCertificate.html) を使用します。
+ Iサーバー証明書のタグを除するには、[UntagServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagServerCertificate.html) を使用します。
+ サーバー証明書の名前を変更するか、そのパスを更新するには、[UpdateServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServerCertificate.html) を使用します。

   次の例では、AWS CLI を使用してこのオペレーションを行う方法を示します

  以下のサンプルコマンドを使用するには、古い証明書の名前、新しい証明書の名前、および証明書のパスを置き換え、1 つの連続した行にコマンドを入力します。次の例では、読みやすくするために改行とスペースを追加しています。

  ```
  aws iam update-server-certificate --server-certificate-name ExampleCertificate
                                      --new-server-certificate-name CloudFrontCertificate
                                      --new-path /cloudfront/
  ```

  AWS Tools for Windows PowerShell を使用してサーバー証明書の名前を変更するか、パスを更新するには、[Update-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Update-IAMServerCertificate.html&tocid=Update-IAMServerCertificate) を使用します。
+ サーバー証明書を削除するには、[delete\$1server\$1certificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServerCertificate.html) を使用します。

  AWS Tools for Windows PowerShell を使用してサーバー証明書を削除するには、[Remove-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Remove-IAMServerCertificate.html&tocid=Remove-IAMServerCertificate) を使用します。

## サーバー証明書のトラブルシューティング
<a name="server-certificate-troubleshooting"></a>

証明書を IAM にアップロードする前に、証明書、プライベートキー、および証明書チェーンがすべて PEM エンコードされていることを確認する必要があります。また、プライベートキーは非暗号化されていることも確認する必要があります。次の 例を参照してください。

**Example PEM エンコードされた証明書の例**  

```
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
```

**Example PEM エンコードされ、暗号化されていないプライベートキーの例**  

```
-----BEGIN RSA PRIVATE KEY-----
Base64-encoded private key
-----END RSA PRIVATE KEY-----
```

**Example PEM エンコードされた証明書チェーンの例**  
証明書チェーンには 1 つまたは複数の証明書が含まれます。テキストエディタ、Windows のコピーコマンド、または Linux の cat コマンドを使用して、ファイルをチェーンに連結します。複数の証明書を含めるときは、各証明書が、前述の証明書を認証する必要があります。そのため、証明書を連結して最後にルート CA 証明書を含めます。  
次の例には 3 つの証明書が含まれていますが、証明書チェーンに含まれている証明書はそれ以上またはそれ以下である可能性があります。  

```
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
```

これらの項目が IAM へのアップロードに適切な形式でない場合は、[OpenSSL](https://openssl.org/) を使用して適切な形式に変換できます。

**DER から PEM に証明書または証明書チェーンを変換するには**  
以下の例のように、[OpenSSL **x509** コマンド](https://openssl.org/docs/manmaster/man1/x509.html)を使用します。次のサンプルコマンドで、`Certificate.der` を、DER エンコードされた証明書を含むファイルの名前に置き換えます。`Certificate.pem` を、希望する出力ファイル名に置き換え、PEM エンコードされた証明書を含めます。  

```
openssl x509 -inform DER -in Certificate.der -outform PEM -out Certificate.pem
```
 

**DER から PEM にプライベートキーを変換するには**  
以下の例のように、[OpenSSL **rsa** コマンド](https://openssl.org/docs/manmaster/man1/rsa.html)を使用します。次のサンプルコマンドで、`PrivateKey.der` を、DER エンコードされたプライベートキーを含むファイルの名前に置き換えます。`PrivateKey.pem` を、希望する出力ファイル名に置き換え、PEM エンコードされたプライベートキーを含めます。  

```
openssl rsa -inform DER -in PrivateKey.der -outform PEM -out PrivateKey.pem
```
 

**暗号化されたプライベートキーを復号するには (パスワードやパスフレーズを削除)**  
以下の例のように、[OpenSSL **rsa** コマンド](https://openssl.org/docs/manmaster/man1/rsa.html)を使用します。次のサンプルコマンドを使用するには、`EncryptedPrivateKey.pem` を、暗号化されたプライベートキーを含むファイルの名前に置き換えます。`PrivateKey.pem` を、希望する出力ファイル名に置き換え、PEM エンコードおよび非暗号化されたプライベートキーを含めます。  

```
openssl rsa -in EncryptedPrivateKey.pem -out PrivateKey.pem
```
 

**証明書バンドルを PKCS\$112 (PFX) から PEM に変換するには**  
以下の例のように、[OpenSSL **pkcs12** コマンド](https://openssl.org/docs/manmaster/man1/pkcs12.html)を使用します。次のサンプルコマンドで、`CertificateBundle.p12` を、PKCS\$112 エンコードされた証明書バンドルを含むファイルの名前に置き換えます。`CertificateBundle.pem` を、希望する出力ファイル名に置き換え、PEM エンコードされた証明書バンドルを含めます。  

```
openssl pkcs12 -in CertificateBundle.p12 -out CertificateBundle.pem -nodes
```
 

**証明書バンドルを PKCS\$17 から PEM に変換するには**  
以下の例のように、[OpenSSL **pkcs7** コマンド](https://openssl.org/docs/manmaster/man1/pkcs7.html)を使用します。次のサンプルコマンドで、`CertificateBundle.p7b` を、PKCS\$17 エンコードされた証明書バンドルを含むファイルの名前に置き換えます。`CertificateBundle.pem` を、希望する出力ファイル名に置き換え、PEM エンコードされた証明書バンドルを含めます。  

```
openssl pkcs7 -in CertificateBundle.p7b -print_certs -out CertificateBundle.pem
```