AWS 서비스로 Ansible 플레이북 비밀 관리
5264 단어 ansibledevopsawsbestpractice
Ansible용 조회 플러그인을 사용하면 많은 멋진 작업을 수행할 수 있습니다. 그 중 하나는 중요한 정보를 플레이북에 안전하게 전달하는 것입니다. Ansible을 사용하여 AWS에서 일부 앱을 관리하는 경우 Parameter Store 또는 Secrets Manager를 함께 사용하면 보안이 크게 향상될 수 있습니다.
SSM Parameter Store가 포함된 변수
역할의 'defaults/main.yaml' 파일 또는 group_vars.yaml 파일에 일부 변수가 정의되어 있다고 가정해 보겠습니다.
---
# content of dev.vars.yaml to be included in your play or role
use_tls: true
application_port: 3000
app_env: development
stripe_api_key: 1HGASU2eZvKYlo2CT5MEcnC39HqLyjWD
이러한 항목을 Ansible 제어 노드에 로컬로 저장하는 경우 ansible-vault으로 암호화할 수 있습니다.
SSM Parameter Store는 매개변수와 암호의 중앙 집중식 스토리지 및 관리를 통해 더 많은 유연성과 보안을 제공하므로 Ansible과 함께 사용하십시오.
---
# content of dev.vars.yaml to be included in your play or role
use_tls: "{{lookup('aws_ssm', '/dev/webserver/use_tls')}}"
application_port: "{{lookup('aws_ssm', '/dev/webserver/application_port')}}"
app_env: "{{lookup('aws_ssm', '/dev/webserver/app_env')}}"
stripe_api_key: "{{lookup('aws_ssm', '/dev/webserver/stripe_api_key')}}"
구문은 매우 간단합니다.
aws_ssm
인수 –는 플러그인의 이름입니다./dev/webserver/use_tls
인수 –는 매개변수 저장소의 키에 대한 경로입니다.확실히 다음과 같이 그룹 변수가 있는 서버 그룹에 대해 동일한 작업을 수행할 수 있습니다.
플레이, 변수 파일 또는 Jinja2 템플릿 등 템플릿을 사용할 수 있는 모든 곳에서 사용할 수 있습니다.
Secret Manager가 있는 변수
또 다른 멋진 조회 플러그인은 Secrets Manager입니다. 간단히 말해서 동일한 종류의 기능을 가지고 있지만 잘못하여 JSON 형식을 사용합니다.
다음은 플레이북의 기능에 대한 간단한 예입니다.
--------
- name: Extract something secrets from Secret Manager
debug:
msg: "{{ lookup('aws_secret', 'dev/some-secrets')}}"
위 작업은 다음 출력을 생성합니다.
TASK [Extract something secrets from Secret Manager]
ok: [some_server] => {
"msg": {
"dbname": "database",
"engine": "mysql",
"host": "127.0.0.1",
"password": "password",
"port": "3306",
"username": "db_user"
}
}
JSON을 있는 그대로 삽입하려는 경우에는 좋지만 일부 JSON 요소만 가져오려는 경우 추가 구문 분석이 필요합니다.
결론
CI/CD에서 Ansible을 사용하는 경우 IAM 역할이 있는 EC2 인스턴스에 Ansible을 사용하면 해당 인스턴스에 대한 비밀을 유지하지 않아도 됩니다.
IAM 역할은 적어도 SSM Parameter Store에 대한 읽기 액세스 권한(+ 키를 해독할 수 있는 KMS 읽기 액세스 권한) 또는 Secrets Manager에 대한 읽기 액세스 권한을 허용해야 합니다.
설명된 플러그인에 대한 문서는 여기aws_ssm 및 여기aws_secret에서 찾을 수 있습니다.
조회 플러그인에 대한 추가 정보here .
기사가 마음에 든다면 AWS, Terraform, Ansible 및 기타 DevOps 관련 항목에 대한 조사 결과를 가끔 게시하는 곳에서 저를 팔로우할 수도 있습니다.
Reference
이 문제에 관하여(AWS 서비스로 Ansible 플레이북 비밀 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/svasylenko/managing-ansible-playbook-secrets-with-aws-services-3j82텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)