

# 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)」を参照してください。

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