翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDKs とツールを使用した認証とアクセス
AWS SDK アプリケーションを開発するとき、または使用する AWS ツールを使用する場合は AWS のサービス、コードまたはツールの認証方法を確立する必要があります AWS。 AWS リソースへのプログラムによるアクセスは、コードが実行される環境と利用可能な AWS アクセスに応じて、さまざまな方法で設定できます。
以下のオプションは、認証情報プロバイダーチェーンの一部です。つまり、共有 AWS configファイルと credentials ファイルを適切に設定することで、 AWS SDK またはツールはその認証方法を自動的に検出して使用します。
アプリケーションコードを認証する方法を選択する
アプリケーション AWS によって に対して行われた呼び出しを認証する方法を選択します。
コードが実行されると AWS、アプリケーションが認証情報を自動的に使用できるようになります。例えば、アプリケーションが Amazon Elastic Compute Cloud でホストされていて、そのリソースに関連付けられた IAM ロールがある場合、認証情報は自動的にアプリケーションで使用可能になります。同様に、Amazon ECS または Amazon EKS コンテナを使用する場合、IAM ロールの認証情報セットは、SDK の認証情報プロバイダーチェーンを介してコンテナ内で実行されているコードによって自動的に取得できます。
IAM ロールを使用して Amazon EC2 にデプロイされたアプリケーションを認証する — IAM ロールを使用して、Amazon EC2 インスタンスでアプリケーションを安全に実行します。
Lambda は、Lambda 関数を作成するときに最小限のアクセス許可で実行ロールを作成します。 AWS SDK またはツールは、実行時に Lambda 実行環境を介して Lambda にアタッチされた IAM ロールを自動的に使用します。
タスクに IAM ロールを使用します。タスクロールを作成し、Amazon ECS タスク定義でそのロールを指定する必要があります。SDK AWS またはツールは、実行時にタスクに割り当てられた IAM ロールを Amazon ECS メタデータを介して自動的に使用します。
Amazon EKS Pod ID を使用することをお勧めします。
注: サービスアカウント (IRSA) の IAM ロールが独自のニーズに適していると思われる場合は、「Amazon EKS ユーザーガイド」の「EKS Pod Identity と IRSA の比較」を参照してください。
CodeBuild でのアイデンティティベースのポリシーの使用」を参照してください。
専用の ガイドを参照してください AWS のサービス。でコードを実行すると AWS、SDK 認証情報プロバイダーチェーンは認証情報を自動的に取得して更新できます。
アクセスを必要とするモバイルアプリケーションまたはクライアントベースのウェブアプリケーションを作成する場合は AWS、ウェブ ID フェデレーションを使用して一時的な AWS セキュリティ認証情報を動的にリクエストするようにアプリケーションを構築します。
ウェブ ID フェデレーションを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要はありません。その代わりに、アプリのユーザーは、よく知られている外部 ID プロバイダー (IdP) (例: Login with Amazon、Facebook、Google などの OpenID Connect (OIDC) 互換の IdP) を使用してサインインすることができます。認証トークンを受け取り、そのトークンを の一時的なセキュリティ認証情報と交換して、 AWS のリソースを使用するアクセス許可を持つ IAM ロールにマッピングできます AWS アカウント。
SDK またはツールへ設定する方法については、「ウェブ ID または OpenID Connect でロールを引き受けて AWS SDKsとツールを認証する」を参照してください。
モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行います。詳細については、「IAM ユーザーガイド」の「モバイルアプリに対する Amazon Cognito の使用」を参照してください。
をお勧めしますIAM Identity Center を使用して AWS SDK とツールを認証する。
セキュリティのベストプラクティスとして、IAM Identity Center AWS Organizations で を使用して、すべての へのアクセスを管理することをお勧めします AWS アカウント。でユーザーを作成する AWS IAM Identity Centerか、Microsoft Active Directory を使用するか、SAML 2.0 ID プロバイダー (IdP) を使用するか、IdP を に個別にフェデレーションできます AWS アカウント。お使いのリージョンが IAM Identity Center をサポートしているかどうかを確認するには、Amazon Web Services 全般のリファレンス の「AWS IAM Identity Center エンドポイントとクォータ」を参照してください。
(推奨) ターゲットロールsts:AssumeRoleへの アクセス許可を持つ最小特権の IAM ユーザーを作成します。次に、そのユーザーの source_profile セットアップを使用してロールを引き受けるようにプロファイルを設定します。
環境変数または共有 AWS credentialsファイルを介して一時的な IAM 認証情報を使用することもできます。「短期認証情報を使用した AWS SDKs認証」を参照してください。
注: サンドボックス環境または学習環境でのみ、 を検討できます 長期認証情報を使用した AWS SDKs認証。
はい: 「」を参照してくださいIAM Roles Anywhere を使用した AWS SDKsとツールの認証。IAM Roles Anywhere を使用して、 の外部で実行されるサーバー、コンテナ、アプリケーションなどのワークロードの一時的なセキュリティ認証情報を IAM で取得できます AWS。IAM Roles Anywhere を使用するには、ワークロードで X.509 証明書を使用する必要があります。
を使用してプロセス認証情報プロバイダー、実行時に認証情報を自動的に取得します。これらのシステムでは、ヘルパーツールまたはプラグインを使用して認証情報を取得し、 を使用してバックグラウンドで IAM ロールを引き受ける場合がありますsts:AssumeRole。
経由で挿入された一時的な認証情報を使用します AWS Secrets Manager。存続期間の短いアクセスキーを取得するオプションについては、IAM ユーザーガイドの「一時的なセキュリティ認証情報をリクエストする」を参照してください。これらの一時的な認証情報を保存するオプションについては、「」を参照してくださいAWS アクセスキー。
これらの認証情報を使用して、本番環境のシークレットまたは存続期間の長いロールベースの認証情報を保存できる Secrets Manager からより広範なアプリケーションアクセス許可を安全に取得できます。
認証情報の取得に関する最善のガイダンスを得るには、サードパーティープロバイダーが作成したドキュメントを使用してください。
はい: 環境変数と一時的な AWS STS 認証情報を使用します。
いいえ: 暗号化されたシークレットマネージャー (最後の手段) に保存されている静的アクセスキーを使用します。
認証方法
AWS 環境内で実行されるコードの認証方法
コードが実行されると AWS、アプリケーションが認証情報を自動的に使用できるようになります。例えば、アプリケーションが Amazon Elastic Compute Cloud でホストされていて、そのリソースに関連付けられた IAM ロールがある場合、認証情報は自動的にアプリケーションで使用可能になります。同様に、Amazon ECS または Amazon EKS コンテナを使用する場合、IAM ロールの認証情報セットは、SDK の認証情報プロバイダーチェーンを介してコンテナ内で実行されているコードによって自動的に取得できます。
-
IAM ロールを使用して Amazon EC2 にデプロイされたアプリケーションを認証する — IAM ロールを使用して、Amazon EC2 インスタンスでアプリケーションを安全に実行します。
-
IAM Identity Center AWS を使用して、次の方法でプログラムで とやり取りできます。
-
コンソールから AWS CLI コマンドを実行するAWS CloudShellには、 を使用します。
-
ソフトウェア開発チーム向けのクラウドベースのコラボレーションスペースを試すには、「Amazon CodeCatalyst」 のご使用を検討ください。
-
ウェブベースのアイデンティティープロバイダーによる認証 - モバイルまたはクライアントベースのウェブアプリケーション
アクセスを必要とするモバイルアプリケーションまたはクライアントベースのウェブアプリケーションを作成する場合は AWS、ウェブ ID フェデレーションを使用して一時的な AWS セキュリティ認証情報を動的にリクエストするようにアプリケーションを構築します。
ウェブ ID フェデレーションを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要はありません。その代わりに、アプリのユーザーは、よく知られている外部 ID プロバイダー (IdP) (例: Login with Amazon、Facebook、Google などの OpenID Connect (OIDC) 互換の IdP) を使用してサインインすることができます。認証トークンを受け取り、そのトークンを の一時的なセキュリティ認証情報と交換して、 AWS のリソースを使用するアクセス許可を持つ IAM ロールにマッピングできます AWS アカウント。
SDK またはツールへ設定する方法については、「ウェブ ID または OpenID Connect でロールを引き受けて AWS SDKsとツールを認証する」を参照してください。
モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行います。詳細については、「IAM ユーザーガイド」の「モバイルアプリに対する Amazon Cognito の使用」を参照してください。
ローカル ( ではない AWS) で実行されるコードの認証方法
-
IAM Identity Center を使用して AWS SDK とツールを認証する – セキュリティのベストプラクティスとして、IAM Identity Center AWS Organizations で を使用して、すべての へのアクセスを管理することをお勧めします AWS アカウント。でユーザーを作成する AWS IAM Identity Centerか、Microsoft Active Directory を使用するか、SAML 2.0 ID プロバイダー (IdP) を使用するか、IdP を個別にフェデレーションできます AWS アカウント。お使いのリージョンが IAM Identity Center をサポートしているかどうかを確認するには、Amazon Web Services 全般のリファレンス の「AWS IAM Identity Center エンドポイントとクォータ」を参照してください。
-
IAM Roles Anywhere を使用した AWS SDKsとツールの認証 – IAM Roles Anywhere を使用して、 の外部で実行されるサーバー、コンテナ、アプリケーションなどのワークロードの一時的なセキュリティ認証情報を IAM で取得できます AWS。IAM Roles Anywhere を使用するには、ワークロードで X.509 証明書を使用する必要があります。
-
AWS SDKsとツールを認証するための AWS 認証情報を持つロールの引き受け – IAM ロールを引き受けて、それ以外の場合はアクセスできない AWS リソースに一時的にアクセスできます。
-
AWS アクセスキーを使用した AWS SDKs認証 – 利便性が低い、または AWS リソースのセキュリティリスクが高まる可能性があるその他のオプション。
アクセス管理に関する詳細情報
IAM ユーザーガイドには、 AWS リソースへのアクセスを安全に制御するための以下の情報が記載されています。
-
IAM ID (ユーザー、ユーザーグループ、ロール) – での ID の基本を理解します AWS。
-
IAM におけるセキュリティのベストプラクティス —「責任分担モデル
」 に従って AWS アプリケーションを開発する際に従うべきセキュリティ上の推奨事項。
Amazon Web Services 全般のリファレンス には、以下に関する基本的な基本事項があります。
-
AWS 認証情報の理解と取得 — コンソールアクセスとプログラムアクセスの両方に関するアクセスキーオプションと管理プラクティス。
アクセスする IAM Identity Center の信頼された ID 伝達 (TIP) プラグイン AWS のサービス
-
TIP プラグインを使用して にアクセスする AWS のサービス – Amazon Q Business または信頼できる ID の伝播をサポートする他のサービス用のアプリケーションを作成し、 AWS SDK for Java または を使用している場合は AWS SDK for JavaScript、TIP プラグインを使用して認可を合理化できます。
AWS ビルダー ID
は、すでに所有 AWS アカウント している、または作成する可能性のあるものを AWS ビルダー ID 補完します。は、作成した AWS リソースのコンテナ AWS アカウント として機能し、それらのリソースのセキュリティ境界を提供しますが、 はユーザーを個人として AWS ビルダー ID 表します。を使用してサインイン AWS ビルダー ID すると、Amazon Q や Amazon CodeCatalyst などの開発者ツールやサービスにアクセスできます。
-
AWS サインイン ユーザーガイドの「 でサインイン AWS ビルダー IDする – を作成して使用する方法 AWS ビルダー ID と、ビルダー ID が提供する内容について説明します。
-
CodeCatalyst の概念 - Amazon CodeCatalyst ユーザーガイドでの AWS ビルダー ID – CodeCatalyst での AWS ビルダー IDの使用方法について説明します。