AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに移行し、2025 年 12 月 31 日にend-of-support
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
開発 AWS リージョン 用の AWS 一時的な認証情報と を設定する
でサポートされているサービスに接続するには AWS SDK for Java、 AWS 一時的な認証情報を指定する必要があります。 AWS SDKs と CLIs、プロバイダーチェーンを使用して、システム/ユーザー環境変数やローカル AWS 設定ファイルなど、さまざまな場所で AWS 一時的な認証情報を探します。
このトピックでは、 を使用したローカルアプリケーション開発用の AWS 一時的な認証情報の設定に関する基本情報を提供します AWS SDK for Java。EC2 インスタンス内で使用するための認証情報をセットアップする必要がある場合、または開発に Eclipse IDE を使用している場合は、代わりに以下のトピックを参照してください。
-
EC2 インスタンスを使用する場合は、「IAM ロールを使用して リソースへのアクセスを許可する」に示すように、IAM ロールを作成し、EC2 インスタンスにそのロールへのアクセス権を付与します。 AWSAmazon EC2
-
を使用して Eclipse 内で AWS 認証情報を設定しますAWS Toolkit for Eclipse
。詳細については、「 ユーザーガイド」の AWS 「認証情報の設定」を参照してください。 AWS Toolkit for Eclipse
一時的な認証情報の設定
の一時的な認証情報はさまざまな 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 ロール 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 サービスにアクセスする AWS リージョン ために使用されるデフォルトを設定する必要があります AWS SDK for Java。最適なパフォーマンスを得るために、地理的に近いリージョンを選択します。各サービスのリージョンのリストについては、 Amazon Web Services 全般のリファレンスの「リージョンとエンドポイント」を参照してください。
注記
リージョンを選択しないと、デフォルトで us-east-1 が使用されます。
同様の手法を使用して認証情報を設定し、デフォルトの AWS リージョンを設定できます。
-
ローカルシステムの AWS リージョン AWS 設定ファイルで を設定します。場所は次のとおりです。
-
Linux、macOS、または Unix の ~/.aws/config
-
Windows の C:\Users\USERNAME\.aws\config
このファイルには以下の形式の行が含まれている必要があります。
+
[default] region = your_aws_region
+
目的 AWS リージョン (「us-east-1」など) を your_aws_region に置き換えます。
-
-
AWS_REGION
環境変数を設定します。Linux、macOS、または Unix では、
を使用してください:
export AWS_REGION=your_aws_region
Windows では、
を使用します。
set AWS_REGION=your_aws_region
ここで、your_aws_region は目的 AWS リージョン の名前です。