리소스에 서비스 계정을 연결할 수 있는 권한 필요

특정 Google Cloud 리소스를 만들 때 서비스 계정을 연결할 수 있습니다. 연결된 서비스 계정은 리소스에서 실행되는 모든 작업의 ID 역할을 하므로 Google Cloud APIs에 작업을 인증할 수 있습니다.

대부분의 Google Cloud 서비스에서 사용자가 서비스 계정을 리소스에 연결하려면 서비스 계정을 가장할 수 있는 권한이 필요합니다. 즉, 사용자에게는 서비스 계정에 대한 iam.serviceAccounts.actAs 권한이 필요합니다.

하지만 이전에는 사용자에게 서비스 계정을 가장할 수 있는 권한이 없더라도 사용자가 특정 서비스를 사용하여 서비스 계정을 리소스에 연결할 수 있었습니다. 이러한 구성으로 인해 이러한 서비스의 사용자가 명확하지 않은 승격된 권한을 얻을 수 있었습니다.

아래 표에는 이러한 구성의 서비스와 각 서비스의 기존 동작이 나와 있습니다.

서비스 기존 동작
App Engine 사용자는 App Engine 기본 서비스 계정을 가장할 수 있는 권한이 없더라도 App Engine 기본 서비스 계정의 ID를 사용하는 App Engine 애플리케이션을 배포할 수 있습니다.
Cloud Composer 사용자는 프로젝트의 서비스 계정을 가장할 수 있는 권한이 없더라도 프로젝트의 서비스 계정을 Cloud Composer 환경에 연결할 수 있었습니다.
  • Cloud Data Fusion
  • Dataflow
  • Dataproc
사용자는 기본 서비스 계정을 가장할 수 있는 권한이 없더라도 Compute Engine 기본 서비스 계정을 리소스에 연결할 수 있습니다.

이제는 사용자가 서비스 계정을 리소스에 연결할 때 서비스에서 사용자에게 서비스 계정을 가장할 수 있는 권한이 있는지 확인해야 합니다. 하지만 다음 유형의 조직에는 기존 동작이 여전히 존재합니다.

  • App Engine 애플리케이션을 배포할 수 있는 권한이 있지만 App Engine 기본 서비스 계정을 가장할 수 있는 권한이 없는 사용자의 조직입니다.
  • Cloud Composer 환경을 배포할 수 있는 권한은 있지만 서비스 계정을 가장할 수 있는 권한이 없는 사용자의 조직입니다.
  • Cloud Data Fusion, Dataflow 또는 Dataproc 리소스를 배포할 수 있는 권한은 있지만 Compute Engine 기본 서비스 계정을 가장할 수 있는 권한이 없는 사용자의 조직입니다.

조직이 여전히 기존 동작에 영향을 받는 경우 수동으로 이를 중지하는 방법이 설명된 이메일을 받게 됩니다. 자세한 안내는 아래 섹션을 참조하세요.

App Engine 보안

App Engine의 이전 동작을 수동으로 사용 중지하려면 사용자가 App Engine 서비스 계정을 가장할 수 있는 권한이 있는지 확인합니다. 그런 다음 App Engine 기본 서비스 계정의 ID를 사용하는 애플리케이션을 배포할 때 조직 정책 제약조건을 사용 설정하여 서비스 계정 권한 검사를 적용합니다.

  1. 선택사항: IAM 추천자를 사용하여 App Engine 기본 서비스 계정의 권한을 안전하게 축소합니다.

    App Engine 기본 서비스 계정에는 높은 권한이 있는 편집자 역할(roles/editor)이 자동으로 부여됩니다. 하지만 프로덕션 구성에서는 이러한 높은 권한이 있는 역할을 사용하지 않는 것이 좋습니다.

  2. 애플리케이션을 배포하는 모든 사용자가 App Engine 기본 서비스 계정을 가장할 수 있는지 확인합니다.

    이 기능을 제공하려면 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)과 같이 iam.serviceAccounts.actAs 권한이 있는 역할을 사용자에게 부여합니다. 이 역할을 프로젝트 또는 App Engine 기본 서비스 계정에 부여할 수 있습니다. 자세한 안내는 서비스 계정 가장 관리를 참조하세요.

  3. 애플리케이션을 배포할 때 조직 정책 제약조건 constraints/appengine.enforceServiceAccountActAsCheck를 사용 설정하여 서비스 계정 권한 검사를 적용합니다.

  4. 선택사항: 부울 조직 정책 시행자를 사용하여 조직 정책 제약조건이 모든 프로젝트에 적용되는지 확인합니다.

Cloud Composer 보안

Cloud Composer의 기존 동작을 수동으로 중지하려면 사용자에게 새 환경에 연결할 서비스 계정을 가장할 수 있는 권한이 있는지 확인합니다. 그런 다음 서비스 계정을 환경에 연결할 때 조직 정책 제약조건을 사용 설정하여 서비스 계정 권한 검사를 적용합니다.

  1. Cloud Composer 환경에 binding된 모든 서비스 계정을 파악합니다.

    1. Cloud Console에서 Composer 환경 페이지로 이동합니다.

      Composer 환경 페이지로 이동

    2. 환경 이름을 클릭합니다.

    3. 환경 구성 탭에서 서비스 계정 필드를 찾고 서비스 계정 이름을 기록합니다.

    4. 프로젝트의 모든 Cloud Composer 환경에 앞의 단계를 반복합니다.

  2. 이러한 서비스 계정이 최소 권한 원칙을 따르는지 확인합니다.

  3. Cloud Composer 환경을 배포하거나 관리하는 모든 사용자가 환경에서 사용하는 서비스 계정을 가장할 수 있는지 확인합니다.

    이 기능을 제공하려면 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)과 같이 iam.serviceAccounts.actAs 권한이 있는 역할을 사용자에게 부여합니다. 이 역할을 프로젝트 또는 개별 서비스 계정에 부여할 수 있습니다. 자세한 안내는 서비스 계정 가장 관리를 참조하세요.

  4. 서비스 계정을 환경에 연결할 때 조직 정책 제약조건 constraints/composer.enforceServiceAccountActAsCheck를 사용 설정하여 서비스 계정 권한 검사를 적용합니다.

  5. 선택사항: 부울 조직 정책 시행자를 사용하여 조직 정책 제약조건이 모든 프로젝트에 적용되는지 확인합니다.

Dataproc, Dataflow, Cloud Data Fusion 보안

Dataproc, Dataflow, Cloud Data Fusion의 기존 동작을 수동으로 중지하려면 사용자에게 새 리소스에 연결할 서비스 계정을 가장할 수 있는 권한이 있는지 확인합니다. 그런 다음 서비스 계정을 리소스에 연결할 때 조직 정책 제약조건을 사용 설정하여 서비스 계정 권한 검사를 적용합니다.

새 리소스에 연결하려는 서비스 계정 유형의 안내를 따릅니다.

  • Compute Engine 기본 서비스 계정을 새 리소스에 연결하지 않으려면 다음 단계를 따르세요.

    1. 새 서비스 계정을 만들고 리소스에서 작업을 실행하는 데 필요한 역할을 서비스 계정에 부여합니다. 최소 권한의 원칙을 따라야 합니다.

      서비스 계정이 Dataproc, Dataflow, Cloud Data Fusion 리소스에서 작업을 실행하는 데 필요한 역할은 다음을 참조하세요.

    2. 이러한 리소스를 배포하는 모든 사용자가 새 서비스 계정을 가장하도록 허용합니다.

      이 기능을 제공하려면 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)과 같이 iam.serviceAccounts.actAs 권한이 있는 역할을 사용자에게 부여합니다. 이 역할을 프로젝트 또는 서비스 계정에 부여할 수 있습니다. 자세한 안내는 서비스 계정 가장 관리를 참조하세요.

    3. 서비스 계정을 리소스에 연결할 때 다음 조직 정책 제약조건을 사용 설정하여 서비스 계정 권한 검사를 적용합니다.

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck

      참고: 조직 정책 제약조건 constraints/dataproc.enforceComputeDefaultServiceAccountCheck는 Cloud Data Fusion에 대한 권한 검사도 적용합니다.

    4. 선택사항: 부울 조직 정책 시행자를 사용하여 조직 정책 제약조건이 모든 프로젝트에 적용되는지 확인합니다.

    5. 새 리소스를 배포할 때 Compute Engine 기본 서비스 계정 대신 새 서비스 계정을 사용합니다.

  • Compute Engine 기본 서비스 계정을 새 리소스에 연결하려면 다음 단계를 따르세요.

    1. 선택사항: IAM 추천자를 사용하여 Compute Engine 기본 서비스 계정의 권한을 안전하게 축소합니다.

      Compute Engine 기본 서비스 계정에는 높은 권한이 있는 편집자 역할(roles/editor)이 자동으로 부여됩니다. 하지만 프로덕션 구성에서는 이러한 높은 권한이 있는 역할을 사용하지 않는 것이 좋습니다.

    2. 이러한 리소스를 배포하는 모든 사용자가 Compute Engine 기본 서비스 계정을 가장할 수 있는지 확인합니다.

      이 기능을 제공하려면 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)과 같이 iam.serviceAccounts.actAs 권한이 있는 역할을 사용자에게 부여합니다. 이 역할을 프로젝트 또는 Compute Engine 기본 서비스 계정에 부여할 수 있습니다. 자세한 안내는 서비스 계정 가장 관리를 참조하세요.

    3. 서비스 계정을 리소스에 연결할 때 다음 조직 정책 제약조건을 사용 설정하여 서비스 계정 권한 검사를 적용합니다.

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck
    4. 선택사항: 부울 조직 정책 시행자를 사용하여 조직 정책 제약조건이 모든 프로젝트에 적용되는지 확인합니다.