이 페이지에서는 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 Run 함수를 만들면 이 서비스에서 자동으로 이 계정을 만듭니다. IAM 및 관리 > IAM 페이지에서 계정을 적절한 서픽스와 함께 확인할 수 있습니다.
서버리스 옵션 | 서비스 계정 서픽스 |
---|---|
App Engine | @gae-api-prod.google.com.iam.gserviceaccount.com |
Cloud Run 함수 | @appspot.gserviceaccount.com |
Cloud Run | compute@developer.gserviceaccount.com |
Cloud Storage에 Cloud SQL 역할 및 권한 사용
Cloud SQL의 가져오기 및 내보내기 기능은 함께 작동합니다. Cloud Storage로 쓰기를 내보내고 여기에서 읽기를 가져옵니다. 따라서 이러한 작업에 사용하는 서비스 계정에는 Cloud Storage에 대한 읽기 및 쓰기 권한이 모두 필요합니다.
- Cloud Storage에서 데이터를 가져오거나 내보내려면 Cloud SQL 인스턴스의 서비스 계정에 프로젝트에서 설정한
storage.objectAdmin
IAM 역할이 있어야 합니다. 인스턴스의 개요 페이지에 있는 Google Cloud Console에서 인스턴스의 서비스 계정 이름을 확인할 수 있습니다. gcloud storage buckets add-iam-policy-binding
명령어를 사용하여 이 IAM 역할을 버킷의 서비스 계정에 부여할 수 있습니다.- IAM 역할 및 권한 설정에 대한 도움말은 IAM 권한 사용을 참조하세요.
- 자세한 내용은 Cloud Storage의 IAM을 참조하세요.
Dataplex 통합을 위한 Cloud SQL 역할 및 권한
Dataplex에서 Cloud SQL 메타데이터에 대한 액세스 권한을 제공하려면 사용자에게 roles/cloudsql.schemaViewer
역할을 부여하거나 cloudsql.schemas.view
권한을 커스텀 역할에 추가하면 됩니다.
자세한 내용은 Dataplex 카탈로그로 Cloud SQL 리소스 관리를 참조하세요.
다른 상황에서 Cloud SQL 역할 및 권한 사용
Cloud SQL은 다른 Google Cloud 제품 및 도구와 상호작용합니다. 이러한 상호작용에도 상황별로 다른 특정 역할과 권한이 필요합니다. Cloud SQL 문서는 아래 각 사례의 요구사항에 대한 자세한 정보를 제공합니다.
프로젝트에 IAM 사용
다음 섹션은 프로젝트에서 기본 IAM 작업을 완료하는 방법을 보여줍니다.
다음 작업을 완료하려면 resourcemanager.projects.getIamPolicy
와 resourcemanager.projects.setIamPolicy
IAM 권한이 필요합니다.
프로젝트 수준 정책에 구성원 추가
Cloud SQL과 관련된 역할 목록은 IAM 역할을 참조하세요.
콘솔
- Google Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.
- 상단 표시줄의 프로젝트 드롭다운 메뉴에서 구성원을 추가할 프로젝트를 선택합니다.
- 추가를 클릭합니다. 프로젝트에 구성원, 역할 추가 대화상자가 나타납니다.
- 새 구성원 필드에 액세스 권한을 부여할 항목의 이름을 지정합니다.
- 역할 선택 드롭다운에서 구성원에게 적합한 역할을 부여합니다. Cloud SQL 리소스에 영향을 미치는 역할은 프로젝트 및 Cloud SQL 하위 메뉴에 있습니다.
- 저장을 클릭합니다.
gcloud
프로젝트 수준 IAM 정책을 추가하려면 gcloud beta projects add-iam-policy-binding
을 사용하세요.
프로젝트에 대한 IAM 정책 보기
콘솔
- Google Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.
- 상단 표시줄의 프로젝트 드롭다운 메뉴에서 정책을 보려는 프로젝트를 선택합니다.
- 프로젝트의 권한을 보는 방법에는 2가지가 있습니다.
- 구성원별로 보기: 각 구성원의 역할을 보려면 개별 구성원과 연결된 역할 열을 확인합니다.
- 역할별로 보기: 역할이 있는 회원을 보려면 개별 역할과 연결된 드롭다운을 사용합니다.
gcloud
프로젝트의 IAM 정책을 보려면 gcloud beta projects get-iam-policy
명령어를 사용하세요.
프로젝트 수준 정책에서 구성원 삭제
콘솔
- Google Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.
- 상단 표시줄의 프로젝트 드롭다운 메뉴에서 구성원을 삭제하려는 프로젝트를 선택합니다.
- 구성원별로 권한을 보고 있는지 확인하고 삭제할 구성원을 선택합니다.
- 삭제를 클릭합니다.
- 나타나는 오버레이 창에서 확인을 클릭합니다.
gcloud
프로젝트 수준 IAM 정책을 삭제하려면 gcloud beta projects remove-iam-policy-binding
을 사용하세요.
권장사항
다른 관리 설정과 마찬가지로 IAM을 효과적으로 관리하려면 능동적인 관리가 필요합니다. 다른 사용자가 리소스에 액세스할 수 있도록 하려면 먼저 해당하는 각 사용자에게 어떤 역할을 부여할지 결정합니다. 시간이 지나면서 프로젝트 관리, 사용 패턴, 조직 소유자가 변경되면 프로젝트에 대한 IAM 설정을 수정해야 할 수 있습니다. 특히 대규모 조직 또는 대규모 사용자 그룹에서 Cloud SQL을 관리하는 경우라면 더욱 그렇습니다. 액세스 제어 설정 평가 및 계획 시 다음과 같은 권장사항을 염두에 두어야 합니다.
액세스 권한을 부여할 때 최소 권한 원칙을 사용하세요. 최소 권한의 원칙은 리소스에 대한 액세스 권한을 부여하기 위한 보안 가이드라인입니다. 최소 권한 원칙에 따라 액세스 권한을 부여하면 사용자는 할당된 작업을 수행하는 데 필요한 액세스 권한만 부여받습니다.
모르는 사람에게
setIamPolicy
권한을 부여하지 마세요.setIamPolicy
권한을 부여받은 사용자는 권한을 변경하고 데이터를 제어할 수 있습니다. 객체와 버킷에 대한 관리 제어 권한을 위임할 때만setIamPolicy
권한을 사용해야 합니다.리소스의 관리 권한을 위임하세요. 관리 액세스 권한이 있는 개별 사용자가 그룹에서 탈퇴할 경우 다른 팀 구성원이 리소스를 계속 관리할 수 있는지 확인해야 합니다. 이를 수행하는 두 가지 일반적인 방법은 다음과 같습니다.
- 프로젝트의 Cloud SQL 관리자 역할을 개인이 아닌 그룹에 할당합니다.
- 프로젝트의 Cloud SQL 관리자 역할을 2명 이상의 개별 사용자에게 할당합니다.
다음 단계
- 액세스 제어 자세히 알아보기