説明
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 で承認済みの実在するユーザーを指定します。そのユーザーの認証方法と権限も管理する必要があります。