

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

# AWS SDKs とツールを使用した認証とアクセス
<a name="access"></a>

 AWS SDK アプリケーションを開発するとき、または使用する AWS ツールを使用する場合は AWS のサービス、コードまたはツールの認証方法を確立する必要があります AWS。 AWS リソースへのプログラムによるアクセスは、コードが実行される環境と利用可能な AWS アクセスに応じて、さまざまな方法で設定できます。

以下のオプションは、[認証情報プロバイダーチェーン](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain)の一部です。つまり、共有 AWS `config`ファイルと `credentials` ファイルを適切に設定することで、 AWS SDK またはツールはその認証方法を自動的に検出して使用します。

## アプリケーションコードを認証する方法の選択
<a name="authDecisionTree"></a>

アプリケーション AWS によって に対して行われた呼び出しを認証する方法を選択します。

### コード INSIDE AWS のサービス (Amazon EC2、Lambda、Amazon ECS、Amazon EKS、CodeBuild など) を実行していますか?
<a name="a"></a>

コードが実行されると AWS、アプリケーションが認証情報を自動的に使用できるようになります。例えば、アプリケーションが Amazon Elastic Compute Cloud でホストされていて、そのリソースに関連付けられた IAM ロールがある場合、認証情報はアプリケーションで自動的に使用可能になります。同様に、Amazon ECS または Amazon EKS コンテナを使用する場合、IAM ロールの認証情報セットは、SDK の[認証情報プロバイダーチェーン](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain)を介してコンテナ内で実行されるコードによって自動的に取得できます。

#### コードは Amazon Elastic Compute Cloud インスタンスにありますか?
<a name="a1"></a>

[IAM ロールを使用して Amazon EC2 にデプロイされたアプリケーションを認証する](access-iam-roles-for-ec2.md) — IAM ロールを使用して、Amazon EC2 インスタンスでアプリケーションを安全に実行します。

#### コードは AWS Lambda 関数にありますか?
<a name="a2"></a>

[Lambda 関数を作成する](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)ときに、Lambda により最小限のアクセス許可で実行ロールが作成されます。 AWS SDK またはツールは、実行時に Lambda 実行環境を介して Lambda にアタッチされた IAM ロールを自動的に使用します。

#### コードは Amazon Elastic Container Service (Amazon EC2 または Amazon ECS AWS Fargate の場合) にありますか?
<a name="a3"></a>

タスク用の IAM ロールを使用します。[タスクロールを作成](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)し、[Amazon ECS タスク定義](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)でそのロールを指定する必要があります。 AWS SDK またはツールは、実行時にタスクに割り当てられた IAM ロールを Amazon ECS メタデータを介して自動的に使用します。

#### コードは Amazon Elastic Kubernetes Service にありますか?
<a name="a4"></a>

[Amazon EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) を使用することをお勧めします。

注: [サービスアカウントの IAM ロール](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) (IRSA) が自身のニーズに適していると思われる場合は、「**Amazon EKS ユーザーガイド**」の「[EKS Pod Identity と IRSA の比較](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-accounts-iam)」を参照してください。

#### コードは で実行されていますか AWS CodeBuild
<a name="a5"></a>

「[Using identity-based policies for CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html)」を参照してください。

#### コードは別の AWS のサービスにありますか?
<a name="a6"></a>

 AWS のサービスの専用のガイドを参照してください。でコードを実行すると AWS、SDK [認証情報プロバイダーチェーン](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain)は認証情報を自動的に取得して更新できます。

### モバイルアプリケーションまたはクライアントベースのウェブアプリケーションを作成していますか?
<a name="b"></a>

アクセスを必要とするモバイルアプリケーションまたはクライアントベースのウェブアプリケーションを作成する場合は 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とツールを認証する](access-assume-role-web.md)」を参照してください。

モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行います。詳細については、「*IAM ユーザーガイド*」の「[モバイルアプリに対する Amazon Cognito の使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html)」を参照してください。

### コードをローカルで開発して実行していますか?
<a name="c"></a>

[コンソール認証情報を使用して AWS SDKsとツールを認証する](access-login.md)をお勧めします。

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

#### AWS アカウントアクセスに Identity Center を使用する場合
<a name="idc"></a>

 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 とツールを認証する](access-sso.md)「IAM アイデンティティセンターのエンドポイントとクォータ」を参照してください。

#### 他の認証方法をお探しの場合
<a name="owa"></a>

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

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

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

### このコードはオンプレミスまたはハイブリッド/オンデマンド VM (Amazon S3 から読み書きするサーバーやクラウドにデプロイする Jenkins など) で実行されていますか?
<a name="d"></a>

#### X.509 クライアント証明書を使用していますか?
<a name="d1"></a>

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

#### 環境は、フェデレーティッド ID プロバイダー (Microsoft Entra や Okta など) に安全に接続して一時的な AWS 認証情報をリクエストできますか?
<a name="d2"></a>

##### はい:「[プロセス認証情報プロバイダー](feature-process-credentials.md)」を使用します
<a name="d2a"></a>

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

##### いいえ: 経由で挿入された一時的な認証情報を使用する AWS Secrets Manager
<a name="d2b"></a>

経由で挿入された一時的な認証情報を使用します AWS Secrets Manager。有効期間の短いアクセスキーを取得するオプションについては、「*IAM ユーザーガイド*」の「[一時的なセキュリティ認証情報をリクエストする](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)」を参照してください。これらの一時的な認証情報を保存するオプションについては、「[AWS アクセスキー](feature-static-credentials.md)」を参照してください。

これらの認証情報を使用して、本番環境のシークレットまたは有効期間の長いロールベースの認証情報を保存できる [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) からより広範なアプリケーションのアクセス許可を安全に取得できます。

### にないサードパーティー製ツールを使用していますか AWS?
<a name="e"></a>

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

#### サードパーティーがドキュメントを提供していない場合、一時的な認証情報を安全に挿入できますか?
<a name="e1"></a>

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

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

## 認証方法
<a name="authOptions"></a>

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

コードが実行されると AWS、アプリケーションが認証情報を自動的に使用できるようになります。例えば、アプリケーションが Amazon Elastic Compute Cloud でホストされていて、そのリソースに関連付けられた IAM ロールがある場合、認証情報はアプリケーションで自動的に使用可能になります。同様に、Amazon ECS または Amazon EKS コンテナを使用する場合、IAM ロールの認証情報セットは、SDK の認証情報プロバイダーチェーンを介してコンテナ内で実行されるコードによって自動的に取得できます。
+ [IAM ロールを使用して Amazon EC2 にデプロイされたアプリケーションを認証する](access-iam-roles-for-ec2.md) — IAM ロールを使用して、Amazon EC2 インスタンスでアプリケーションを安全に実行します。
+  IAM Identity Center AWS を使用して、次の方法でプログラムで とやり取りできます。
  + [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/) コンソールから AWS CLI コマンドを実行するには、 を使用します。
  + ソフトウェア開発チーム向けのクラウドベースのコラボレーションスペースを試すには、「[Amazon CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/welcome.html)」 のご使用を検討ください。

**ウェブベースのアイデンティティープロバイダーによる認証 - モバイルまたはクライアントベースのウェブアプリケーション**

アクセスを必要とするモバイルアプリケーションまたはクライアントベースのウェブアプリケーションを作成する場合は 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とツールを認証する](access-assume-role-web.md)」を参照してください。

モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行います。詳細については、「*IAM ユーザーガイド*」の「[モバイルアプリに対する Amazon Cognito の使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html)」を参照してください。

**ローカル ( AWS以外) で実行されるコードの認証オプション**
+ [コンソール認証情報を使用して AWS SDKsとツールを認証する](access-login.md) – この機能は コマンドラインインターフェイスと Tools for PowerShell AWS の両方で動作し、 AWS CLI、Tools for PowerShell、 などのローカル開発ツールで動作する更新可能な認証情報を提供します AWS。
+ [IAM Identity Center を使用して AWS SDK とツールを認証する](access-sso.md) – セキュリティのベストプラクティスとして、IAM Identity Center AWS Organizations で を使用して、すべての へのアクセスを管理することをお勧めします AWS アカウント。でユーザーを作成する AWS IAM アイデンティティセンターか、Microsoft Active Directory を使用するか、SAML 2.0 ID プロバイダー (IdP) を使用するか、IdP を個別にフェデレーションできます AWS アカウント。お使いのリージョンが IAM Identity Center をサポートしているかどうかを確認するには、*Amazon Web Services 全般のリファレンス* の「[AWS IAM アイデンティティセンター エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/sso.html)」を参照してください。
+ [IAM Roles Anywhere を使用した AWS SDKsとツールの認証](access-rolesanywhere.md) – IAM Roles Anywhere を使用して、 の外部で実行されるサーバー、コンテナ、アプリケーションなどのワークロードの一時的なセキュリティ認証情報を IAM で取得できます AWS。IAM Roles Anywhere を使用するには、ワークロードで X.509 証明書を使用する必要があります。
+  [AWS SDKsとツールを認証するための AWS 認証情報を持つロールの引き受け](access-assume-role.md) – IAM ロールを引き受けて、それ以外の場合はアクセスできない AWS リソースに一時的にアクセスできます。
+  [AWS アクセスキーを使用して AWS SDKsとツールを認証する](access-users.md) – 利便性が低い、または AWS リソースのセキュリティリスクが高まる可能性があるその他のオプション。

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

*IAM ユーザーガイド*には、 AWS リソースへのアクセスを安全に制御するための以下の情報が記載されています。
+ [IAM ID (ユーザー、ユーザーグループ、ロール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) — での ID の基本を理解します AWS。
+ [IAM におけるセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) —「[責任分担モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)」 に従って AWS アプリケーションを開発する際に従うべきセキュリティ上の推奨事項。

*Amazon Web Services 全般のリファレンス* には、以下に関する基本的な基本事項があります。
+ [AWS 認証情報の理解と取得](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) — コンソールアクセスとプログラムアクセスの両方に関するアクセスキーオプションと管理プラクティス。

** AWS のサービスにアクセスするための IAM Identity Center の信頼できる ID の伝播 (TIP) プラグイン**
+ [TIP プラグインを使用して にアクセスする AWS のサービス](access-tip.md) – Amazon Q Business または信頼できる ID の伝播をサポートする他のサービス用のアプリケーションを作成し、 AWS SDK for Java または を使用している場合は AWS SDK for JavaScript、TIP プラグインを使用して認可を合理化できます。

## AWS ビルダー ID
<a name="bid"></a>

は、すでに所有 AWS アカウント している、または作成する可能性のあるものを AWS ビルダー ID 補完します。は作成した AWS リソースのコンテナ AWS アカウント として機能し、それらのリソースのセキュリティ境界を提供しますが、 はユーザーを個人として AWS ビルダー ID 表します。を使用してサインイン AWS ビルダー ID すると、Amazon Q や Amazon CodeCatalyst などの開発者ツールやサービスにアクセスできます。
+ *AWS サインイン ユーザーガイド*の「 [でサインイン AWS ビルダー ID](https://docs.aws.amazon.com/signin/latest/userguide/sign-in-aws_builder_id.html)する – を作成して使用する方法 AWS ビルダー ID と、ビルダー ID が提供する内容について説明します。
+ [CodeCatalyst の概念 - *Amazon CodeCatalyst ユーザーガイド*での AWS ビルダー ID](https://docs.aws.amazon.com/codecatalyst/latest/userguide/concepts.html#sign-in-concept) – CodeCatalyst での AWS ビルダー IDの使用方法について説明します。