- 서비스에서 AWS SQS에 메시지를 보내거나 하는 등 aws-sdk를 사용하기 위해 IAM User 인증이 필요한 경우
-
서비스에서 꼭 필요로 하는 권한만을 가진 IAM user를 만든다.
필요하다면 그룹도 함께 만들어준다.
생성된 유저의 액세스 키 ID와 시크릿 키를 잘 저장해둔다. -
쿠버네티스 대시보드(kubectl proxy)로 가서, 서비스가 위치한 네임스페이스를 선택하고,
좌측 메뉴 하단의 Secrets 메뉴로 가서 우상단의 +를 눌러 Secret을 추가한다.
아래와 같은 형식으로 추가하면 된다.
단 data에 들어가는 key들은 base64로 인코딩하여 넣어야 한다.
변환사이트 링크 : https://www.convertstring.com/ko/EncodeDecode/Base64Encode
apiVersion: v1
kind: Secret
metadata:
name: [시크릿의 이름]
type: Opaque
data:
aws-access-key-id: [base64로 인코딩한 문자열]
aws-secret-access-key: [base64로 인코딩한 문자열]
그후 deployment.yaml 파일의 container env 영역에 환경변수를 추가해준다.
spec:
containers:
- iamge: ...
env:
...
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: [시크릿의 이름]
key: aws-access-key-id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: [시크릿의 이름]
key: aws-secret-access-key
deployment.yaml의 환경변수로 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY가 등록되고, 환경변수의 값은 쿠버네티스의 시크릿에 등록된 [시크릿의 이름]의 key값으로 찾아오게 된다.
컨테이너 환경변수에 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY만 존재해도 알아서 sdk가 자격 증명을 사용하기 때문에 추가적인 액션은 필요없다. 추가적으로 명시하는 코드가 필요하지 않다는 의미다.
~끝~
'Web development > Infra' 카테고리의 다른 글
Azure Pipeline node.js 람다 배포 템플릿 만들기 (0) | 2020.09.11 |
---|---|
[Azure to AWS] Azure Pipeline으로 AWS Lambda 배포하기 (0) | 2020.06.19 |
[Azure to EKS] Azure App Service -> k8s 이전시 환경변수 변환 스크립트 (0) | 2020.06.19 |
[AWS] CodeStar로 브랜치별 production/staging 자동배포 환경 만들기 (0) | 2020.04.13 |
[AWS] SAM Local, CodeStar를 사용해 Lambda 로컬테스트 및 자동배포환경 만들기 (0) | 2020.04.09 |
댓글