결제 관련 직무에서 IAM 역할

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

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

결제 권한을 구성하는 스타트업

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

아래 표에서는 조직 관리자(이 시나리오에서는 CEO)가 스타트업의 다른 임직원에게 부여할 수 있는 결제 IAM 역할 및 역할을 부여하는 데 사용할 리소스 수준을 보여줍니다.

역할: 조직 관리자 CEO는 조직 관리자 역할을 가지므로 오피스 매니저에게 권한을 할당할 수 있습니다.
리소스: 조직
구성원: CEO
역할: 결제 관리자 오피스 매니저와 CEO는 결제 관리자 역할을 가지므로 프로젝트 내용을 볼 권한이 없더라도 지급 및 인보이스를 관리할 수 있습니다.
리소스: 조직
구성원: 오피스 매니저, CEO

이 시나리오에서 조직 리소스에 연결되는 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 리소스에는 액세스하지 않으면서 예산을 설정하고 부서의 팀 지출을 확인할 수 있게 하려는 대규모 조직을 다룹니다. 개발자의 경우 자신의 프로젝트 지출은 확인해도 무방하지만 전체 비용 규모는 확인할 수 없어야 합니다.

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

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

이 시나리오에서는 IAM 정책이 계층 구조의 서로 다른 수준에 연결되어 있으므로 적절한 권한을 할당하는 작업을 두 번 수행해야 합니다.

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

사용자에게 결제 계정에 대한 결제 관리자 역할을 부여하려면 결제 콘솔을 통해 작업을 수행해야 합니다. 결제 계정을 설정한 계정에서 재무 담당자에게 결제 계정에 대한 결제 관리자 권한을 부여하면 됩니다.

프로젝트에 연결해야 하는 IAM 정책은 다음과 유사합니다.

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

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

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

중앙 IT팀은 다음과 같은 권한을 가져야 합니다.

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

프로젝트 내용을 볼 권한은 없어야 합니다.

개발자는 소비되는 Cloud Platform 리소스의 실제 비용을 볼 수 있어야 하지만 결제를 중지하거나, 프로젝트를 결제 계정에 연결하거나, 신용카드 정보를 볼 수는 없어야 합니다.

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

프로젝트 내용을 볼 권한은 부여하지 않습니다.

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

이 시나리오에서는 IAM 정책이 계층 구조의 서로 다른 수준에 연결되어 있으므로 적절한 할당 작업을 두 번 수행해야 합니다.

사용자에게 결제 계정에 대한 결제 관리자 역할을 부여하려면 결제 콘솔을 통해 작업을 수행해야 합니다. 결제 계정을 설정한 계정에서 재무 담당자에게 결제 계정에 대한 결제 관리자 권한을 부여하면 됩니다.

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

첫 번째 IAM 정책은 조직 수준에서 연결해야 하며, 서비스 계정에 결제 사용자 권한을 부여합니다. 내용은 다음과 유사합니다.

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

두 번째 IAM 정책은 프로젝트 수준에서 연결해야 하며, 개발자에게 프로젝트 뷰어 권한을 부여합니다.

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

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

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

기본으로 무료 제공되지 않는 API를 사용하려면 프로젝트에 결제를 사용 설정해야 합니다. 프로젝트를 만든 개발자는 결제 계정에 프로젝트를 연결하여 API를 사용 설정할 수 있습니다.

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

이 시나리오에서 프로젝트 수준으로 연결해야 하는 IAM 정책은 다음과 유사합니다.

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

비용 집계

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

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

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

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

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

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

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

Cloud ID 및 액세스 관리 문서