AWS 서비스로 Ansible 플레이북 비밀 관리


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 관련 항목에 대한 조사 결과를 가끔 게시하는 곳에서 저를 팔로우할 수도 있습니다.

좋은 웹페이지 즐겨찾기