Принимая на себя роль IAM с использованием клиента STS в лямбда на основе Java, кто-нибудь сталкивался и разрешил эту ошибку -
Connect to sts.amazonaws.com:443 [sts.amazonaws.com/54.239.29.25] failed: connect timed out: com.amazonaws.SdkClientException
Интересно - Когда у меня есть зависимость aws-java-sdk-stsclient
в моем pom и, следовательно,в моей затененной банке, почему в интернет-звонке?Поскольку лямбда находится в VPC с настроенным SG, доступ в Интернет заблокирован.
Примечание. Мне нужно взять на себя роль, чтобы получить доступ к файлам на S3 из другой учетной записи AWS.Обновление политики доверия IAM, чтобы иметь доступ к списку, не является опцией.
Вот моя зависимость в моем pom -
<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sts -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sts</artifactId>
<version>1.11.163</version>
</dependency>
А вот мой класс java, где я принимаю на себя роль, используя клиент sts -
public class AWSTokenManager {
public void awsTokenManager() {
System.out.println("Inside awsTokenManager method");
STSAssumeRoleSessionCredentialsProvider stsAssumeRoleSessionCredentialsProvider = new STSAssumeRoleSessionCredentialsProvider.Builder("role-arn-here", "us-east-1b")
.withStsClient(AWSSecurityTokenServiceClientBuilder.standard().build())
.withRoleSessionDurationSeconds(900)
.build();
System.out.println("SessionCredentials awsaccesskeyid is - " + stsAssumeRoleSessionCredentialsProvider.getCredentials().getAWSAccessKeyId());
System.out.println("SessionCredentials awsaccesskeyid is - " + stsAssumeRoleSessionCredentialsProvider.getCredentials().getAWSSecretKey());
System.out.println("SessionCredentials awsaccesskeyid is - " + stsAssumeRoleSessionCredentialsProvider.getCredentials().getSessionToken());
}