前提条件として、このページを参照してください。
そのため、提供されるコードを文字通りコピーして貼り付けるだけの小さなアプリを作成できます。特定のユーザーに対して実行されます。グローバル変数を適切な値に変更しました。AWS CLI を介して必要な STS ロールを引き受けることができます。ただし、このコードはまだ適切な役割を引き受けません。
コードを実行可能な jar としてエクスポートし、EC2 インスタンス (基本的な AWS Linux インスタンス) に配置して実行します。適切で正しい STS Credentials からキーを出力しますが、S3 クライアントに到達するとすぐにアクセスが拒否されます (403)。
私の役割は次のとおりです。
- EC2 には役割がありませんが、資格情報ファイルにはユーザー アクセス情報があります (彼を MyUser と呼びましょう)。
- MyUser には、STS ロールと IAM 機能を引き受ける機能があります (IAM 機能は必要ありません。テスト目的のためだけです)。
- STS ロールは MyUser のみが引き受けることができ、アカウント内の S3 へのフル アクセスを許可します。
AWS のドキュメントはときどき当たり外れがありますが、このコードで問題を経験している人を他に見つけることができません。前述したように、CLI を介して STS の役割を引き受ける同じプロセスを実行すると、それを行うことができ、適切に機能するため、これはさらに混乱を招きます。
助けていただける方、よろしくお願いします!