AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに入り、2025 年 12 月 31 end-of-support
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
開発用の AWS 認証情報と AWS リージョン のセットアップ
AWS SDK for Java でサポートされている任意のサービスに接続するには、AWS の一時的な認証情報を指定する必要があります。AWS SDK と CLI では、プロバイダーチェーンを使用して、システムまたはユーザーの環境変数やローカルの AWS 設定ファイルなど、いくつかの場所にある AWS の一時的な認証情報が検索されます。
このトピックでは、AWS SDK for Java を使用して、ローカルアプリケーション開発用に AWS の一時的な認証情報をセットアップするための基本情報について説明します。EC2 インスタンス内で使用するための認証情報をセットアップする必要がある場合、または開発に Eclipse IDE を使用している場合は、代わりに以下のトピックを参照してください。
-
EC2 インスタンスを使用している場合は、Amazon EC2 での IAM ロールを使用した AWS リソースへの許可の付与での説明に従って、IAM ロールを作成し、そのロールへのアクセス権を EC2 インスタンスに付与します。
-
AWS Toolkit for Eclipse
を使用して Eclipse 内で AWS 認証情報を設定します。詳細については、「AWS Toolkit for Eclipse ユーザーガイド」の「Set up AWS Credentials」を参照してください。
一時的な認証情報の設定
AWS SDK for Java の一時的な認証情報の設定はさまざまな方法で行うことができますが、推奨される手法を次に示します。
-
次の場所にあるローカルシステム上の AWS の一時的な認証情報プロファイルファイルで認証情報を設定します。
-
~/.aws/credentials
Linux、macOS、Unix の場合は -
Windows の
C:\Users\USERNAME\.aws\credentials
一時的な認証情報を取得する方法については、本ガイドの「の一時的な認証情報を設定する SDK」を参照してください。
-
-
AWS_ACCESS_KEY_ID
、AWS_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 リージョン 名です。