Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

SDK を設定する - AWS SDK for Go v2

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

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

SDK を設定する

AWS SDK for Go V2 では、ロガー、ログレベル、再試行設定など、サービスクライアントの一般的な設定を構成できます。ほとんどの設定はオプションです。ただし、サービスクライアントごとに、 AWS リージョンと認証情報を指定する必要があります。SDK は、これらの値を使用してリクエストを正しいリージョンに送信し、正しい認証情報を使用してリクエストに署名します。これらの値は、プログラムでコードまたは実行環境を介して指定できます。

AWS 共有設定ファイルのロード

サービスAPIクライアントを初期化する方法はいくつかありますが、ユーザーに推奨される最も一般的なパターンは次のとおりです。

AWS 共有設定ファイルを使用するSDKように を設定するには、次のコードを使用します。

import ( "context" "log" "github.com/aws/aws-sdk-go-v2/config" ) // ... cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { log.Fatalf("failed to load configuration, %v", err) }

config.LoadDefaultConfig(context.TODO()) は、 AWS 共有設定ソースを使用して aws.Config を構築します。これには、認証情報プロバイダーの設定、 AWS リージョンの設定、サービス固有の設定のロードが含まれます。サービスクライアントは、ロードされた を使用して構築できaws.Config、クライアントを構築するための一貫したパターンを提供します。

AWS 共有設定ファイルの詳細については、「 およびツールリファレンスガイド」の AWS SDKs「設定」を参照してください。

AWS リージョンの指定

リージョンを指定するときは、 us-west-2や などのリクエストの送信先を指定しますus-east-2。各サービスのリージョンのリストについては、「」の「サービスエンドポイントとクォータ」を参照してください Amazon Web Services 全般のリファレンス。

にはデフォルトのリージョンSDKはありません。リージョンを指定するには:

  • AWS_REGION 環境変数をデフォルトのリージョンに設定します。

  • 設定WithRegionをロードconfig.LoadDefaultConfigするときに config. を の引数として使用してリージョンを明示的に設定します。

REVIEW: これらの手法をすべて使用してリージョンを設定すると、 は明示的に指定したリージョンSDKを使用します。

環境変数を使用してリージョンを設定する

Linux、macOS、または Unix

export AWS_REGION=us-west-2

Windows

set AWS_REGION=us-west-2

プログラムでリージョンを指定する

cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))

認証情報の指定

では、リクエストに署名するための認証情報 (アクセスキーとシークレットアクセスキー) AWS SDK for Go が必要です AWS。特定のユースケースに応じて、複数の場所で認証情報を指定できます。認証情報の取得については、「」を参照してくださいの使用を開始する AWS SDK for Go

を使用してaws.Configインスタンスを初期化するとconfig.LoadDefaultConfig、 SDKはデフォルトの認証情報チェーンを使用して AWS 認証情報を検索します。このデフォルトの認証情報チェーンは、次の順序で認証情報を検索します。

  1. 環境変数。

    1. 静的認証情報 (AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN

    2. ウェブ ID トークン (AWS_WEB_IDENTITY_TOKEN_FILE

  2. 共有設定ファイル。

    1. SDK はデフォルトで、コンピュータのホーム.awsフォルダに配置されたフォルダの下の credentials ファイルに設定されます。

    2. SDK はデフォルトで、コンピュータのホーム.awsフォルダに配置されたフォルダの下の config ファイルに設定されます。

  3. アプリケーションが Amazon ECSタスク定義または RunTask APIオペレーションを使用している場合は、タスクの IAM ロール。

  4. アプリケーションが Amazon EC2インスタンスで実行されている場合は、Amazon の IAM ロールEC2。

は、手動設定を必要とせずに、組み込みプロバイダーを自動的にSDK検出して使用します。例えば、Amazon EC2インスタンスに IAMロールを使用する場合、アプリケーションは自動的にインスタンスの認証情報を使用します。アプリケーションで認証情報を手動で設定する必要はありません。

ベストプラクティスとして、 では、次の順序で認証情報を指定 AWS することをお勧めします。

  1. アプリケーションが Amazon タスク定義または RunTask APIオペレーションを使用している場合は、ECSタスクに IAMロールを使用します。

  2. Amazon の IAMロールを使用します EC2 (アプリケーションが Amazon EC2インスタンスで実行されている場合)。

    IAM ロールは、 AWS 呼び出しを行うための一時的なセキュリティ認証情報をインスタンスでアプリケーションに提供します。 IAMロールは、複数の Amazon EC2インスタンスで認証情報を簡単に配布および管理する方法を提供します。

  3. 共有認証情報または設定ファイルを使用します。

    認証情報と設定ファイルは、他の AWS SDKsおよび 間で共有されます AWS CLI。セキュリティのベストプラクティスとして、認証情報ファイルを使用して、アクセスキーIDsやシークレットキーなどの機密値を設定することをお勧めします。これらの各ファイルのフォーマット要件は次のとおりです。

  4. 環境変数を使用します。

    環境変数の設定は、Amazon EC2インスタンス以外のマシンで開発作業を行う場合に便利です。

タスク用の IAM ロール

アプリケーションで Amazon ECSタスク定義またはRunTaskオペレーションを使用している場合は、IAMタスクのロールを使用して、タスクのコンテナで使用できる IAMロールを指定します。

IAM Amazon EC2 インスタンスのロール

Amazon EC2インスタンスでアプリケーションを実行している場合は、インスタンスの IAMロールを使用して、一時的なセキュリティ認証情報を取得して呼び出しを行います AWS。

IAM ロールを使用するようにインスタンスを設定している場合、 SDKはこれらの認証情報をアプリケーションに自動的に使用します。これらの認証情報を手動で指定する必要はありません。

共有認証情報と設定

共有認証情報と設定ファイルは、 と他のツール間で AWS SDKs共通の設定を共有するために使用できます。ツールやアプリケーションごとに異なる認証情報を使用している場合は、プロファイルを使用して複数のアクセスキーを同じ設定ファイル内に設定できます。

を使用して、複数の認証情報または設定ファイルの場所を指定できます。デフォルトではconfig.LoadOptions、 は に記載されているデフォルトの場所に保存されているファイルをSDKロードします認証情報の指定

import ( "context" "github.com/aws/aws-sdk-go-v2/config" ) // ... cfg , err := config.LoadDefaultConfig(context.TODO(), config.WithSharedCredentialsFiles( []string{"test/credentials", "data/credentials"}, ), config.WithSharedConfigFiles( []string{"test/config", "data/config"}, ) )

共有認証情報と設定ファイルを使用する場合、重複するプロファイルが指定されると、マージされてプロファイルが解決されます。マージ競合が発生した場合、

  1. 同じ認証情報/設定ファイル内で重複するプロファイルが指定されている場合、後者のプロファイルで指定されたプロファイルプロパティが優先されます。

  2. 複数の認証情報ファイルまたは複数の設定ファイルで重複プロファイルが指定されている場合、プロファイルプロパティは へのファイル入力の順序に従って解決されますconfig.LoadOptions。後者のファイルのプロファイルプロパティが優先されます。

  3. 認証情報ファイルと設定ファイルの両方にプロファイルが存在する場合、認証情報ファイルのプロパティが優先されます。

必要に応じて、 LogConfigurationWarningsで を有効にconfig.LoadOptionsし、プロファイル解決ステップを記録できます。

認証情報ファイルの作成

共有認証情報ファイル (.aws/credentials) がない場合は、任意のテキストエディタを使用してホームディレクトリに作成できます。認証情報ファイルに次のコンテンツを追加し、 <YOUR_ACCESS_KEY_ID>と を認証情報<YOUR_SECRET_ACCESS_KEY>に置き換えます。

[default] aws_access_key_id = <YOUR_ACCESS_KEY_ID> aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>

[default] 見出しは、別のプロファイルを使用するように設定しない限り、 SDK が使用するデフォルトのプロファイルの認証情報を定義します。

次の例に示すように、セッショントークンをプロファイルに追加することで、一時的なセキュリティ認証情報を使用することもできます。

[temp] aws_access_key_id = <YOUR_TEMP_ACCESS_KEY_ID> aws_secret_access_key = <YOUR_TEMP_SECRET_ACCESS_KEY> aws_session_token = <YOUR_SESSION_TOKEN>

認証情報ファイル内のデフォルト以外のプロファイルのセクション名は、 という単語で始まることはできませんprofile。詳細については、AWS SDKs「」および「 ツールリファレンスガイド」を参照してください。

設定ファイルの作成

共有認証情報ファイル (.aws/config) がない場合は、任意のテキストエディタを使用してホームディレクトリに作成できます。次のコンテンツを 設定ファイルに追加し、 を目的のリージョン<REGION>に置き換えます。

[default] region = <REGION>

[default] 見出しは、デフォルトプロファイルの設定を定義します。これは、別のプロファイルを使用するように設定しない限り、 SDKが使用します。

次の例に示すように、名前付きプロファイルを使用できます。

[profile named-profile] region = <REGION>

設定ファイル内のデフォルト以外のプロファイルのセクション名は、常に という単語で始まりprofile、その後に目的のプロファイル名が続く必要があります。詳細については、「 AWS SDKsおよびツールリファレンスガイド」を参照してください。

プロファイルの指定

アクセスキーの各セットをプロファイルに関連付けることで、同じ設定ファイルに複数のアクセスキーを含めることができます。たとえば、認証情報ファイルでは、次のように複数のプロファイルを宣言できます。

[default] aws_access_key_id = <YOUR_DEFAULT_ACCESS_KEY_ID> aws_secret_access_key = <YOUR_DEFAULT_SECRET_ACCESS_KEY> [test-account] aws_access_key_id = <YOUR_TEST_ACCESS_KEY_ID> aws_secret_access_key = <YOUR_TEST_SECRET_ACCESS_KEY> [prod-account] ; work profile aws_access_key_id = <YOUR_PROD_ACCESS_KEY_ID> aws_secret_access_key = <YOUR_PROD_SECRET_ACCESS_KEY>

デフォルトでは、 はAWS_PROFILE環境変数SDKをチェックして、使用するプロファイルを決定します。AWS_PROFILE 変数が設定されていない場合、 は defaultプロファイルSDKを使用します。

場合によっては、アプリケーションで別のプロファイルを使用します。例えば、myappアプリケーションでtest-account認証情報を使用するとします。このプロファイルは、次のコマンドを使用して使用できます。

$ AWS_PROFILE=test-account myapp

また、 を使用して、 SDKを呼び出すos.Setenv("AWS_PROFILE", "test-account")前に を呼び出すかconfig.LoadDefaultConfig、次の例に示すように明示的なプロファイルを引数として渡すことで、プロファイルを選択するように に指示することもできます。

cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithSharedConfigProfile("test-account"))
注記

環境変数で認証情報を指定すると、 は、指定したプロファイルに関係なく、SDK常にそれらの認証情報を使用します。

環境可変

デフォルトでは、 は 環境で設定された AWS 認証情報SDKを検出し、それを使用してリクエストに署名します AWS。これにより、アプリケーションで認証情報を管理する必要がなくなります。

は、次の環境変数で認証情報SDKを検索します。

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN (オプション)

次の例は、環境変数の設定方法を示しています。

Linux、OS X、Unix

$ export AWS_ACCESS_KEY_ID=YOUR_AKID $ export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY $ export AWS_SESSION_TOKEN=TOKEN

Windows

> set AWS_ACCESS_KEY_ID=YOUR_AKID > set AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY > set AWS_SESSION_TOKEN=TOKEN

プログラムで認証情報を指定する

config.LoadDefaultConfig では、共有設定ソースをロードするときに、明示的な aws CredentialProviderを指定できます。共有設定をロードするときに明示的な認証情報プロバイダーを渡すには、 config を使用しますWithCredentialsProvider。たとえば、 がaws.CredentialProvider実装インスタンスcustomProviderを参照する場合、設定のロード中に次のように渡すことができます。

cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithCredentialsProvider(customProvider))

この例では、明示的に認証情報を指定すると、 はそれらの認証情報のみSDKを使用します。

注記

に渡される、または によって返されるすべての認証情報プロバイダーLoadDefaultConfigは、 でCredentialsCache自動的にラップされます。これにより、同時実行が安全なキャッシュと認証情報のローテーションが可能になります。でプロバイダーaws.Configを直接明示的に設定する場合は、 を使用してこのタイプでプロバイダーを明示的にラップする必要もありますNewCredentialsCache

静的な認証情報

認証情報を使用して、アプリケーションで認証情報をハードコードできます。NewStaticCredentialsProvider 認証情報プロバイダーは、使用するアクセスキーを明示的に設定します。次に例を示します。

cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("AKID", "SECRET_KEY", "TOKEN")), )
警告

アプリケーション内に認証情報を埋め込まないでください。この方法はテスト目的でのみ使用します。

シングルサインオン認証情報

SDK は、 を使用して一時的な認証情報を取得するための AWS 認証情報プロバイダーを提供します AWS IAM Identity Center。を使用して AWS CLI、 AWS アクセスポータルで認証し、一時的な AWS 認証情報へのアクセスを許可します。次に、シングルサインオン (SSO) プロファイルをロードするようにアプリケーションを設定します。 SDKはSSO認証情報を使用して一時的な AWS 認証情報を取得し、有効期限が切れると自動的に更新されます。SSO 認証情報の有効期限が切れた場合は、 を使用して IAM Identity Center アカウントに再度ログインして、認証情報を明示的に更新する必要があります AWS CLI。

例えば、 プロファイルを作成し、 を使用してそのプロファイルをdev-profile認証および認可し AWS CLI、次に示すようにアプリケーションを設定できます。

  1. まず、 profileと を作成します。 sso-session

[profile dev-profile] sso_session = dev-session sso_account_id = 012345678901 sso_role_name = Developer region = us-east-1 [sso-session dev-session] sso_region = us-west-2 sso_start_url = https://company-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
  1. を使用してログイン AWS CLI し、SSOプロファイルを認証および認可します。

$ aws --profile dev-profile sso login Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: ABCD-EFGH Successully logged into Start URL: https://company-sso-portal.awsapps.com/start
  1. 次に、 SSOプロファイルを使用するようにアプリケーションを設定します。

import "github.com/aws/aws-sdk-go-v2/config" // ... cfg, err := config.LoadDefaultConfig( context.Background(), config.WithSharedConfigProfile("dev-profile"), ) if err != nil { return err }

を使用したSSOプロファイルの設定と認証の詳細については、 ユーザーガイドの「 を使用する AWS CLI ための の設定 AWS IAM Identity Center AWS CLI 」を参照してください。 AWS CLI SSO 認証情報プロバイダーをプログラムで構築する方法の詳細については、「ssocreds APIリファレンスドキュメント」を参照してください。

その他の認証情報プロバイダー

SDK には、認証情報モジュールで認証情報を取得するための他の方法が用意されています。例えば、 から一時的なセキュリティ認証情報を取得 AWS Security Token Service したり、暗号化されたストレージから認証情報を取得したりできます。

使用可能な認証情報プロバイダー

  • ec2rolecreds – Amazon 経由で Amazon EC2 インスタンスロールから認証情報を取得しますEC2IMDS。

  • endpointcreds — 任意のHTTPエンドポイントから認証情報を取得します。

  • processcreds – ホスト環境のシェルによって呼び出される外部プロセスから認証情報を取得します。

  • stscreds – から認証情報を取得する AWS STS

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.