상세 컨텐츠

본문 제목

[AWS] AWS Credential Profile설정으로 여러개 사용하기

프로그래밍/Server

by 웰치스짱 2023. 3. 27. 11:49

본문

반응형

여러가지 서비스를 동시에 사용하다보면 AWS권한 관리도 여러가지로 구분되어 사용이 됩니다. 이럴때 Docker Container까지 사용되다 보면 여러가지 문제가 생기는데 이를 해결한 케이스를 살펴보겠습니다.

 

먼저 Docker Container는 빌드 과정에서 AWS credential정보를 포함하고 있지 않기 때문에 docker run 과정에서 변수로 전달을 해줘야 합니다.

 

docker run -d -p 4000:4000 -e AWS_ACCESS_KEY_ID=xxxx -e AWS_SECRET_ACCESS_KEY=xxxx -e SPRING_PROFILES_ACTIVE=development --restart="unless-stopped" --name apiserver

 

요런식으로 말이죠. 이럴때 저 ID와 key값을 static하게 저장이 되면 보안에 좋지 않습니다. 그래서 구동하는 서버에 저장된 정보를 가져오는방법으로 변경해보겠습니다.

 

export AWS_ACCESS_KEY_ID=`aws configure get aws_access_key_id`
export AWS_SECRET_ACCESS_KEY=`aws configure get aws_secret_access_key`

sudo docker run -d -p 4000:4000 -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
반응형

 

이렇게 맞췄더니 좀더 나아진것 같습니다. 근데 저 id와 key값을 여러개 사용하는 서버라면 어떻게 할까요??

먼저 aws credential을 프로파일별로 구분하려면 아래와 같이 credential을 생성하여야 합니다.

 

aws configure --profile b_profile

그리고 물어보는 것에 맞춰 입력하여 프로파일을 저장하고 다시 docker run 부분을 아래와 같이 수정합니다.

 

export AWS_ACCESS_KEY_ID=`aws configure get aws_access_key_id --profile b_profile`
export AWS_SECRET_ACCESS_KEY=`aws configure get aws_secret_access_key --profile b_profile`

 

이렇게 변경하면 AWS_ACCESS_KEY_ID에는 해당 프로파일로 저장된 값이 들어가게 됩니다.

그러면 그 값을 docker run에 사용하면 잘 실행이 됩니다.

반응형

관련글 더보기

댓글 영역