|at|에서는 작업 템플릿에 0개 이상의 인증 정보를 할당할 수 있도록 지원합니다.
automation controller 3.3 이전에는 작업 템플릿에 인증 정보와 관련된 일련의 특정 요구 사항이 있었습니다.
모든 작업 템플릿(및 작업)에 정확히 *1개*의 머신/SSH 또는 자격 증명 모음 인증 정보(또는 둘 중 하나)가 있어야 했습니다.
모든 작업 템플릿(및 작업)에 0개 이상의 “추가” 인증 정보가 포함될 수 있었습니다.
추가 인증 정보는 환경 변수(예: AWS_ACCESS_KEY_ID
)를 통해 외부 서비스에 인증을 제공하는 데 사용할 수 있는 “Cloud” 및 “Network” 인증 정보를 나타냈습니다.
이 모델에는 작업 템플릿에 인증 정보를 지정하기 위한 분리된 다양한 인터페이스가 필요했으며, 여러 자격 증명 모음 인증 정보를 플레이북 실행에 연결하는 기능(Ansible 2.4 이후 Ansible 코어에서 지원하는 사용 사례)이 없었습니다.
또한 이 모델은 단순히 요구 사항을 충족하기 위해 “더미” 머신/SSH 인증 정보를 작업 템플릿에 연결해야 하는 것과 같은 장애물을 특정 플레이북 실행 워크플로에 제기합니다.
이제 작업 템플릿에 인증 정보 할당을 위한 단일 인터페이스가 있습니다. API 끝점에서 다음을 수행합니다.
GET /api/v2/job_templates/N/credentials/
더 이상 사용되지 않는 extra_credentials
끝점에서의 동작과 유사하게 POST
요청을 사용하여 인증 정보를 연결 및 연결 해제할 수 있습니다.
POST /api/v2/job_templates/N/credentials/ {'associate': true, 'id': 'X'}
POST /api/v2/job_templates/N/credentials/ {'disassociate': true, 'id': 'Y'}
이 모델에서는 할당된 인증 정보가 없는 경우에도 작업 템플릿이 유효한 것으로 간주됩니다. 또한 이 모델에서는 사용자가 작업 템플릿에 여러 자격 증명 모음 인증 정보를 할당할 수 있습니다.
automation controller 3.3 이전에는 작업 템플릿에 구성 가능한 ask_credential_on_launch
속성이 있었습니다. 이 값은 시작 시 필요한, 누락된 인증 정보 값을 확인하는 데 사용되었으며, 주로 최소 인증 정보 요구 사항을 충족하기 위해 머신/SSH 인증 정보를 지정하는 방법 중 하나로 사용되었습니다.
새로운 통합 인증 정보 목록 모델에서도 이 속성은 여전히 존재하지만 더 이상 인증 정보를 “요청”하지 않습니다. 이제 ``ask_credential_on_launch``가 ``True``이면, 필요한 경우 작업 템플릿에 정의된 인증 정보를 덮어쓸 인증 정보 목록을 시작 시 지정할 수 있음을 나타냅니다. 예:
POST /api/v2/job_templates/N/launch/ {'credentials': [A, B, C]}`
``ask_credential_on_launch``가 ``False``이면, ``POST /api/v2/job_templates/N/launch/``에 제공된 사용자 지정 인증 정보가 무시됨을 나타냅니다.
이 모델에서 ``ask_credential_on_launch``는 시작 시 사용자에게 변경 사항(선택 사항)을 확인하도록 API 클라이언트에 알리는 용도로만 사용됩니다.
작업에 여러 인증 정보를 할당할 수 있으므로 작업 템플릿이 실행될 때 암호를 해독하기 위해 여러 자격 증명 모음 인증 정보를 지정할 수 있습니다. 이 기능은 Ansible 2.4 이상의 multiple vault passwords for a playbook run 지원을 미러링합니다.
이제 자격 증명 모음 인증 정보에 ansible-playbook``에 대한 ``--vault-id
인수와 유사한, 선택적 vault_id
필드가 있습니다. 여러 자격 증명 모음 암호를 사용하는 플레이북을 실행하려면 다음을 수행합니다.
컨트롤러에서 각 자격 증명 모음 암호에 대한 자격 증명 모음 인증 정보를 생성합니다. 자격 증명 모음 ID를 인증 정보의 필드로 지정하고 암호를 입력합니다(암호화되어 저장됨).
새 인증 정보 끝점을 통해 작업 템플릿에 여러 자격 증명 모음 인증 정보를 할당합니다.
POST /api/v2/job_templates/N/credentials/
{
'associate': true,
'id': X
}
또는 컨트롤러 사용자 인터페이스의 인증 정보 생성 페이지에서 동일한 할당을 수행할 수 있습니다.
위의 예제에서 생성된 인증 정보는 사용할 시크릿을 해당 자격 증명 모음 식별자(“first”)와 암호 쌍으로 지정합니다. 이 인증 정보가 작업 템플릿에서 사용되는 경우, 아래 예제에서와 같이 “first” 자격 증명 모음 ID와 연결된 시크릿의 암호만 해독합니다.
하나의 큰 파일에 모든 시크릿을 구분 없이 포함하는 기존 방식으로 설정된 플레이북이 있는 경우, 자격 증명 모음 인증 정보를 설정할 때 자격 증명 모음 식별자 필드를 비워 둡니다.
“시작 시 프롬프트”로 표시된 자격 증명 모음 인증 정보의 암호를 위해 관련 작업 템플릿의 시작 끝점은 passwords_needed_to_start
키를 통해 필요한 자격 증명 모음 암호를 전달합니다.
GET /api/v2/job_templates/N/launch/
{
'passwords_needed_to_start': [
'vault_password.X',
'vault_password.Y',
]
}
위 예제의 ``X``와 ``Y``는 관련 자격 증명 모음 인증 정보의 기본 키입니다.
POST /api/v2/job_templates/N/launch/
{
'credential_passwords': {
'vault_password.X': 'first-vault-password'
'vault_password.Y': 'second-vault-password'
}
}
중요한 인증 정보를 컨트롤러에 업로드하는 대신, 인증 정보 필드를 외부 시스템에 연결하고 외부 시스템을 사용하여 플레이북을 실행할 수 있습니다. |atu|의 Secret Management System 섹션을 참조하십시오.