バケット操作を実行するためのs3Clientオブジェクトを作成するJavaコードがあります。私は、/root/.aws/
フォルダの下に、以下のデータを持つcredentials
ファイルを持っているJavaのaws設定ファイルで定義されているrole_arnを使用
[default]
aws_access_key_id = <the key>
aws_secret_access_key = <the key>
は最近、バケットポリシーが更新されてしまったと、次の詳細は、同じディレクトリの下config
ファイルに追加された
[default]
role_arn = arn:aws:iam::<id>:role/<role_name>
source_profile = default
output = text
region = region-name
私のアプリケーションは、configファイルからrole_arn
を消費することができず、バケット操作を行うことができません。
AWSは設定ファイルを直接読み込むためのクラスを提供していますが、コード内にとregion
の値をハードコードしたくありません。
私は資格情報がファイル内に存在しませんが、config
ファイルの内容については何も何読み取るためProfilesConfigFile
を参照してください。
アプリケーションにs3Clientを初期化する方法を貼り付けることはできますか? 'InstanceProfileCredentialsProvider'インスタンスをs3Clientコンストラクタに渡すと、s3バケットにアクセスするためにIAMロールが使用され、ロールにはs3に必要な権限が与えられます – Ravi
' s3Client = AmazonS3ClientBuilder.defaultClient(); 'を使って試しましたが、設定ファイルではなく、設定ファイルから 'role_arn'を選ぶことができません。 – AnkitG