본문으로 바로가기

JAVA Aws Credential만들기

category 개발/AWS 2018.04.26 15:15


JAVA Aws Credential만들기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.services.redshift.AmazonRedshiftClient;
 
public class Hello {
    public static void main(String[] args){
 
        AWSCredentialsProvider acprovider =  DefaultAWSCredentialsProviderChain.getInstance();
        AWSCredentials credentials = acprovider.getCredentials();
        System.out.println(credentials);
 
        AmazonRedshiftClient client = new AmazonRedshiftClient(credentials);
 
        System.out.println(client);
    }
}
cs

일단 소스코드는 위와 같다.


사용방법

위 소스코드를 실행 하면 된다.

실행하기 전에 .aws/credentials에 key와 secret을 넣으면 된다.


결과

com.amazonaws.auth.BasicAWSCredentials@37bba400

com.amazonaws.services.redshift.AmazonRedshiftClient@815b41f 

클라이언트는 AWS 레드시프트라는 DB 서비스의 클라이언트로 해놓았는데 다른 Aws에 있는 서비스들의 클라이언트를 써도 된다.

9~11번이 주된 내용이다.


aws 예제 같은걸 보다보면 죄다 Credential이 필요하다. 왜냐하면 내 서버에 뭔가 띄워놨는데 그게 트래픽, io등 내가 아니라도 누가 쓰면 돈이 나가기 때문이다.

그래서 access_key, secret_access_key 이런걸 먼저 세팅 해야 된다는 내용이 나온다.


위 짤은 맥인데 .aws/credentials에 aws접속 할 수 있는 key, secret등을 넣어 주면 java가 실행 될때 이걸 읽어와서 aws관련 클래스에 자동으로 넣어주는 방식이다.


DefaultAWSCredentialsProviderChain이라는 클래스가 있는데 이걸 쓰면 로컬에 위 경로에 있는 credentials안에 [default] [loceal] [dev]등의 블럭에 들어 있는 key, secret중에서 [default]에 있는걸 불러와서 CredentialProvider를 만든다.


end.





댓글을 달아 주세요