설명
azure.azcollection.azure_rm_adserviceprincipal의 ad_user는 Ansible이 Azure에 인증할 때 사용하는 사용자 이름입니다. 이 필드는 Azure SQL 관리자 계정이나 생성할 서비스 주체의 이름을 설정하지 않습니다.
사용자 이름은 비밀정보가 아닙니다. 흔하거나 추측하기 어려운 이름만으로 인증의 안전성을 판단하지 말고, 실제 인증 주체와 자격 증명, 부여된 권한을 확인하세요.
잠재적 영향
- 의도하지 않은 사용자로 자동화를 실행하면 작업이 실패하거나 불필요하게 넓은 권한을 사용할 수 있습니다.
- 사용자 이름을 숨기는 데 의존하면 자격 증명 유출과 과도한 권한 문제를 놓칠 수 있습니다.
해결 방법
- 사용자 인증을 사용하는 경우
ad_user에 승인된 실제 사용자를 지정하고 필요한 자격 증명을 안전하게 제공하세요. - 자동화 환경에 맞는 지원 인증 방식을 사용하고 필요한 Azure 권한만 부여하세요.
- Azure SQL 관리자 설정은 해당 서버의 관리자 구성에서 별도로 확인하세요.
예시
기존 애플리케이션의 app_id, 테넌트와 지원되는 인증 설정이 필요한 부분 예시입니다. 사용자 이름을 임의로 바꾸는 것만으로 계정이 생성되거나 권한이 줄어들지는 않습니다.
변경 전
yaml
- name: AD 서비스 주체 생성
azure.azcollection.azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
state: present
tenant: "{{ tenant_id }}"
ad_user: admin
admin이 실제로 어떤 인증 사용자를 가리키는지 확인해야 합니다. 이 값으로 SQL 관리자 계정을 설정하는 것은 아닙니다.
변경 후
yaml
- name: AD 서비스 주체 생성
azure.azcollection.azure_rm_adserviceprincipal:
app_id: "{{ app_id }}"
state: present
tenant: "{{ tenant_id }}"
ad_user: "{{ azure_auth_username }}"
azure_auth_username으로 승인된 실제 사용자를 지정합니다. 해당 사용자의 인증 수단과 권한도 함께 관리해야 합니다.