私はアプリケーションにspring-cloud-stream APIとkinesis-binderを使用しています。 〜/ .aws/credentialsファイルの資格情報として役割を引き受けなければなりません。私は接続しようとしているキネシスストリームへの接続にアクセスできません。更新されたAWSクレデンシャルとのSpring統合バインディング
私は〜/ .aws/credentialsファイルから資格を取得でき、STSを呼び出して役割を引き継ぎ、より新しいaccess-key-id、access-secret-keyおよびトークンを使用するように環境変数を設定しました。しかし、キネシスバインダーは、元の役割でキネシスストリームにすでに接続しています。 Kinesisストリームに公開する場合、想定された役割のストリームに接続するのではなく、新しいものが作成されます(元の役割の一部ではありません)。私は資格情報は、環境変数に設定されるまで、春の統合入力/出力チャンネルの結合を遅らせるたい
AWSSecurityTokenServiceClient stsClient = new AWSSecurityTokenServiceClient(
awsCredentialsProviderChain.getCredentials());
AssumeRoleRequest assumeRequest = new AssumeRoleRequest().withRoleArn(ROLE_ARN).withDurationSeconds(3600)
.withRoleSessionName("demo");
AssumeRoleResult assumeResult = stsClient.assumeRole(assumeRequest);
String accessKeyId = assumeResult.getCredentials().getAccessKeyId();
String secretAccessKey = assumeResult.getCredentials().getSecretAccessKey();
String securityToken = assumeResult.getCredentials().getSessionToken();
System.setProperty(SDKGlobalConfiguration.ACCESS_KEY_ENV_VAR, accessKeyId);
System.setProperty(SDKGlobalConfiguration.SECRET_KEY_ENV_VAR, secretAccessKey);
System.setProperty(SDKGlobalConfiguration.AWS_SESSION_TOKEN_ENV_VAR, securityToken);
:
以下は、私が役割を引き受けるために使用しているコードスニペットです。