legacy/Spring
[Spring] AWS 자격증명 정보를 사용하는 2가지 방법
heemang_e
2024. 4. 19. 16:19
EC2 IAM에 등록된 자격 증명 사용하기
패키지 정보 확인하기
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.presigner.S3Presigner;
@Configuration
public class AmazonS3Config {
@Value("${aws.region}")
private String region;
@Value("${aws.access-key}")
private String accessKey;
@Value("${aws.secret-key}")
private String secretKey;
@Bean
public S3Client s3Client() {
return S3Client.builder()
.credentialsProvider(InstanceProfileCredentialsProvider.create())
.region(Region.of(region))
.build();
}
@Bean
public S3Presigner presigner() {
return S3Presigner.builder()
.credentialsProvider(InstanceProfileCredentialsProvider.create())
.region(Region.of(region))
.build();
}
@Bean
public AmazonSimpleEmailService amazonSimpleEmailService() {
return AmazonSimpleEmailServiceClientBuilder.standard()
.withCredentials(com.amazonaws.auth.InstanceProfileCredentialsProvider.getInstance())
.withRegion(region)
.build();
}
}
자격 증명 직접 사용하기
패키지 정보 확인하기
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.presigner.S3Presigner;
@Configuration
public class AmazonS3Config {
@Value("${aws.region}")
private String region;
@Value("${aws.access-key}")
private String accessKey;
@Value("${aws.secret-key}")
private String secretKey;
@Bean
public S3Client s3Client() {
return S3Client.builder()
.credentialsProvider(InstanceProfileCredentialsProvider.create())
.region(Region.of(region))
.build();
}
@Bean
public S3Presigner presigner() {
return S3Presigner.builder()
.credentialsProvider(InstanceProfileCredentialsProvider.create())
.region(Region.of(region))
.build();
}
@Bean
public AmazonSimpleEmailService amazonSimpleEmailService() {
return AmazonSimpleEmailServiceClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey)))
.withRegion(region)
.build();
}
}
전체 코드 : 깃허브