AWS セキュリティ認証情報を使用してプログラムでアクセスする
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 にアクセスしているユーザーのタイプによって異なります。
ユーザーにプログラマチックアクセス権を付与するには、以下のいずれかのオプションを選択します。
プログラマチックアクセス権を必要とするユーザー | 目的 | 方法 |
---|---|---|
ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー) |
一時的な認証情報を使用して、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 ユーザーガイド』の「What is 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 ユーザーガイド』の「What is 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 ロールを使用してアクセス許可を付与する」を参照してください。