역할 및 권한

이 페이지에서는 Identity and Access Management(IAM) 역할 및 권한과 Cloud SQL 인스턴스에 이를 사용하는 방법을 설명합니다.

소개

이 페이지는 특히 Cloud SQL과 관련된 IAM 측면을 중점적으로 설명합니다. IAM 및 해당 기능에 대한 자세한 내용은 Identity and Access Management를 참조하세요. 특히 IAM 정책 관리 섹션을 참조하세요. IAM을 사용하면 Google Cloud 프로젝트의 리소스에 액세스할 수 있는 사용자를 제어할 수 있습니다. 리소스에 적용하는 액세스 규칙 조합을 IAM 정책이라 합니다. 프로젝트에 적용된 IAM 정책은 사용자가 프로젝트 내의 모든 리소스에서 수행할 수 있는 작업을 정의합니다.

구성원은 IAM의 '주체'입니다. 개별 사용자, 그룹, 도메인은 물론 일반 대중도 구성원이 될 수 있습니다. 구성원에게는 역할이 할당되어 Google Cloud뿐만 아니라 Cloud SQL에서도 작업을 수행할 수 있는 권한이 부여됩니다. 각 역할은 하나 이상의 권한 모음입니다. 권한은 IAM의 기본 단위입니다. 각 권한을 통해 특정 작업을 수행할 수 있습니다. Cloud SQL에서 사용할 수 있는 모든 역할과 권한의 전체 목록은 Cloud SQL의 IAM 역할Cloud SQL의 IAM 권한을 참조하세요.

계정을 사용하여 Cloud SQL 인스턴스에 연결할 경우 계정에는 Cloud SQL > 클라이언트 역할(roles/cloudsql.client)이 있어야 하며 이는 연결에 필요한 권한을 포함합니다.

Console의 IAM 및 관리자 > IAM 페이지에서 계정에 역할을 추가하고 IAM 및 관리자 > 역할 페이지에서 어떤 권한이 어떤 역할에 속하는지 확인할 수 있습니다.

Cloud SQL은 Cloud SQL과 다른 Google Cloud 제품 간 인증에 서비스 계정을 사용합니다. 서비스 계정은 JSON 형식의 credentials를 제공합니다. Console에서 이를 다운로드하여 다양한 상황에서 인증에 사용합니다.

Cloud SQL 인증 프록시에 Cloud SQL 역할 및 권한 사용

Cloud SQL 인증 프록시를 사용하여 Compute Engine 인스턴스에서 Cloud SQL 인스턴스에 연결하는 경우 Compute Engine 인스턴스와 연결된 기본 Compute Engine 서비스 계정을 사용할 수 있습니다.

Cloud SQL 인스턴스에 연결하는 다른 모든 계정과 마찬가지로 서비스 계정에는 Cloud SQL > 클라이언트 역할이 있어야 합니다.

서버리스 옵션에 Cloud SQL 역할 및 권한 사용

서비스 계정을 사용하여 다음 옵션을 통한 액세스를 승인합니다. 서비스 계정은 특정 프로젝트의 모든 Cloud SQL에 대한 액세스를 승인합니다. 애플리케이션 또는 Cloud Functions를 만들면 이 서비스에서 자동으로 이 계정을 만듭니다. IAM 및 관리 > IAM 페이지에서 계정을 적절한 서픽스와 함께 확인할 수 있습니다.

서버리스 옵션 서비스 계정 서픽스
App Engine @gae-api-prod.google.com.iam.gserviceaccount.com
Cloud Functions @appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
Cloud SQL 인스턴스에 연결하는 다른 모든 계정과 마찬가지로 서비스 계정에는 Cloud SQL > 클라이언트 역할이 있어야 합니다.

Cloud Storage에 Cloud SQL 역할 및 권한 사용

Cloud SQL의 가져오기 및 내보내기 기능은 함께 작동합니다. Cloud Storage로 쓰기를 내보내고 여기에서 읽기를 가져옵니다. 따라서 이러한 작업에 사용하는 서비스 계정에는 Cloud Storage에 대한 읽기 및 쓰기 권한이 모두 필요합니다.

  • Cloud Storage에서 데이터를 가져오거나 내보내려면 Cloud SQL 인스턴스의 서비스 계정에 프로젝트에서 설정한 storage.objectAdmin IAM 역할이 있어야 합니다. 인스턴스의 개요 페이지에 있는 Google Cloud Console에서 인스턴스의 서비스 계정 이름을 확인할 수 있습니다.
  • gsutil iam 명령어를 사용하여 이 IAM 역할을 버킷의 서비스 계정에 부여할 수 있습니다.
  • IAM 역할 및 권한 설정에 대한 도움말은 IAM 권한 사용을 참조하세요.
  • 자세한 내용은 Cloud Storage의 IAM을 참조하세요.

다른 상황에서 Cloud SQL 역할 및 권한 사용

Cloud SQL은 다른 Google Cloud 제품 및 도구와 상호작용합니다. 이러한 상호작용에도 상황별로 다른 특정 역할과 권한이 필요합니다. Cloud SQL 문서는 아래 각 사례의 요구사항에 대한 자세한 정보를 제공합니다.

프로젝트에 IAM 사용

다음 섹션은 프로젝트에서 기본 IAM 작업을 완료하는 방법을 보여줍니다.

다음 작업을 완료하려면 resourcemanager.projects.getIamPolicyresourcemanager.projects.setIamPolicy IAM 권한이 필요합니다.

프로젝트 수준 정책에 구성원 추가

Cloud SQL과 관련된 역할 목록은 IAM 역할을 참조하세요.

콘솔

  1. Google Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.
  2. 상단 표시줄의 프로젝트 드롭다운 메뉴에서 구성원을 추가할 프로젝트를 선택합니다.
  3. 추가를 클릭합니다. 프로젝트에 구성원, 역할 추가 대화상자가 나타납니다.
  4. 새 구성원 필드에 액세스 권한을 부여할 항목의 이름을 지정합니다.
  5. 역할 선택 드롭다운에서 구성원에게 적합한 역할을 부여합니다. Cloud SQL 리소스에 영향을 미치는 역할은 프로젝트Cloud SQL 하위 메뉴에 있습니다.
  6. 저장을 클릭합니다.

gsutil

프로젝트 수준 IAM 정책은 Google Cloud SDK에 포함된 gcloud 명령어를 통해 관리됩니다. 프로젝트 수준 정책을 추가하려면 gcloud beta projects add-iam-policy-binding을 사용하세요.

프로젝트에 대한 IAM 정책 보기

콘솔

  1. Google Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.
  2. 상단 표시줄의 프로젝트 드롭다운 메뉴에서 정책을 보려는 프로젝트를 선택합니다.
  3. 프로젝트의 권한을 보는 방법에는 2가지가 있습니다.
    • 구성원별로 보기: 각 구성원의 역할을 보려면 개별 구성원과 연결된 역할 열을 확인합니다.
    • 역할별로 보기: 역할이 있는 회원을 보려면 개별 역할과 연결된 드롭다운을 사용합니다.

gsutil

프로젝트 수준 IAM 정책은 Google Cloud SDK에 포함된 gcloud 명령어를 통해 관리됩니다. 프로젝트의 IAM 정책을 보려면 gcloud beta projects get-iam-policy 명령어를 사용하세요.

프로젝트 수준 정책에서 구성원 삭제

콘솔

  1. Google Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.
  2. 상단 표시줄의 프로젝트 드롭다운 메뉴에서 구성원을 삭제하려는 프로젝트를 선택합니다.
  3. 구성원별로 권한을 보고 있는지 확인하고 삭제할 구성원을 선택합니다.
  4. 삭제를 클릭합니다.
  5. 나타나는 오버레이 창에서 확인을 클릭합니다.

gsutil

프로젝트 수준 IAM 정책은 Google Cloud SDK에 포함된 gcloud 명령어를 통해 관리됩니다. 프로젝트 수준 정책을 삭제하려면 gcloud beta projects remove-iam-policy-binding을 사용하세요.

권장사항

다른 관리 설정과 마찬가지로 IAM을 효과적으로 관리하려면 능동적인 관리가 필요합니다. 다른 사용자가 리소스에 액세스할 수 있도록 하려면 먼저 해당하는 각 사용자에게 어떤 역할을 부여할지 결정합니다. 시간이 지나면서 프로젝트 관리, 사용 패턴, 조직 소유자가 변경되면 프로젝트에 대한 IAM 설정을 수정해야 할 수 있습니다. 특히 대규모 조직 또는 대규모 사용자 그룹에서 Cloud SQL을 관리하는 경우라면 더욱 그렇습니다. 액세스 제어 설정 평가 및 계획 시 다음과 같은 권장사항을 염두에 두어야 합니다.

  • 액세스 권한을 부여할 때 최소 권한 원칙을 사용하세요. 최소 권한의 원칙은 리소스에 대한 액세스 권한을 부여하기 위한 보안 가이드라인입니다. 최소 권한 원칙에 따라 액세스 권한을 부여하면 사용자는 할당된 작업을 수행하는 데 필요한 액세스 권한만 부여받습니다.

  • 모르는 사람에게 setIamPolicy 권한을 부여하지 마세요. setIamPolicy 권한을 부여받은 사용자는 권한을 변경하고 데이터를 제어할 수 있습니다. 객체와 버킷에 대한 관리 제어 권한을 위임할 때만 setIamPolicy 권한을 사용해야 합니다.

  • 리소스의 관리 권한을 위임하세요. 관리 액세스 권한이 있는 개별 사용자가 그룹에서 탈퇴할 경우 다른 팀 구성원이 리소스를 계속 관리할 수 있는지 확인해야 합니다. 이를 수행하는 두 가지 일반적인 방법은 다음과 같습니다.

    • 프로젝트의 Cloud SQL 관리자 역할을 개인이 아닌 그룹에 할당합니다.
    • 프로젝트의 Cloud SQL 관리자 역할을 2명 이상의 개별 사용자에게 할당합니다.

다음 단계