결제 관련 직무에서의 IAM 역할

이 주제에서는 일련의 예시 결제 시나리오에 맞도록 Cloud IAM 권한을 구성하는 방법을 설명합니다. 또한 각 시나리오에서 회사의 결제 관련 직책에 어떠한 IAM 역할을 부여해야 하는지도 설명합니다. 이 문서의 예시는 주로 결제 관리자 및 조직의 결제 작업을 관리하는 직원을 대상으로 합니다.

결제 역할 및 권한에 대해서는 이 문서에서 자세하게 설명하지 않습니다. Billing API의 역할 및 권한에 대한 자세한 내용은 결제 액세스 제어 페이지를 참조하세요.

결제 권한을 구성하는 소규모 회사

이 시나리오에서는 Google 결제 계정을 구성하려 하는 소기업을 다룹니다. 이 회사에는 애플리케이션을 개발하고 유지보수하는 소수의 엔지니어는 근무하지만 결제 관리 담당자가 없습니다. 지급과 인보이스를 대조하는 오피스 매니저가 있기는 하지만, 규정 준수를 위해 오피스 매니저는 프로젝트의 Cloud Platform 리소스에 액세스할 권한이 없습니다. 또한 CEO가 신용카드 정보를 직접 관리합니다.

아래 표에서는 조직 관리자(이 시나리오에서는 CEO)가 회사 내 다른 사람에게 부여할 수 있는 결제 Cloud IAM 역할과 이러한 역할을 부여하는 리소스 수준을 설명합니다.

역할: 조직 관리자 CEO는 조직 관리자 역할을 가지므로 오피스 매니저에게 권한을 할당할 수 있습니다.
리소스: 조직
구성원: CEO
역할: 결제 계정 관리자 오피스 매니저와 CEO는 결제 계정 관리자 역할을 통해 프로젝트 콘텐츠를 볼 수 있는 권한을 부여받지 않고도 결제와 송장을 관리할 수 있습니다.
리소스: 조직
구성원: 오피스 매니저, CEO

이 시나리오의 조직 리소스에 연결된 Cloud IAM 정책은 다음과 같습니다.

{
  "bindings": [
  {
    "members": [
      "user:ceo@example.com"
    ],
    "role": "roles/resourcemanager.organizationAdmin"
  },
  {
    "members": [
      "group:finance-admins-group@example.com"
    ],
    "role": "roles/billing.admin"
  }
  ]
}

그룹을 사용하여 구성원을 관리하는 것이 좋습니다. 위의 예에 있는 두 번째 바인딩에서는 finance-admins-group에 CEO와 오피스 매니저를 추가하면 됩니다. 특정 직무를 어떠한 직원이 수행할 수 있는지를 수정해야 하는 경우 정책을 업데이트할 필요 없이 그룹 소속 관계만 조정하면 됩니다. 따라서 개별 사용자 계정은 구성원 목록에 나타나지 않습니다.

예산을 관리하는 재무팀

이 시나리오에서는 각 부서의 재무팀이 GCP 리소스에는 액세스하지 않으면서 예산을 설정하고 부서의 팀 지출을 확인할 수 있게 하려는 대규모 조직을 다룹니다. 개발자가 자신의 프로젝트 지출을 확인할 수 있어도 전체 비용 규모를 확인할 수 없도록 해야 합니다.

각 부서의 재무 담당자와 개발자에게 아래 표와 같이 역할을 부여합니다.

역할: 결제 계정 관리자 이 역할은 각 부서의 재무 담당자에게 예산을 설정하고 결제 계정의 지출을 확인할 수 있는 권한을 부여하지만 프로젝트 콘텐츠를 볼 수 있는 권한을 부여하지 않습니다.
리소스: 결제 계정
구성원: 각 부서의 재무 담당자
역할: 뷰어 개발자는 뷰어 역할을 가지므로 자신이 소유한 프로젝트의 비용을 볼 수 있습니다.
리소스: 프로젝트
구성원: 프로젝트 개발자

이 시나리오에서는 Cloud IAM 정책이 서로 다른 수준의 계층 구조에 연결되어 있으므로 적절한 권한 Cloud IAM 정책을 할당하려면 두 가지 개별 작업이 필요합니다.

결제 계정에 대한 권한 할당:

결제 콘솔을 사용하여 사용자에게 결제 계정에 대한 결제 계정 관리자 역할을 부여합니다. 결제 계정을 설정한 계정에서 재무 담당자에게 결제 계정에 대한 결제 계정 관리자 역할을 부여하면 됩니다.

프로젝트에 연결해야 하는 Cloud IAM 정책은 다음과 같습니다.

{
  "bindings": [
  {
     "role": "roles/viewer",
     "members": [
               "group:developers@example.com"
     ]
  }
  ]
}

고객 셀프서비스 포털, 개발자가 결제 조정 불가능

이 시나리오에서는 고객의 중앙 IT 팀이 셀프서비스 포털의 일부로 개발자에게 GCP 리소스를 제공합니다. 개발자는 포털을 통해 GCP 프로젝트 및 기타 승인된 클라우드 서비스에 대한 액세스를 요청합니다. 개발자 비용 센터에서 소비한 클라우드 리소스에 대한 비용을 중앙 IT팀에 지불합니다.

중앙 IT팀에는 다음과 같은 권한이 있어야 합니다.

  • 프로젝트를 결제 계정에 연결
  • 프로젝트 결제 중지
  • 신용카드 정보 확인

프로젝트 콘텐츠를 볼 수 있는 권한은 없어야 합니다.

개발자는 소비되는 GCP 리소스의 실제 비용을 볼 수 있어야 하지만 결제를 사용 중지하고, 결재를 프로젝트와 연결하고, 신용 카드 정보를 볼 수 없어야 합니다.

역할: 결제 계정 관리자 결제 관리자 역할은 IT 부서에 프로젝트를 결제 계정에 연결하고, 프로젝트 결제를 중지하고, 고객에게 재판매하는 계정의 신용카드 정보를 볼 수 있는 권한을 부여합니다.

프로젝트 콘텐츠를 볼 수 있는 권한을 부여하지 않습니다.

리소스: 결제 계정
구성원: IT 부서
역할: 결제 계정 사용자 결제 계정 사용자 역할은 서비스 계정에 결제(프로젝트를 조직의 모든 프로젝트의 조직의 결제 계정과 연결)를 사용 설정하여 서비스 계정에서 결제가 필요한 API를 사용 설정할 수 있는 권한을 부여합니다.
리소스: 조직
구성원: 프로젝트 생성을 자동화하는 데 사용되는 서비스 계정
역할: 뷰어 개발자는 뷰어 역할을 가지므로 자신이 소유한 프로젝트의 비용을 볼 수 있습니다.
리소스: 프로젝트
구성원: 프로젝트 개발자

이 시나리오에서는 Cloud IAM 정책이 서로 다른 수준의 계층 구조에 연결되어 있으므로 적절한 Cloud IAM 정책을 할당하려면 두 가지 개별 작업이 필요합니다.

결제 콘솔을 사용하여 사용자에게 결제 계정에 대한 결제 계정 관리자 역할을 부여합니다. 결제 계정을 설정한 계정에서 재무 담당자에게 결제 계정에 대한 결제 계정 관리자 역할을 부여하면 됩니다.

이후에는 IAM 정책 두 개를 각각 서로 다른 수준의 계층 구조에 연결해야 합니다.

조직 수준에서 연결해야 하는 첫 번째 Cloud IAM 정책은 서비스 계정에 결제 계정 사용자 역할을 부여하기 위한 것입니다. 명령어는 다음과 유사합니다.

{
  "bindings": [
  {
     "role": "roles/billing.user",
     "members": [
       "serviceAccount:my-project-creator@shared-resources-proj.iam.gserviceaccount.com"
     ]
  }
  ]
}

두 번째 Cloud IAM 정책은 프로젝트 수준에서 연결되어야 합니다. 개발자에게 프로젝트에 대한 뷰어 역할을 부여합니다.

{
  "bindings": [
  {
     "role": "roles/viewer",
     "members": [
       "group:developers@example.com"
     ]
  }
  ]
}

결제 대상 프로젝트를 만드는 개발자

대형 디지털 네이티브에서 모든 개발자가 조직의 인보이스 계정에 결제 대상 프로젝트를 만들 수 있도록 허용하지만 결제 관리자 권한을 개발자에게 부여하지 않으려고 합니다.

프로젝트에서 결제를 사용 설정해야 기본값 이외의 API를 사용 설정할 수 있습니다. 따라서 개발자가 프로젝트를 만든 경우 API를 사용 설정하려면 프로젝트를 결제 계정에 연결해야 합니다.

역할: 결제 계정 생성자 개발자는 결제 생성자 역할을 가지고 있으므로 다음을 수행할 수 있습니다.
  • 새 결제 계정 만들기
  • 프로젝트에 결제 계정 연결
리소스: 프로젝트
구성원: 개발자

이 시나리오의 Cloud IAM 정책은 프로젝트 수준에서 연결되어야 하며 다음과 같습니다.

{
  "bindings": [
  {
     "role": "roles/billing.creator",
     "members": [
               "group:developers@example.com"
     ]
  }
  ]
}

비용 집계

이 시나리오에서는 팀별, 부서별, 서비스별 또는 프로젝트별 발생 비용을 계산하고 추적하려는 기업을 설명합니다. 예를 들어 테스트 배포 비용을 월 단위로 추적할 수 있습니다.

이러한 비용을 추적하는 방법은 다음과 같습니다.

  • 프로젝트를 사용하여 리소스를 체계적으로 정리합니다. 프로젝트별 비용이 표시되며 결제 내보내기에는 프로젝트 ID가 포함됩니다.
  • 프로젝트에 추가 그룹화 정보를 나타내는 라벨을 붙입니다. environment=test와 같은 라벨을 붙이면 결제 내보내기에 이 라벨이 포함되어 상세한 분석이 가능해집니다. 그러나 프로젝트의 라벨에는 프로젝트의 나머지 메타데이터와 동일한 권한이 적용되므로 프로젝트 소유자라면 누구나 라벨을 변경할 수 있습니다. 변경하지 말아야 하는 항목을 직원에게 교육하고 감사 로그를 통해 모니터링할 수도 있고, 프로젝트 메타데이터를 변경할 수 없도록 세분화된 권한만 부여할 수도 있습니다.

JSON 및 CSV로 내보낼 수 있지만, 권장되는 솔루션은 BigQuery로 직접 내보내는 것입니다. 이 기능은 결제 콘솔의 결제 내보내기 섹션에서 손쉽게 구성할 수 있습니다.

각 비용 센터에서 특정 작업 부하에 대해 별도의 인보이스를 결제하거나 다른 통화로 결제해야 하는 경우 비용 센터마다 다른 결제 계정이 필요합니다. 그러나 이 방식을 사용하려면 각 결제 계정에서 연결 동의서를 서명해야 합니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Cloud IAM 문서