사전 요구사항
- Owner 또는 User Access Administrator 권한이 있는 Azure 구독.
- Microsoft Entra ID에서 앱 등록을 생성할 수 있는 권한.
- 계정에 등록된 다단계 인증. 보안 기본값은 다단계 인증 없이 앱 등록을 차단합니다.
Reader와 Cost Management Reader만으로 모든 읽기 전용 에이전트가 동작합니다. 에이전트가 Azure 리소스를 변경해야 할 때만 쓰기 역할을 추가하세요.
설정
- Azure CLI
- Azure 포털
1
구독 선택
2
서비스 주체 생성
password는 한 번만 표시됩니다.3
비용 접근 권한 추가
4
CloudThinker에서 연결 추가
Connections → Azure로 이동하여
appId를 APP_ID에, password를 CLIENT_SECRET에, tenant를 TENANT_ID에 입력하세요. AZURE_DEFAULT_REGION을 선택한 뒤 Connect를 클릭하세요.성공 상태: 연결이 Connected 상태로 표시됩니다.Microsoft Customer Agreement 청구
온라인으로 구매한 종량제 구독은 Microsoft Customer Agreement (MCA)를 사용합니다. Cost Management는 MCA 구독에Given subscription doesn't have valid WebDirect/AIRS offer type으로 응답하므로, Optimize는 청구 프로필 범위에서 비용을 읽습니다.
서비스 주체에 해당 범위 접근 권한을 부여하세요. Cost Management + Billing → 청구 계정 → Billing profiles → 대상 프로필 → Access control (IAM) → Add로 이동하여 앱 등록에 Billing profile reader를 할당하세요. 구독 역할 할당은 청구 범위를 포함하지 않습니다.
연결 세부 정보
구독은 연결 필드가 아닙니다. CloudThinker는 서비스 주체가 읽을 수 있는 모든 구독을 자동으로 검색합니다.
필요한 권한
Reader만으로는 비용 데이터를 가져올 수 없습니다. Reader는
*/read를 부여하지만, Cost Management 쿼리는 */read와 일치하지 않는 POST 작업입니다.
에이전트 기능
연결되면 에이전트가 Azure 리소스를 분석하고 최적화할 수 있습니다.연결 검증
예시 프롬프트
문제 해결
보안 기본값으로 인한 로그인 차단
보안 기본값으로 인한 로그인 차단
az login 또는 포털이 AADSTS530035: Access has been blocked by security defaults를 반환합니다. 보안 기본값은 앱을 등록하기 전에 다단계 인증을 요구합니다. aka.ms/mfasetup에서 인증 방법을 등록한 뒤 다시 로그인하세요. --use-device-code와 --allow-no-subscriptions 플래그로는 우회할 수 없습니다.인증 실패
인증 실패
APP_ID, CLIENT_SECRET, TENANT_ID를 확인하세요. 시크릿이 만료되지 않았는지, 앱 등록이 입력한 테넌트에 있는지 확인하세요. 조건부 접근 정책이 서비스 주체 로그인을 차단하지 않는지 확인하세요.
클라이언트 시크릿 만료
클라이언트 시크릿 만료
az ad sp credential reset --id <appId>를 실행하거나 Microsoft Entra ID → App registrations → 대상 앱 → Certificates & secrets에서 새 시크릿을 생성하세요. 연결의 CLIENT_SECRET을 업데이트하세요.Optimize에 비용 데이터 없음
Optimize에 비용 데이터 없음
Optimize가 Azure Cost Management is not readable을 표시합니다. 구독에 Cost Management Reader를 할당하세요. 구독이 Microsoft Customer Agreement를 사용한다면 청구 프로필에 Billing profile reader도 할당하세요. 역할 할당은 전파에 몇 분이 걸립니다.
Cost Management가 429를 반환
Cost Management가 429를 반환
새 구독은 Cost Management를 강하게 제한하며 쿼리가
429 Too many requests로 응답합니다. 설정 오류가 아닙니다. 몇 분 기다린 뒤 Optimize를 다시 로드하세요.리소스 없음
리소스 없음
확인하려는 모든 구독에 Reader 역할이 할당되어 있는지 확인하세요. 서비스 주체가 읽을 수 없는 구독의 리소스는 표시되지 않습니다.
보안
- 최소 권한 — 에이전트가 사용 사례에 필요한 권한만 부여하세요. 읽기 전용으로 시작한 후 필요에 따라 확장하세요.
- 기본 읽기 전용 — 에이전트가 이 연결을 통해 변경 작업을 수행하게 할 것이 아니라면 읽기 전용 자격증명을 사용하세요.
- 자격증명 교체 — 정기 일정에 따라 키와 토큰을 교체하세요. 연결을 업데이트하면 CloudThinker가 새 값을 자동으로 반영합니다.
- 오프보딩 시 취소 — 연결을 삭제하거나 팀원이 퇴사할 때 프로바이더에서 자격증명을 제거하세요.
- 시크릿 만료 설정 — 항상 클라이언트 시크릿에 만료 기간을 설정하고 만료 전에 교체하세요.
- 역할 범위 제한 — Reader와 Cost Management Reader를 CloudThinker가 필요로 하는 구독에만 할당하고, 기본적으로 관리 그룹 수준에는 할당하지 마세요.
관련 문서
AWS 연결
Amazon Web Services 연결
Oliver 에이전트
Azure 컴플라이언스를 위한 보안 중심 에이전트