Access control for cost anomalies

Access control for cost anomalies (비용 이상 접근 제어)

비용 이상(cost anomaly)은 일일 소비가 그날의 예상 소비 범위보다 위 또는 아래일 때 발생해요. 이 주제는 이상 모니터를 포함한 비용 이상 보기·구성에 대한 접근 제어 요구사항을 설명해요.

출처: Access control for cost anomalies

본문

비용 이상 접근이 동작하는 방식

접근은 계정 수준 이상, 조직 수준 이상, 이상 모니터에 대해 같은 방식으로 동작해요. 두 애플리케이션 역할이 기준선을 설정하고, 세 번째 역할이 통화로 된 소비 데이터에 대한 접근을 제어해요.

  • 이상·소비 보기: APP_USAGE_ADMIN 또는 APP_USAGE_VIEWER 중 하나가 사용자가 비용 이상을 보고 그 뒤의 소비를 조사하게 해줘요. 측정 단위는 크레딧이에요. 두 역할 모두 같은 보기 접근을 부여해요.
  • 구성 변경: APP_USAGE_ADMIN이 계정의 구성을 변경하는 능력을 추가해요. 계정 알림 목록 설정, 이상 모니터 생성·변경·삭제를 포함해요. APP_USAGE_ADMIN을 가진 사용자는 APP_USAGE_VIEWER도 필요하지 않아요.
  • 통화로 소비 보기: 통화로 된 소비 데이터는 크레딧보다 더 민감하므로 APP_USAGE_ADMIN 또는 APP_USAGE_VIEWER와 함께 부여된 추가 역할이 필요해요. 같은 역할이 조직 알림 목록도 제어하는데, 그 알림은 통화 금액을 포함할 수 있기 때문이에요. 이상 모니터는 항상 크레딧 또는 AI 크레딧을 보고하고 절대 통화를 보고하지 않으므로 이 역할은 그 모니터에 영향을 주지 않아요.

통화 접근을 부여하는 역할은 사용자가 로그인하는 계정 유형에 따라 달라져요.

  • 조직 계정에서는 ORGANIZATION_BILLING_VIEWER를 부여.
  • ORGADMIN 활성 계정에서는 APP_ORGANIZATION_BILLING_VIEWER를 부여.

일반 계정은 ORGANIZATION_USAGE 스키마에도 통화 역할에도 접근이 없으므로, 일반 계정의 사용자는 항상 크레딧으로 소비를 봐요.

시스템 역할을 가진 관리자

다음 시스템 역할을 가진 관리자는 Snowsight와 ANOMALY_INSIGHTS 클래스 사용 둘 다에서 비용 이상 식별·조사와 관련된 모든 작업을 수행할 수 있어요. 이 주제에 설명된 애플리케이션 역할이 필요하지 않아요.

  • ORGADMIN 활성 계정 또는 일반 계정의 ACCOUNTADMIN 역할.
  • 조직 계정의 GLOBALORGADMIN 역할.

애플리케이션 역할

SNOWFLAKE 애플리케이션 안에 있는 다음 애플리케이션 역할을 부여해 다른 사용자가 비용 이상으로 작업하게 할 수 있어요.

애플리케이션 역할 설명
APP_USAGE_VIEWER 사용자가 크레딧으로 비용 이상과 그 뒤의 소비를 보게 해줘요. 이상 모니터의 결과를 포함하지만, 만들거나 변경하는 능력은 아니에요.
APP_USAGE_ADMIN 사용자가 APP_USAGE_VIEWER가 하는 모든 것을 하고 계정 내에서 비용 이상을 구성하게 해줘요. 구성에는 계정 수준 비용 이상에 대한 알림이 전송될 이메일 주소 설정과, 각 모니터의 알림 목록과 함께 이상 모니터 생성·업데이트·이름 변경·드롭이 포함돼요.
ORGANIZATION_BILLING_VIEWER APP_USAGE_ADMIN 또는 APP_USAGE_VIEWER와 결합하면 조직 계정의 사용자가 통화를 측정 단위로 소비를 보게 해줘요. 이 역할 없이는 사용자는 크레딧으로 소비를 보지 통화로 보지 않아요. 또한 조직 수준 비용 이상에 대한 알림이 전송될 이메일 주소를 보고 설정하는 데 필요해요.
APP_ORGANIZATION_BILLING_VIEWER 조직 계정 대신 ORGADMIN 활성 계정에서 동일한 접근을 제공해요.

ANOMALY_INSIGHTS 메서드용 애플리케이션 역할

다음 표는 ANOMALY_INSIGHTS 클래스의 각 메서드를 사용자가 호출하게 하는 애플리케이션 역할을 보여줘요. 주어진 메서드에 대해 ✔ 표시된 역할 중 하나만 있으면 돼요. 빈 셀은 역할이 메서드를 호출할 수 없음을 뜻해요. (preview)로 표시된 메서드는 이상 모니터에 속해요.

ORGADMIN 활성 계정에서는 이 표가 ORGANIZATION_BILLING_VIEWER를 나열하는 곳마다 APP_ORGANIZATION_BILLING_VIEWER를 부여해요.

메서드 APP_USAGE_VIEWER APP_USAGE_ADMIN ORGANIZATION_BILLING_VIEWER
ADD_NOTIFICATION_INTEGRATION ✔ ✔
ADHOC_CALCULATE_ANOMALIES_FROM_CONFIG (preview) ✔ ✔
CREATE_MONITOR (preview) ✔
DROP_MONITOR (preview) ✔
GET_ACCOUNT_ANOMALIES_IN_CREDITS ✔ ✔
GET_ACCOUNT_NOTIFICATION_EMAILS ✔
GET_DAILY_CONSUMPTION_ANOMALY_DATA ✔
GET_HOURLY_CONSUMPTION_BY_SERVICE_TYPE ✔ ✔
GET_HOURLY_SPEND_FOR_ANOMALY ✔ ✔
GET_MONITOR_ANOMALIES (preview) ✔ ✔
GET_MONITOR_CONFIG (preview) ✔ ✔
GET_MONITOR_NOTIFICATION_EMAILS (preview) ✔
GET_MONITOR_NOTIFICATION_LOG (preview) ✔
GET_NOTIFICATION_INTEGRATIONS ✔ ✔ ✔
GET_ORG_NOTIFICATION_EMAILS ✔
GET_TOP_ACCOUNTS_BY_CONSUMPTION ✔ ✔
GET_TOP_QUERIES_FROM_WAREHOUSE ✔ ✔
GET_TOP_WAREHOUSES_ON_DATE ✔ ✔
LIST_MONITORS (preview) ✔ ✔
RECALCULATE_ANOMALIES (preview) ✔ ✔
REMOVE_NOTIFICATION_INTEGRATION ✔ ✔
RENAME_MONITOR (preview) ✔
SET_ACCOUNT_NOTIFICATION_EMAILS ✔
SET_MONITOR_NOTIFICATION_EMAILS (preview) ✔
SET_ORG_NOTIFICATION_EMAILS ✔
UPDATE_MONITOR_CONFIG (preview) ✔

이 역할들이 어떻게 적용되는지에 대해 주의:

  • ADD_NOTIFICATION_INTEGRATION과 REMOVE_NOTIFICATION_INTEGRATION은 계정 수준 이상용 통합을 관리하려면 APP_USAGE_ADMIN, 조직 수준 이상용 통합을 관리하려면 통화 역할이 필요해요. 둘 다 알림 통합 자체에 대한 권한도 필요해요. 자세한 내용은 메서드 참조 페이지를 참고해요.
  • 계정의 모든 이상 모니터는 그 계정에서 APP_USAGE_VIEWER 또는 APP_USAGE_ADMIN을 가진 누구에게나 보여요. 모니터는 사용자별로 필터링되지 않아요. 모니터의 결과는 이 역할들이 이미 볼 수 있는 총계 비용 데이터이기 때문이에요.

사용자에게 접근 부여

다음 섹션은 일반적인 경우에 대한 이 애플리케이션 역할의 결합을 보여줘요.

특정 계정의 비용 이상 보기 능력 부여

사용자가 특정 계정에서 계정 수준 비용 이상을 볼 수 있게 하고 싶지만 관리자로는 행동하지 못하게 하려면 APP_USAGE_VIEWER 애플리케이션 역할을 부여해요.

예를 들어 사용자 joe가 특정 계정의 비용 이상을 볼 수 있게 하려면 계정에 로그인한 뒤 다음 명령을 실행해요.

USE ROLE ACCOUNTADMIN;

CREATE ROLE anomaly_viewer_role;
GRANT APPLICATION ROLE SNOWFLAKE.APP_USAGE_VIEWER TO ROLE anomaly_viewer_role;
GRANT ROLE anomaly_viewer_role TO USER joe;

모든 계정의 비용 이상 보기 능력 부여

사용자가 조직의 모든 계정에서 계정 수준 비용 이상을 보고 조직 수준 이상을 보게 하려면 APP_USAGE_VIEWER 역할과 다음 역할 중 하나를 부여해요.

  • 사용자가 조직 계정에 로그인해 비용 이상을 보면 ORGANIZATION_BILLING_VIEWER 애플리케이션 역할도 부여.
  • 사용자가 ORGADMIN 활성 계정에 로그인해 비용 이상을 보면 APP_ORGANIZATION_BILLING_VIEWER 애플리케이션 역할도 부여.

이 역할들을 부여받은 사용자는 크레딧이 아니라 통화를 측정 단위로 소비 데이터를 볼 수 있어요.

예를 들어 사용자 ralph가 조직 계정에 로그인해 조직 전체와 관련된 비용 이상을 보면 다음 명령을 실행해요.

USE ROLE ACCOUNTADMIN;

CREATE ROLE anomaly_viewer_role;
GRANT APPLICATION ROLE SNOWFLAKE.APP_USAGE_VIEWER TO ROLE anomaly_viewer_role;
GRANT APPLICATION ROLE SNOWFLAKE.ORGANIZATION_BILLING_VIEWER TO ROLE anomaly_viewer_role;
GRANT ROLE anomaly_viewer_role TO USER ralph;

특정 계정의 비용 이상 구성 능력 부여

사용자가 특정 계정 내에서 계정 수준 비용 이상을 보고 구성하게 하려면 APP_USAGE_ADMIN 애플리케이션 역할을 부여해요. 이 역할을 가진 사용자는 비용 이상을 보기 위해 APP_USAGE_VIEWER 역할이 필요하지 않아요. 비용 이상 구성에는 계정에 이상이 있을 때 알림이 전송될 이메일 주소 추가와 이상 모니터 관리가 포함돼요.

예를 들어 사용자 judy가 특정 계정의 계정 수준 비용 이상을 보고 구성하게 하려면 계정에 로그인한 뒤 다음 명령을 실행해요.

USE ROLE ACCOUNTADMIN;

CREATE ROLE anomaly_admin_role;
GRANT APPLICATION ROLE SNOWFLAKE.APP_USAGE_ADMIN TO ROLE anomaly_admin_role;
GRANT ROLE anomaly_admin_role TO USER judy;

조직 수준 비용 이상 구성 능력 부여

사용자가 조직 수준 비용 이상을 구성하게 하려면 APP_USAGE_ADMIN 역할과 다음 역할 중 하나를 부여해요.

  • 사용자가 조직 계정에 로그인해 비용 이상을 구성·보면 ORGANIZATION_BILLING_VIEWER 애플리케이션 역할도 부여.
  • 사용자가 ORGADMIN 활성 계정에 로그인해 비용 이상을 구성·보면 APP_ORGANIZATION_BILLING_VIEWER 애플리케이션 역할도 부여.

이 역할 조합 중 하나를 가진 관리자는 다음 작업을 수행할 수 있어요.

  • 조직 수준 이상에 대한 알림이 전송될 이메일 주소 설정·보기.
  • 조직의 모든 계정에서 계정 수준 비용 이상 보기.
  • 조직 수준 비용 이상 보기.
  • 통화를 측정 단위로 사용하는 소비 데이터 보기.

예를 들어 사용자 steven이 조직 계정에 로그인해 조직 전체와 관련된 비용 이상으로 작업하면 다음 명령을 실행해요.

USE ROLE ACCOUNTADMIN;

CREATE ROLE anomaly_admin_role;
GRANT APPLICATION ROLE SNOWFLAKE.APP_USAGE_ADMIN TO ROLE anomaly_admin_role;
GRANT APPLICATION ROLE SNOWFLAKE.ORGANIZATION_BILLING_VIEWER TO ROLE anomaly_admin_role;
GRANT ROLE anomaly_admin_role TO USER steven;

태그로 이상 모니터 범위 지정 능력 부여

이상 모니터를 정의하려면 APP_USAGE_ADMIN과 모니터 범위에 사용되는 각 태그에 대한 APPLYBUDGET 권한이 필요해요. APPLYBUDGET은 예산이 요구하는 것과 같은 권한이며, Snowflake는 이상 모니터에 대한 별도 권한을 정의하지 않아요.

예를 들어 anomaly_admin_role 역할이 모니터를 정의할 때 cost_center 태그를 사용하게 하려면:

USE ROLE ACCOUNTADMIN;

GRANT APPLYBUDGET ON TAG it.warehouse_management.cost_center TO ROLE anomaly_admin_role;

APPLYBUDGET이 애플리케이션 역할과 어떻게 상호작용하는지에 대해 주의:

  • APPLYBUDGET은 모니터 범위에서 태그를 명명할 권한만 부여해요. 태그를 가진 리소스의 소비 데이터에 대한 접근은 부여하지 않아요.
  • 모니터 결과에 대한 접근은 항상 그것을 읽는 사용자의 애플리케이션 역할로 평가되며, 모니터를 만든 사용자의 권한이 아니에요.
  • 권한은 태그 참조를 만들 때 확인돼요. 태그에 대한 APPLYBUDGET이 없으면 SYSTEM$REFERENCE가 모니터 메서드가 실행되기 전에 실패해요.
  • APPLYBUDGET은 모니터 저장에만 적용돼요. 저장하지 않고 구성을 테스트하는 ANOMALY_INSIGHTS!ADHOC_CALCULATE_ANOMALIES_FROM_CONFIG는 태그를 직접 명명하며 권한이 필요하지 않아요.

비용 이상 뷰에 대한 접근

이 주제의 애플리케이션 역할은 ANOMALY_INSIGHTS 클래스 메서드와 Snowsight를 제어해요. 비용 이상 뷰를 직접 쿼리하려면 대신 데이터베이스 역할이 필요해요.

  • ANOMALIES_DAILY 뷰는 ACCOUNT_USAGE 스키마에 대한 읽기 접근이 있는 데이터베이스 역할(예: USAGE_VIEWER)이 필요해요.
  • ANOMALIES_IN_CURRENCY_DAILY 뷰는 통화 데이터를 포함하고 ORGANIZATION_BILLING_VIEWER가 필요해요.

이상 모니터 결과는 어느 스키마에서도 사용할 수 없어요. 검색하려면 ANOMALY_INSIGHTS!GET_MONITOR_ANOMALIES를 사용해요.

더 알아보기