AWS SDKs とツールを使用した認証とアクセス - AWS SDKsとツール

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 タスク定義でそのロールを指定する必要があります。 AWS SDK またはツールは、実行時にタスクに割り当てられた IAM ロールを Amazon ECS メタデータを介して自動的に使用します。

Amazon EKS Pod Identity を使用することをお勧めします。

注: サービスアカウントの IAM ロール (IRSA) が自身のニーズに適していると思われる場合は、「Amazon EKS ユーザーガイド」の「EKS Pod Identity と IRSA の比較」を参照してください。

Using identity-based policies for 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 SDK とツールを認証する」を参照してください。

モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行います。詳細については、「IAM ユーザーガイド」の「モバイルアプリに対する Amazon Cognito の使用」を参照してください。

コンソール認証情報を使用して AWS SDKsとツールを認証する をお勧めします。

ブラウザベースの迅速な認証フローの後、 は CLI AWS Tools for PowerShell や SDK AWS などのローカル開発ツールで動作する一時的な認証情報 AWS を自動的に生成します。 AWS SDKs

AWS アカウントへのアクセス権が既にある場合、またはワークフォースのアクセスを管理する必要がある場合は、IAM Identity Center を使用して AWS SDK とツールを認証します。セキュリティのベストプラクティスとして、IAM Identity Center AWS Organizations で を使用して、すべての AWS アカウントへのアクセスを管理することをお勧めします。IAM Identity Center でユーザーを作成するか、Microsoft Active Directory を使用するか、SAML 2.0 ID プロバイダー (IdP) を使用するか、IdP を個別に AWS アカウントにフェデレーションできます。リージョンが IAM アイデンティティセンターをサポートしているかどうかを確認するには、「Amazon Web Services 全般のリファレンス」のIAM Identity Center を使用して AWS SDK とツールを認証する「IAM アイデンティティセンターのエンドポイントとクォータ」を参照してください。

ターゲットロールsts:AssumeRoleへの アクセス許可を持つ最小特権の IAM ユーザーを作成します。次に、そのユーザーの source_profile セットアップを使用してロールを引き受けるようにプロファイルを設定します。

環境変数または共有認証情報ファイルを介して一時的な IAM AWS 認証情報を使用することもできます。「 AWS SDKs」を参照してください。

注: サンドボックス環境または学習環境でのみ、長期的な認証情報を使用して AWS SDKsとツールを認証することを検討できます。

はい:「IAM Roles Anywhere を使用して AWS SDK とツールを認証する」を参照してください。IAM Roles Anywhere を使用して、 の外部で実行されるサーバー、コンテナ、アプリケーションなどのワークロードの一時的なセキュリティ認証情報を IAM で取得できます AWS。IAM Roles Anywhere を使用するには、ワークロードで X.509 証明書を使用する必要があります。

プロセス認証情報プロバイダー を使用して、実行時に認証情報を自動的に取得します。これらのシステムでは、ヘルパーツールまたはプラグインを使用して認証情報を取得し、sts:AssumeRole を使用してバックグラウンドで IAM ロールを引き受ける場合があります。

経由で挿入された一時的な認証情報を使用します AWS Secrets Manager。有効期間の短いアクセスキーを取得するオプションについては、「IAM ユーザーガイド」の「一時的なセキュリティ認証情報をリクエストする」を参照してください。これらの一時的な認証情報を保存するオプションについては、「AWS アクセスキー」を参照してください。

これらの認証情報を使用して、本番環境のシークレットまたは有効期間の長いロールベースの認証情報を保存できる Secrets Manager からより広範なアプリケーションのアクセス許可を安全に取得できます。

認証情報を取得するための最適なガイダンスについては、サードパーティープロバイダーが作成したドキュメントを使用してください。

はい: 環境変数と一時的な AWS STS 認証情報を使用します。

いいえ: 暗号化されたシークレットマネージャー に保存されている静的アクセスキーを使用します (最後の手段)。

認証方法

AWS 環境内で実行されるコードの認証方法

コードが実行されると AWS、アプリケーションが認証情報を自動的に使用できるようになります。例えば、アプリケーションが Amazon Elastic Compute Cloud でホストされていて、そのリソースに関連付けられた IAM ロールがある場合、認証情報はアプリケーションで自動的に使用可能になります。同様に、Amazon ECS または Amazon EKS コンテナを使用する場合、IAM ロールの認証情報セットは、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 SDK とツールを認証する」を参照してください。

モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行います。詳細については、「IAM ユーザーガイド」の「モバイルアプリに対する Amazon Cognito の使用」を参照してください。

ローカル ( AWS以外) で実行されるコードの認証オプション

アクセス管理に関する詳細情報

IAM ユーザーガイドには、 AWS リソースへのアクセスを安全に制御するための以下の情報が記載されています。

Amazon Web Services 全般のリファレンス には、以下に関する基本的な基本事項があります。

  • AWS 認証情報の理解と取得 — コンソールアクセスとプログラムアクセスの両方に関するアクセスキーオプションと管理プラクティス。

AWS のサービスにアクセスするための IAM Identity Center の信頼できる ID の伝播 (TIP) プラグイン

AWS ビルダー ID

は、すでに所有 AWS アカウント している、または作成する可能性のあるものを AWS ビルダー ID 補完します。は、作成した AWS リソースのコンテナ AWS アカウント として機能し、それらのリソースのセキュリティ境界を提供しますが、 はユーザーを個人として AWS ビルダー ID 表します。を使用してサインイン AWS ビルダー ID すると、Amazon Q や Amazon CodeCatalyst などの開発者ツールやサービスにアクセスできます。