ECS 태스크에 기밀 정보 환경 변수 설정
4873 단어 환경 변수SystemsManagerECSAWS
개요
Twelve-Factor App에서 언급했듯이 응용 프로그램 설정은 환경 변수로 설정하는 것이 다양하게 처리하기 쉽습니다.
문제는 비밀번호와 같은 민감한 정보를 관리하고 배포하는 방법에 있습니다.
AWS와 ECS에는 민감한 정보를 환경 변수로 관리하는 문제를 해결하는 서비스와 기능이 있습니다.
그 이용 방법을 설명합니다.
아키텍처
환경 변수를 AWS Systems Manager
에서 パラメータストア
로 관리합니다.
ECS 태스크 정의는 docker-compose
를 사용합니다.
ECS와 파라미터 스토어를 연동시켜 환경 변수를 포함합니다.
환경 변수 관리
환경 변수는 Github이나 Gitlab에서 설정할 수 있는 기능도 있지만, AWS를 사용하고 있다면 Systems Manager
パラメータストア
를 사용하는 것이 편리합니다.
이유는 다음과 같습니다.
환경 변수를
AWS Systems Manager
에서 パラメータストア
로 관리합니다.ECS 태스크 정의는
docker-compose
를 사용합니다.ECS와 파라미터 스토어를 연동시켜 환경 변수를 포함합니다.
환경 변수 관리
환경 변수는 Github이나 Gitlab에서 설정할 수 있는 기능도 있지만, AWS를 사용하고 있다면
Systems Manager
パラメータストア
를 사용하는 것이 편리합니다.이유는 다음과 같습니다.
기밀 정보 이외의 환경 변수 설정 방법
AWS Systems Manager > パラメータストア
화면을 열면 パラメータの作成
버튼이 있으므로 실행합니다.작성 화면이 열리므로 각 항목을 채웁니다.
품목
설명
이름
경로 형식으로 환경 변수 이름을 설정합니다. 경로의 시작이나 어딘가에 환경 이름 (dev/stg/prd 등)을 넣어 두는 것이 좋습니다.
설명
설명을 작성합니다. 입력 없이도 문제 없습니다.
이용 프레임
일반적으로
標準
문제가 없습니다. 자세한 내용을 사용하는 경우 잘 설명을 읽으십시오유형
일반 사용의 경우
文字列
를 선택합니다. 기밀 정보를 사용하려면 安全な文字列
를 선택합니다.데이터 유형
정상적인 사용의 경우
text
로 충분하다고 생각합니다. 자세한 내용은 AWS 설명서를 참조하십시오.값
환경 변수에 설정할 값을 입력합니다.
각 항목을 입력하고
パラメータを作成
를 실행하면 매개 변수가 만들어집니다.기밀 정보의 환경 변수
매개 변수 만들기 화면에서 항목
タイプ
에서 安全な文字列
를 지정합니다.품목
설명
KMS 키 소스
암호화 해독을 위한 KMS 키의 소스 지정
KMS 키 ID
사용할 KMS 키 ID 지정
일반적으로
現在のアカウント
의 기본 KMS 키 ID로 문제가 없다고 생각합니다.각 항목을 입력하고
パラメータを作成
를 실행하면 매개 변수가 만들어집니다.기밀 정보를 ECS 작업 정의로 설정
docker-compose 형식으로 작업을 정의하는 경우,
두 파일을 준비합니다.
docker-compose 형식을 사용한 태스크 정의 등에 대해서는 이전에 쓴 기사 등을 참조해 주세요.
docker-compose.yml은 기밀 정보의 환경 변수를 설정하지 않습니다.
기밀 정보의 환경 변수를
ecs_params.yml
로 설정합니다.docker-compose.yml
version: '3'
services:
app:
image: nginx
ports:
- "80:80"
:
#機密情報の環境変数は設定しない
ecs_params.yml
version: 1
task_definition:
services:
app:
:
# ここで機密情報の環境変数を設定
secrets:
# value_fromにパラメータストアで設定した環境変数名を設定
- value_from: /dev/DB_USER
# nameにアプリケーションで参照する環境変数名を設定
name: DB_USER
- value_from: /dev/DB_PASSWORD
name: DB_PASSWORD
:
secrets
에서 기밀 정보의 환경 변수를 설정합니다.value_from
에 매개 변수 저장소에서 설정한 환경 변수 이름을 설정합니다.name
에서 응용 프로그램에서 참조하는 환경 변수 이름을 설정합니다.요약
비밀번호와 같은 환경 변수로 포함하는 기밀 정보를 관리하는 것은 어려운 문제였지만 AWS를 사용하는 경우 쉽게 해결할 수 있습니다.
또, PEM 파일등의 인증키도 base64 encode 해 파라미터 스토어에 등록해 두는 것으로, 파일로서 서버나 컨테이너에 둘 필요가 없어집니다.
이 때 클라우드 서비스는 매우 편리하다고 느낍니다.
파라미터 스토어를 꼭 활용해 보세요.
Reference
이 문제에 관하여(ECS 태스크에 기밀 정보 환경 변수 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/edi_t/items/adb970f1c22ddbacc323
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ECS 태스크에 기밀 정보 환경 변수 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/edi_t/items/adb970f1c22ddbacc323텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)