開発用の AWS 認証情報と AWS リージョン のセットアップ - AWS SDK for Java 1.x

AWS SDK for Java (v1) の近日発表 end-of-support しました。AWS SDK for Java v2 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

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

開発用の AWS 認証情報と AWS リージョン のセットアップ

AWS SDK for Java でサポートされている任意のサービスに接続するには、AWS の一時的な認証情報を指定する必要があります。AWS SDK と CLI では、プロバイダーチェーンを使用して、システムまたはユーザーの環境変数やローカルの AWS 設定ファイルなど、いくつかの場所にある AWS の一時的な認証情報が検索されます。

このトピックでは、AWS SDK for Java を使用して、ローカルアプリケーション開発用に AWS の一時的な認証情報をセットアップするための基本情報について説明します。EC2 インスタンス内で使用するための認証情報をセットアップする必要がある場合、または開発に Eclipse IDE を使用している場合は、代わりに以下のトピックを参照してください。

一時的な認証情報の設定

AWS SDK for Java の一時的な認証情報の設定はさまざまな方法で行うことができますが、推奨される手法を次に示します。

  • 次の場所にあるローカルシステム上の AWS の一時的な認証情報プロファイルファイルで認証情報を設定します。

    • ~/.aws/credentialsLinux、macOS、Unix の場合は

    • Windows の C:\Users\USERNAME\.aws\credentials

    一時的な認証情報を取得する方法については、本ガイドの「SDK の一時的な認証情報を設定します。」を参照してください。

  • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、および AWS_SESSION_TOKEN 環境変数を設定します。

    これらの変数を Linux、macOS、または Unix で設定するには、 を使用します。

    export AWS_ACCESS_KEY_ID=your_access_key_id export AWS_SECRET_ACCESS_KEY=your_secret_access_key export AWS_SESSION_TOKEN=your_session_token

    Windows でこれらの変数を設定するには、 を使用します。

    set AWS_ACCESS_KEY_ID=your_access_key_id set AWS_SECRET_ACCESS_KEY=your_secret_access_key set AWS_SESSION_TOKEN=your_session_token
  • EC2 インスタンスの場合、IAM ロールを指定し、そのロールへのアクセスを EC2 インスタンスに提供します。これがどのように機能するかについての詳細な説明については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「IAM Roles for Amazon EC2」を参照してください。

これらの方法のいずれかを使用して AWS の一時的な認証情報を設定すると、デフォルトの認証情報プロバイダチェーンを使用して AWS SDK for Java によって自動的にロードされます。Java アプリケーションでの AWS 認証情報の使用の詳細については、AWS 認証情報の使用を参照してください。

IMDS 認証情報の更新

AWS SDK for Java は、認証情報の有効期限に関係なく、バックグラウンドで 1 分ごとに IMDS 認証情報を更新するオプトインをサポートしています。これにより、認証情報をより頻繁に更新できるようになり、IMDS に到達できないことで認識される AWS の可用性に影響が出る可能性が低くなります。

1. // Refresh credentials using a background thread, automatically every minute. This will log an error if IMDS is down during 2. // a refresh, but your service calls will continue using the cached credentials until the credentials are refreshed 3. // again one minute later. 4. 5. InstanceProfileCredentialsProvider credentials = 6. InstanceProfileCredentialsProvider.createAsyncRefreshingProvider(true); 7. 8. AmazonS3Client.builder() 9. .withCredentials(credentials) 10. .build(); 11. 12. // This is new: When you are done with the credentials provider, you must close it to release the background thread. 13. credentials.close();

AWS リージョン の設定

AWS SDK for Java で AWS のサービスにアクセスするために使用するデフォルトの AWS リージョン を設定する必要があります。最適なパフォーマンスを得るために、地理的に近いリージョンを選択します。各サービスのリージョンのリストについては、Amazon Web Services の全般のリファレンスのリージョンとエンドポイントを参照してください。

注記

リージョンを選択しないと、デフォルトで us-east-1 が使用されます。

認証情報の設定と同様の方法でデフォルトの AWS リージョンを設定できます。

  • ローカルシステムの次の場所にある AWS Config ファイルで AWS リージョン を設定します。

    • Linux、macOS、または Unix の ~/.aws/config

    • Windows の C:\Users\USERNAME\.aws\config

    このファイルには以下の形式の行が含まれている必要があります。

    +

    [default] region = your_aws_region

    +

    your_aws_region を目的の AWS リージョン (「us-west-1」など) に置き換えます。

  • AWS_REGION 環境変数を設定します。

    Linux、macOS、または Unix では、 を使用してください:

    export AWS_REGION=your_aws_region

    Windows では、 を使用します。

    set AWS_REGION=your_aws_region

    your_aws_region は目的の AWS リージョン 名です。