Java: AWS S3 Bucket смените поставщика учетных данных на InstanceProfileCredentialsProvider, чтобы загрузить эти учетные данные - PullRequest
0 голосов
/ 04 августа 2020

Я хочу обновить код для одного из моих устаревших приложений. Приложение использует библиотеку AWS S3 в версии 1.11.119, которой несколько лет . Мне удалось войти в S3, используя предоставленные учетные данные, но теперь мне нужно избегать использования жестко закодированных учетных данных, и я должен использовать следующие учетные данные:

Учетные данные профиля экземпляра - Это используется на Amazon Инстансы EC2 и доставляются через службу метаданных Amazon EC2. AWS SDK для Java использует InstanceProfileCredentialsProvider для загрузки этих учетных данных.

Я хотел бы спросить, какие методы мне следует использовать с комбинацией старой AWS библиотеки для чтения учетных данных профиля из экземпляра EC2 вместо жестко запрограммированных ключей. Я нашел эту ссылку , но я не уверен, что это правильный подход.

Я применил обновленный метод, но я не знаю, что это правильно для автоматического получения учетных данных из экземпляра EC2:

@SuppressWarnings("deprecation")
public static AmazonS3 logInToAmazonS3() {
    
     Regions clientRegion = Regions.DEFAULT_REGION;
     String bucketName = "my-bucket-name";
    
    AmazonS3 awsS3 = AmazonS3ClientBuilder.standard().withCredentials(new ProfileCredentialsProvider())
            .withRegion(clientRegion)
            .build();
    return awsS3;
}

Старый код метода с использованием жестко заданных учетных данных.

    /**
     * Login to AWS S3.
     * Should be changed to Instance profile credentials
     * @return Logged Amazon S3 Client
     */
    @SuppressWarnings("deprecation")
    public static AmazonS3 logInToAmazonS3() {
        AWSCredentials awsCredentials = new BasicAWSCredentials(BCSConst.CREDENTIALS_ID, BCSConst.CREDENTIALS_KEY);
        AmazonS3 awsS3 = new AmazonS3Client(awsCredentials/*, clientConfig*/);
    
    }


<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.11.119</version>
    </dependency>

Спасибо за любой совет.

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