AWS セキュリティ認証情報
AWS の操作時に、自身が誰であるか、そしてリクエストしているリソースに対してアクセス許可を持つかどうかを確認するための AWS セキュリティ認証情報を指定します。AWS は、このセキュリティ認証情報を使用してリクエストを認証、承認します。
たとえば、Amazon Simple Storage Service (Amazon S3) バケットから保護されたファイルをダウンロードする場合、認証情報はそのアクセスを許可する必要があります。認証情報にファイルをダウンロードする権限がないことが示される場合、AWS はリクエストを拒否します。ただし、公開されている Amazon S3 バケット内のファイルのダウンロードに AWS セキュリティ認証情報は必要ありません。
AWS には異なるタイプのユーザーがあります。すべての AWS ユーザーはセキュリティ認証情報を持っています。アカウント所有者 (ルートユーザー)、AWS IAM アイデンティティセンターのユーザー、フェデレーションユーザー、IAM ユーザーがいます。
ユーザーは長期または一時的なセキュリティ認証情報を持っています。ルートユーザー、IAM ユーザー、アクセスキーには、有効期限のない長期セキュリティ認証情報があります。認証情報を長期間保護するために、アクセスキーの管理、パスワードの変更、MFA の有効化を行うためのプロセスを準備する必要があります。
(IAM) ロール、AWS IAM アイデンティティセンターのユーザー またはフェデレーションユーザーは一時的なセキュリティ認証情報をもっています。一時的なセキュリティ認証情報は、定義された期間が経過するか、ユーザーがセッションを終了したときに期限切れになります。一時的認証情報の機能は、長期的な証情報とほとんど同じですが、次の相違点があります。
-
一時的セキュリティ認証情報は、その名前が示すとおり、使用期限が短くなっています。有効期限は数分から数時間に設定できます。認証情報が失効すると、AWS はそれらを認識しなくなります。また、その認証情報によって作成された API リクエストによるあらゆるタイプのアクセスが許可されなくなります。
-
一時的セキュリティ認証情報はユーザーとともに保存されることはなく、ユーザーのリクエストに応じて動的に生成され、提供されます。一時的セキュリティ認証情報が失効すると(または失効する前でも)、ユーザーは新しい認証情報をリクエストできます。ただし、リクエストするユーザーがまだその権限を持っている場合に限ります。
そのため、一時的な認証情報には、長期の認証情報よりも次の利点があります。
-
アプリケーションの長期の AWS セキュリティ認証情報を配布したり埋め込んだりする必要がありません。
-
ユーザーに対して AWS ID を定義せずに AWS リソースへのアクセスを許可できます。一時的認証情報はロールおよび ID フェデレーションの基本となります。
-
一時的セキュリティ認証情報の有効期限は限られているので、認証情報が不要になった際に更新したり、明示的に取り消したりする必要がありません。一時的セキュリティ認証情報の有効期限が切れると、再利用することはできません。認証情報が有効な期間を、最大限度まで指定できます。
セキュリティに関する考慮事項
後でアクセスする場合は、以下AWS アカウント を考慮することをお勧めします。
-
AWS アカウント を作成すると、1 つのルートユーザーが作成されます。ルートユーザー (アカウント所有者) の認証情報によって、アカウント内のすべてのリソースへのフルアクセスが許可されます。ルートユーザーが最初に実行するタスクは、ルートユーザーの使用を最小限にするために、別のユーザーに AWS アカウント の管理権限を付与することです。
-
IAM ポリシーを使用して、リソースへのルートユーザーアクセスを明示的に拒否することはできません。AWS Organizations サービスコントロールポリシー (SCP) を使用できるのは、ルートユーザーの許可を制限する場合のみです。
-
ルートユーザーのパスワードを忘れたり、紛失したりした場合、このパスワードをリセットするには、アカウントに関連付けられている E メールアドレスにアクセスする必要があります。
-
ルートユーザーアクセスキーを紛失した場合は、アカウントにルートユーザーとしてサインインして、新しいアクセスキーを作成する必要があります。
-
ルートユーザーを日常的なタスクに使用しないでください。ルートユーザーのみが実行できるタスクを実行します。ルートユーザーとしてサインインする必要があるタスクの完全なリストについては、「ルートユーザー認証情報が必要なタスク」を参照してください。
-
認証情報は、アカウントに固有です。複数の AWS アカウント にアクセスできる場合は、アカウントごとに別々の認証情報があります。
-
ポリシーは、ユーザー、ロール、またはユーザーグループのメンバーが実行できるアクション、 AWS リソース、および条件を決定します。ポリシーで、AWS アカウント 内の AWS サービス やリソースへのアクセスを安全に制御できます。後でアクセス許可の変更または取り消しが必要になったら、ID に直接変更する場合は、ポリシーを削除または変更できます。
-
Emergency Access IAM ユーザーのサインイン認証情報と、プログラムによるアクセス用に作成したアクセスキーは、必ず安全な場所に保存してください。アクセスキーを紛失した場合は、アカウントにサインインして新しいアクセスキーを作成する必要があります。
-
IAM ユーザーとアクセスキーによって提供される長期認証情報の代わりに、IAM ロールとフェデレーションユーザーによって提供される一時的な認証情報を使用することを強くお勧めします。
フェデレーティッド ID
フェデレーション ID は、外部のアイデンティティを持つユーザーが、安全な AWS アカウント リソースにアクセスするために使用できる一時的な AWS 認証情報を付与されたものです。外部認証は、企業の ID ストア (LDAP や Windows の Active Directory など) またはサードパーティー (Login with Amazon、Facebook、または Google でのログインなど) から取得できます。フェデレーション ID は AWS Management Console または AWS アクセスポータルではサインインしません。
フェデレーション IDが AWS にサインインできるようにするには、https://signin.aws.amazon.com/federation
を含むカスタム URL を作成する必要があります。詳細については、「カスタム ID ブローカーに対する AWS コンソールへのアクセスの許可」を参照してください。
フェデレーション ID の詳細については、「ID プロバイダーとフェデレーション」を参照してください。
多要素認証 (MFA)
多要素認証 (MFA) は、AWS アカウント にアクセスできるユーザーのセキュリティをさらに強化するサービスです。セキュリティを高めるため、AWS アカウントのルートユーザー 認証情報と、すべての IAM ユーザーに対して MFA を必須にすることが推奨されます。詳細については、「AWS での多要素認証 (MFA) の使用」を参照してください。
MFA をアクティブ化して AWS アカウント にサインインすると、サインインの認証情報に加え、MFA デバイスによって生成されるレスポンス (コード、タッチまたはタップ、生体認証スキャンなど) を求められます。MFA を追加すると、AWS アカウント 設定とリソースの安全性が高まります。
デフォルトでは、MFA は有効化されていません。AWS アカウントのルートユーザー に対する MFA デバイスの有効化と管理は、「セキュリティ認証情報
Multi-Factor Authentication (MFA) を使用したサインインについては、「IAM のサインインページでの MFA デバイスの使用」を参照してください。
プログラム的なアクセス
AWS へのプログラムによる呼び出しを行う場合、または AWS Command Line Interface か AWS Tools for PowerShell を使用する場合は、AWS アクセスキーを指定します 可能な場合は、短期のアクセスキーの使用をお勧めします。
長期的なアクセスキーを作成するときは、アクセスキー ID (AKIAIOSFODNN7EXAMPLE
など) とシークレットアクセスキー (wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
など) をセットとして作成します。シークレットアクセスキーは、作成時にのみダウンロードできます。シークレットアクセスキーをダウンロードしない場合や紛失した場合は、新しいシークレットアクセスキーを作成する必要があります。
多くの場合、期限のない長期のアクセスキーは必要ありません (IAM ユーザー用のアクセスキーを作成する場合など)。その代わり、IAM ロールを作成し、一時的なセキュリティ認証情報を生成できます。一時的なセキュリティ認証情報は、アクセスキー ID とシークレットアクセスキーが含まれていますが、認証情報がいつ無効になるかを示すセキュリティトークンも含まれています。有効期限が切れると、その後は有効にはなりません。
AKIA
で始まるアクセスキー ID は、IAM ユーザーまたは AWS アカウントルートユーザーの長期的なアクセスキーです。ASIA
で始まるアクセスキー ID は、AWS STS オペレーションを使用して作成される一時的な認証情報アクセスキーです。
AWS Management Console の外部で AWS を操作するには、ユーザーはプログラムによるアクセスが必要です。プログラムによるアクセスを許可する方法は、AWS にアクセスしているユーザーのタイプによって異なります。
ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。
どのユーザーがプログラムによるアクセスを必要としますか? | To | By |
---|---|---|
ワークフォース ID (IAM Identity Center で管理されているユーザー) |
一時的な認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラムによるリクエストに署名します。 |
使用するインターフェイス用の手順に従ってください。
|
IAM | 一時的な認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラムによるリクエストに署名します。 | 「IAM ユーザーガイド」の「AWS リソースでの一時的な認証情報の使用」の指示に従ってください。 |
IAM | (非推奨) 長期的な認証情報を使用して、AWS CLI、AWS SDK、AWS API へのプログラムによるリクエストに署名します。 |
使用するインターフェイス用の手順に従ってください。
|
長期的なアクセスキーに対する代替方法
多くの一般的なユースケースでは長期的なアクセスキーの代替方法があります。アカウントのセキュリティを強化するには、以下を検討してください。
-
長期的なアクセスキーやシークレットアクセスキーをアプリケーションコードやコードリポジトリに埋め込まないでください。代わりに AWS Secrets Manager またはその他のシークレット管理ソリューションを使用して、プレーンテキストでキーをハードコードする必要をなくします。アプリケーションまたはクライアントは必要に応じてシークレットを取得できます。詳細については、AWS Secrets Manager ユーザーガイドの「AWS Secrets Manager とは何か」を参照してください。
-
可能な場合には必ず IAM ロールを使用して一時的なセキュリティ認証情報を生成してください。可能な場合には、長期的なアクセスキーではなく、常に一時的なセキュリティ認証情報を発行するメカニズムを使用してください。一時的セキュリティ認証情報は、ユーザーとともに保存されることはなく、ユーザーのリクエストに応じて動的に生成され、提供されるため、より安全です。一時的セキュリティ認証情報は有効期間が限られているため、それらを管理したり更新したりする必要はありません。一時的なアクセスキーを提供するメカニズムには、IAM ロールや IAM Identity Center ユーザーの認証が含まれます。AWS の外部で実行されるマシンには、AWS Identity and Access Management Roles Anywhere.を使用できます。
-
AWS Command Line Interface (AWS CLI) または
aws-shell
の長期的なアクセスキーの代替方法を使用します。代替方法には以下が含まれます。-
AWS CloudShell はブラウザーベースの事前認証済みシェルで、AWS Management Console から直接起動できます。任意のシェル (Bash、PowerShell、または Z シェル) を使用して、AWS サービス に対して AWS CLI コマンドを実行できます。この手順を実行すると、コマンドラインツールのダウンロードもインストールも不要です。詳細については、AWS CloudShell ユーザーガイドの「AWS CloudShell とは何か」を参照してください。
-
AWS CLI バージョン 2 の AWS IAM Identity Center との統合 (IAM Identity Center)。ユーザーを認証し、短期的な認証情報を提供して AWS CLI コマンドを実行します。詳細については、AWS IAM Identity Center ユーザーガイドの「AWS CLI と IAM Identity Center の統合」および AWS Command Line Interface ユーザーガイドの「IAM Identity Center を使用するための AWS CLI の設定」を参照してください。
-
-
アプリケーションまたは AWS サービス にアクセスする必要があるユーザー向けに長期的なアクセスキーを作成しないでください。IAM Identity Center は、AWS サービス にアクセスする外部 IdP ユーザーに一時的なアクセス認証情報を生成できます。これにより、IAM で長期的な認証情報を作成して管理する必要がなくなります。IAM Identity Center で、外部 IdP ユーザーにアクセス権を付与する IAM Identity Center のアクセス権限セットを作成します。次に、IAM Identity Center のグループを、選択した AWS アカウント のアクセス権限セットに割り当てます。詳細については、AWS IAM Identity Center ユーザーガイドの「AWS IAM Identity Center とは」、「外部の ID プロバイダーとの接続」、および「アクセス権限セット」を参照してください。
-
長期的なアクセスキーを AWS コンピューティングサービス内に保存しないでください。代わりに、コンピューティングリソースに IAM ロールを割り当ててください。これにより、アクセス権を付与する一時的な認証情報が自動的に提供されます。例えば、Amazon EC2 インスタンスにアタッチされるインスタンスプロファイルを作成すると、AWS ロールをインスタンスに割り当て、そのアプリケーションのすべてで使用できるようになります。インスタンスプロファイルにはロールが含まれ、Amazon EC2 インスタンスで実行されるプログラムは一時的な認証情報を取得することができます。詳細については、「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する」を参照してください。
AWS にAWS認証情報を使用してアクセスする
AWS には、AWS へのアクセス方法とAWSユーザータイプに応じて異なる種類のセキュリティ認証情報が必要です。例えば、AWS Management Console にはサインインの認証情報を使用し、プログラムで AWS を呼び出すにはアクセスキーを使用します。また、アカウントのルートユーザー、AWS Identity and Access Management (IAM) ユーザー、AWS IAM Identity Centerユーザー、またはフェデレーション ID など、使用する各 ID はいずれも AWS 内で一意の認証情報を保持します。
ユーザータイプに応じて AWS にサインインする手順については、「AWS サインインユーザーガイド」の「AWS にサインインするには」を参照してください。