IAM ユーザーのアクセスキーの管理 - AWS Identity and Access Management

IAM ユーザーのアクセスキーの管理

重要

ベストプラクティスは、アクセスキーのような長期的認証情報を作成するのではなく、IAM ロールなどの一時的なセキュリティ認証情報を使用することです。アクセスキーを作成する前に、長期的なアクセスキーの代替案を確認してください。

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

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

アクセスキーペアを作成する場合は、アクセスキー ID とシークレットアクセスキーを安全な場所に保存します。このシークレットアクセスキーは、作成時にのみ使用できます。シークレットアクセスキーを紛失した場合は、そのアクセスキーを削除し、新しく作成する必要があります。詳細については、「紛失したり忘れたりしたパスワードまたは AWS のアクセスキーのリセット」を参照してください。

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

重要

アクセスキーを安全に管理します。アカウント識別子を確認するためであっても、アクセスキーを不正な当事者に提供しないでください。提供すると、第三者がアカウントへの永続的なアクセスを取得する場合があります。

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

アクセスキーを管理するために必要なアクセス許可

注記

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

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

{ "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 ユーザーのアクセスキーを更新するには、次のポリシーのアクセス許可が必要です。

{ "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}" } ] }

アクセスキーの管理 (コンソール)

AWS Management Console を使用して IAM ユーザーのアクセスキーを管理することができます。

ユーザー自身のアクセスキーを作成、変更、または削除するには (コンソール)
  1. AWS アカウント ID またはアカウントエイリアス、IAM ユーザー名、およびパスワードを使用して IAM コンソールにサインインします。

    注記

    利便性のため、AWS サインインページは、ブラウザ cookie を使用して IAM ユーザー名とアカウント情報を記憶します。以前に別のユーザーとしてサインインしたことがある場合は、ページの下部にある[別のアカウントにサインイン]を選択し、メインのサインインページに戻ります。そこから、AWS アカウント ID またはアカウントエイリアスを入力して、アカウントの IAM ユーザーサインインページにリダイレクトされるようにすることができます。

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

  2. 右上のナビゲーションバーで自分のユーザー名を選択し、続いて [Security credentials] (セキュリティ認証情報) を選択します。

    AWS マネジメントコンソールのセキュリティ認証情報へのリンク

次のいずれかを行います。

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

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

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

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

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

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

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

別の IAM ユーザーのアクセスキーを作成、変更、または削除するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. アクセスキーを管理するユーザー名を選択し、[Security credentials] タブを選択します。

  4. [アクセスキー] セクションで、以下のいずれかを実行します。

    • アクセスキーを作成するには、[アクセスキーの作成] を選択します。このボタンが無効化されている場合は、新しいキーを作成する前に、既存のキーのいずれかを削除する必要があります。[Access key best practices & alternatives] (アクセスキーのベストプラクティスと代替案) ページで、ベストプラクティスと代替案を確認します。ユースケースを選択して、長期的なアクセスキーの作成を避けるのに役立つ他のオプションを確認します。依然としてユースケースにアクセスキーが必要だと考えられる場合は、[Other] (その他)、[Next] (次へ) の順に選択します。[Retrieve access key] (アクセスキーの取得) ページで、[Show] (表示) を選択し、ユーザーのシークレットアクセスキーの値を表示します。アクセスキー ID とシークレットアクセスキーを、ご使用のコンピュータの安全な場所に .csv ファイルとして保存するには、[Download .csv file] (.csv ファイルをダウンロード) を選択します。ユーザー用のアクセスキー作成後、キーペアはデフォルトで有効状態になっているので、対象のユーザーはすぐにキーペアを使用できます。

    • 有効状態のアクセスキーを無効にするには、[Actions] (アクション) を選択し、次に [Deactivate] (無効化) を選択します。

    • 無効状態のアクセスキーを有効にするには、[Actions] (アクション) を選択し、次に [Activate] (有効化) を選択します。

    • アクセスキーを削除するには、[Actions] (アクション) を選択し、次に [Delete] (削除) を選択します。まず、ダイアログの指示に従って [Deactivate] (無効化) を行い、次に削除することを確認します。 AWS は、この処理を実行する前にキーを無効化して、そのキーが使用されていないことをテストすることを推奨しています。AWS Management Console を使用する場合は、キーを削除する前に非アクティブ化する必要があります。

IAM ユーザーのアクセスキーを一覧表示するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. 対象のユーザー名を選択し、[セキュリティ認証情報] タブを選択します。[Access keys] (アクセスキー) セクションに、ユーザーのアクセスキーと各キーのステータスが表示されます。

    注記

    ユーザーのアクセスキー ID のみが表示されます。シークレットアクセスキーは、キー作成時にのみ取得できます。

複数の IAM ユーザーのアクセスキー ID を表示するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

    1. 右端のテーブルの上で、設定アイコン ( Settings icon ) を選択します。

    2. [Manage Columns (列の管理)] で、[アクセスキー ID] を選択します。

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

  4. [アクセスキー ID] 列には、各アクセスキー ID とそれに続く状態が表示されます ([23478207027842073230762374023 (有効)]、[22093740239670237024843420327 または (無効)] など)。

    この情報を使用して、1 つ以上のアクセスキーを持つユーザーのアクセスキーを表示およびコピーできます。アクセスキーのないユーザーは、この列に [None (なし)] と表示されます。

    注記

    ユーザーのアクセスキー ID およびステータスのみが表示されます。シークレットアクセスキーは、キー作成時にのみ取得できます。

特定のアクセスキーを持つ IAM ユーザーを見つけるには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. 検索ボックスで、検索するユーザーのアクセスキー ID を入力するか、貼り付けます。

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

    1. 右端のテーブルの上で、設定アイコン ( Settings icon ) を選択します。

    2. [Manage Columns (列の管理)] で、[アクセスキー ID] を選択します。

    3. [Close (閉じる)] を選択して、ユーザーのリストに戻り、フィルター処理されたユーザーが固有のアクセスキーを持つことを確認します。

アクセスキーの管理 (AWS CLI)

AWS CLI から IAM ユーザーのアクセスキーを管理するには、以下のコマンドを実行します。

アクセスキーの管理 (AWS API)

AWS API から IAM ユーザーのアクセスキーを管理するには、以下のオペレーションを呼び出します。

アクセスキーの更新

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

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

IAM ユーザーアクセスキーの更新 (コンソール)

AWS Management Console からアクセスキーを更新できます。

IAM ユーザーのアプリケーションを中断せずにアクセスキーを更新するには (コンソール)
  1. 最初のアクセスキーがアクティブな間に、2 番目のアクセスキーを作成します。

    1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

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

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

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

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

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

  3. 最も古いアクセスキーの [Last used] (前回使用) を確認して、最初のアクセスキーが使用中かどうかを確認します。先に進む前に、数日間待ってから古いアクセスキーが使用されているかどうかを確認するという方法があります。

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

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

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

    1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

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

どのアクセスキーを更新または削除する必要があるかを判断するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

    1. 右端のテーブルの上で、設定アイコン ( Settings icon ) を選択します。

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

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

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

アクセスキーの更新 (AWS CLI)

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

アプリケーションを中断せずにアクセスキーを更新するには (AWS CLI)
  1. 最初のアクセスキーがアクティブな間に、2 番目のアクセスキーを作成します。このキーは、デフォルトでアクティブになります。次のコマンドを実行します。

    • aws iam create-access-key

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

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

  3. 次のコマンドを使用して最初のアクセスキーがまだ使用されているかどうかを確認します。

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

  4. ステップ ステップ 3 で古いキーが使用されていないことがわかっても、最初のアクセスキーはすぐに削除しないことをお勧めします。代わりに、次のコマンドを使用して最初のアクセスキーの状態を Inactive に変更します。

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

  6. 一定期間待機して、すべてのアプリケーションとツールが更新されたことを確認したら、次のコマンドを使用して最初のアクセスキーを削除できます。

アクセスキーの更新 (AWS API)

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

アプリケーションを中断せずにアクセスキーを更新するには (AWS API)
  1. 最初のアクセスキーがアクティブな間に、2 番目のアクセスキーを作成します。このキーは、デフォルトでアクティブになります。次のオペレーションを呼び出します。

    • CreateAccessKey

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

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

  3. 次のオペレーションを呼び出して最初のアクセスキーがまだ使用されているかどうかを確認します。

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

  4. ステップ ステップ 3 で古いキーが使用されていないことがわかっても、最初のアクセスキーはすぐに削除しないことをお勧めします。代わりに、次のオペレーションを呼び出して最初のアクセスキーの状態を Inactive に変更します。

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

  6. 一定期間待機して、すべてのアプリケーションとツールが更新されたことを確認したら、次のオペレーションを呼び出して最初のアクセスキーを削除できます。

アクセスキーを保護する

アクセスキーを持っているユーザーなら誰でも、AWS リソースに対して同じレベルのアクセス権を持ちます。したがって、AWS でのアクセスキーの保護は非常に困難で、しかも責任共有モデルに沿って行う必要があります。

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

注記

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

アカウントを保護する最善の方法の 1 つは、AWS アカウントのルートユーザー のアクセスキーを持たないことです。ルートユーザーのアクセスキーを持つ必要がある場合 (まれに) を除いて、キーを生成しないことをお勧めします。代わりに、日常の管理タスクのために AWS IAM Identity Center で管理ユーザーを作成してください。IAM Identity Center で管理ユーザーを作成する方法については、IAM Identity Center ユーザーガイドの「はじめに」を参照してください。

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

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

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

以下のシナリオでは、IAM ロールと一時的なセキュリティ認証情報を使用します。

  • Amazon EC2 インスタンスで実行されているアプリケーションまたは AWS CLI スクリプトがある場合。アプリケーション内で直接アクセスキーを使用しないでください。アクセスキーをアプリケーションに渡したり、アプリケーションに埋め込んだり、ソースからアクセスキーを読み取ったりしないでください。代わりに、アプリケーションに適したアクセス許可を持つ IAM ロールを定義し、EC2 のロールを使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動します。これにより、IAM ロールが Amazon EC2 インスタンスに関連付けられます。この方法により、アプリケーションは AWS へのプログラムされた呼び出しに使用することもできる、一時的なセキュリティ認証情報を取得します。AWS SDK および AWS Command Line Interface (AWS CLI)は、そのロールから一時的なセキュリティ認証情報を自動的に取得できます。

  • クロスアカウントアクセス許可を付与する必要がある場合。IAM ロールを使用してアカウント間の信頼を確立し、信頼できるアカウントへ制限されたアクセス許可を 1 つのアカウントのユーザーに付与します。詳細については、「IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任」を参照してください。

  • モバイルアプリを持っている場合。暗号化ストレージ内であっても、アクセスキーをアプリに埋め込まないでください。代わりに、Amazon 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 フェデレーション」を参照してください。

  • AWS に連携しようとしており、組織にオンプレミスのアイデンティティストアがある場合。ユーザーが組織内で認証できる場合、AWS リソースにアクセスするための一時的なセキュリティ認証情報を発行できるアプリケーションを記述することができます。詳細については、「カスタム ID ブローカーに対する AWS コンソールへのアクセスの許可」を参照してください。

注記

AWS リソースへのプログラムによるアクセスを必要とするアプリケーションで Amazon EC2 インスタンスを使用していますか? その場合には、EC2 の IAM ロール を使用します。

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

IAM ユーザーアクセスキーを保護するために、以下の注意事項を守ってください。

  • アクセスキーを直接コードに埋め込まないでください。AWS SDKAWS コマンドラインツール では、既知の場所にアクセスキーを置くことができるため、それらをコードで保持する必要がありません。

    次のいずれかの場所にアクセスキーを置きます。

    • AWS 認証情報ファイル。AWS SDK と AWS CLI では、AWS 認証情報ファイルに保存した認証情報が自動的に使用されます。

      AWS 認証情報ファイルの使用については、SDK のドキュメントを参照してください。例としては、AWS SDK for Javaデベロッパーガイドの「AWS 認証情報とリージョンを設定する」および AWS Command Line Interface ユーザーガイドの「設定と認証情報ファイル」などがあります。

      AWS SDK for .NET と AWS Tools for Windows PowerShell の認証情報を保存するには、SDK ストアの使用をお勧めします。詳細については、AWS SDK for .NET デベロッパーガイドの「SDK Store の使用」を参照してください。

    • 環境変数。マルチテナントシステムでは、システム環境変数ではなくユーザー環境変数を選択します。

      環境変数を使用した認証情報の保存の詳細については、AWS Command Line Interface ユーザーガイドの「環境変数」を参照してください。

  • 異なるアプリケーションには、異なるアクセスキーを使用します。こうすることで、アクセスキーが公開された場合に、アクセス許可を分離して、個々のアプリケーションに対するアクセスキーを無効化できます。アプリケーションごとに別々のアクセスキーを持つと、AWS CloudTrail ログファイルに個別のエントリが生成されます。この設定により、特定のアクションを実行したアプリケーションを簡単に判別できます。

  • 必要に応じてアクセスキーを更新してください。アクセスキーが危険にさらされる可能性がある場合は、アクセスキーを更新し、以前のアクセスキーを削除してください。詳細については、「アクセスキーの更新」を参照してください。

  • 使用していないアクセスキーを削除します。ユーザーが退職したら、そのユーザーがリソースにアクセスできないようにするため、対応する IAM ユーザーを削除します。アクセスキーが最後に使用された日時を調べるには、GetAccessKeyLastUsed API (AWS CLI コマンド: aws iam get-access-key-last-used) を使用します。

  • 一時的な認証情報を使用し、最も機密性の高い API 操作ができるよう、多要素認証を設定します。IAM ポリシーを使用して、ユーザーが呼び出すことができる API オペレーションを指定できます。場合によっては、ユーザーが特に機密性の高いアクションを実行することを許可する前に、このユーザーに AWS MFA で認証することを求める追加のセキュリティが必要となることもあります。たとえば、ユーザーにAmazon EC2 RunInstancesDescribeInstances、および StopInstances アクションの実行を許可するポリシーがすでに存在する可能性があります。ただし TerminateInstances のような有害なアクションを制限し、AWS MFA デバイスによって認証される場合に限り、ユーザーがそのアクションを実行できるように管理することもできます。詳細については、「MFA 保護 API アクセスの設定」を参照してください。

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

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

アクセスキーを使用してサインインするには (モバイルアプリ)
  1. モバイルデバイスでアプリを開きます。

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

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

  3. [Access keys (アクセスキー)] ページで、情報を入力します。

    • Access key ID (アクセスキー ID) – アクセスキー ID を入力します。

    • Secret access key (シークレットアクセスキー) – シークレットアクセスキーを入力します。

    • Identity name (ID 名) – モバイルアプリに表示される ID の名前を入力します。これは、IAM ユーザー名と一致する必要はありません。

    • Identity PIN (ID PIN) – 今後のサインイン時に使用する個人識別番号 (PIN) を作成します。

      注記

      AWS モバイルアプリで生体認証を有効にすると、作成した PIN ではなく、指紋認証または顔認識を使用して検証するように求められます。生体認証に失敗した場合は、代わりに PIN の入力を求められることがあります。

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

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

以下のトピックでは、アクセスキーを使用するために AWS SDK および AWS CLI を設定するためのガイダンスを示しています。

アクセスキーの監査

コード内の AWS アクセスキーを確認して、キーが所有するアカウントのものであるかどうかを判断できます。アクセスキー ID は、aws sts get-access-key-info AWS CLI コマンドまたは GetAccessKeyInfo AWS API オペレーションを使用して渡すことができます。

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

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

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