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

Принимая на себя роль 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>

View from my external dependencies showing aws-java-sdk-sts libraries

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

1 Ответ

2 голосов
/ 09 марта 2019

с какой стати в интернет-звонке?

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...