Почему эта ошибка? Подключиться к sts.amazonaws.com:443 [sts.amazonaws.com/54.239.29.25] не удалось: время ожидания подключения истекло: com.amazonaws.SdkClientException

Принимая на себя роль 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 для доступа к списку невозможно.

Вот зависимость, которая у меня есть в моем помпе —

<!-- 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>

Просмотр из моих внешних зависимостей, показывающий библиотеки aws-java-sdk-sts

И вот мой класс 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());
            }

См. также:  API для открытия файла из папки расширений
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. inCode

    Зачем нужен интернет-звонок?

    Почему бы этого не быть? Вы получаете доступ к службе STS с помощью клиента STS.

    Если вы не создали и не настроили конечную точку VPC для STS (которая вы не упомянули), конечная точка STS должна быть доступна через Интернет, чтобы отправить запрос на вызов AssumeRole.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: