Я столкнулся с проблемой, когда мне нужно взять на себя роль для подключения к SQS. Читая документы, это кажется прямым. Учитывая настройки среды, я должен использовать указанный c профиль в .aws / config
. Я пытаюсь использовать ProfileCredentialsProvider, но я не уверен, что он будет работать, глядя на его код. Есть ли какая-либо другая опция с учетом моих настроек?
Когда я запускаю приведенный ниже код, я получаю сообщение об ошибке: Невозможно загрузить исходный профиль [профиль msi-stg]: Исходный профиль не найден [основной]
Если я перемещаю определения профиля в файл учетных данных, я получаю ошибку: Невозможно загрузить учетные данные в профиль [профиль msi]: AWS Идентификатор ключа доступа не указан
Я использую aws - java -sdk v1.11.742 вместе с Spring Cloud.
Я очень ценю любые ваши предложения. Спасибо !!
Вот моя попытка:
AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard()
.withCredentials(new ProfileCredentialsProvider("/Users/home/.aws/config","profile msi-stg"))
.withRegion(Regions.EU_WEST_1).build();
AssumeRoleRequest roleRequest = new AssumeRoleRequest().withRoleArn("arn:aws:iam::5623221063223:role/msi-data-stg").withRoleSessionName("AssumedRoleSession");
AssumeRoleResult roleResponse = stsClient.assumeRole(roleRequest);
Credentials sessionCredentials = roleResponse.getCredentials();
BasicSessionCredentials awsCredentials = new BasicSessionCredentials(sessionCredentials.getAccessKeyId(),
sessionCredentials.getSecretAccessKey(), sessionCredentials.getSessionToken());
AmazonSQSAsync sqsClient = AmazonSQSAsyncClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).withRegion(Regions.EU_WEST_1).build();
ReceiveMessageResult result = sqsClient.receiveMessage("queue-url");
Файл учетных данных
[main]
aws_access_key_id=xxxxxx
aws_secret_access_key=xxxxx
Файл конфигурации
[profile msi]
role_arn = arn:aws:iam::5623221063223:role/dev
source_profile = main
region = eu-west-1
[profile msi-stg]
role_arn = arn:aws:iam::5623221063223:role/msi-data-stg
source_profile = profile msi
region = eu-west-1