이 문서에서는 Identity and Access Management(IAM) 역할과 권한을 사용하여 Logging API, 로그 탐색기, Google Cloud CLI의 로그 데이터에 대한 액세스를 제어하는 방법을 설명합니다.
개요
IAM 권한 및 역할에 따라 Logging API, 로그 탐색기, Google Cloud CLI의 로그 데이터에 액세스할 수 있는지 여부가 결정됩니다.
역할은 권한 모음입니다. 주 구성원에게 직접 권한을 부여할 수 없지만 대신 역할을 부여합니다. 주 구성원에게 역할을 부여하면 해당 역할에 포함된 모든 권한이 부여됩니다. 같은 주 구성원에 여러 역할을 부여할 수도 있습니다.
Google Cloud 프로젝트, 폴더, 버킷 또는 조직과 같은 Google Cloud 리소스 내에서 Logging을 사용하려면 주 구성원에게 적절한 권한이 포함된 IAM 역할이 있어야 합니다.
사전 정의된 역할
IAM은 특정 Google Cloud 리소스에 대한 세분화된 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지하도록 사전 정의된 역할을 부여합니다. Google Cloud는 이러한 역할을 생성 및 유지하고 Logging에서 새 기능을 추가하는 경우와 같이 필요에 따라 자동으로 권한을 업데이트합니다.
다음 표에서는 Logging을 위해 사전 정의된 역할을 보여줍니다. 이 표에서는 각 역할에 대해 역할 제목, 설명, 포함된 권한, 역할을 부여할 수 있는 최저 수준의 리소스 유형을 보여줍니다. Google Cloud 프로젝트 수준에서 사전 정의된 역할을 부여하거나 또는 대부분의 경우 계층 구조에서 더 높은 유형을 부여할 수 있습니다. 버킷의 로그 뷰에 대한 로그 뷰 접근자 역할을 제한하려면 IAM 조건에 대한 리소스 속성을 사용합니다.
역할에 포함된 모든 개별 권한의 목록을 가져오려면 역할 메타데이터 가져오기를 참조하세요.
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
|
SQL Alert Writer Beta( Ability to write SQL Alerts. |
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
다음 섹션에서는 주 구성원의 사용 사례에 어떤 역할을 적용할지 판단하는 데 도움이 되는 추가적인 정보를 제공합니다.
Logging 역할
사용자가 Logging에서 모든 작업을 수행할 수 있도록 하려면 Logging 관리자(
roles/logging.admin
) 역할을 부여하세요.사용자가 로깅 구성을 만들고 수정할 수 있도록 허용하려면 로그 구성 작성자(
roles/logging.configWriter
) 역할을 부여하세요. 이 역할을 사용하면 다음을 만들거나 수정할 수 있습니다.이 역할로는 로그 기반 측정항목 또는 로그 기반 알림 정책을 만들 수 없습니다. 이러한 작업에 필요한 역할에 대한 자세한 내용은 로그 기반 측정항목 권한 및 로그 기반 알림 정책 권한을 참고하세요.
사용자가
_Required
및_Default
버킷에서 로그를 읽거나 로그 탐색기 및 로그 애널리틱스 페이지를 사용할 수 있도록 하려면 다음 역할 중 하나를 부여하세요._Required
버킷의 모든 로그에 액세스하고_Default
버킷의_Default
뷰에 액세스하려면 로그 뷰어(roles/logging.viewer
) 역할을 부여합니다.- 데이터 액세스 로그를 포함하여
_Required
와_Default
버킷의 모든 로그에 액세스하려면 비공개 로그 뷰어(roles/logging.privateLogViewer
) 역할을 부여합니다.
사용자가 프로젝트에 있는 모든 로그 뷰에서 로그를 읽을 수 있게 하려면 프로젝트에 대한
roles/logging.viewAccessor
의 IAM 역할을 부여합니다.사용자가 특정 로그 뷰에서 로그만 읽을 수 있도록 하려면 다음 두 가지 옵션이 있습니다.
로그 뷰에 대한 IAM 정책을 만든 후 주 구성원에 로그 뷰에 대한 액세스 권한을 부여하는 IAM 바인딩을 해당 정책에 추가합니다.
로그 뷰가 포함된 프로젝트에 대한
roles/logging.viewAccessor
IAM 역할을 주 구성원에게 부여하되 IAM 조건을 연결하여 해당 로그 뷰에 대한 권한 부여를 제한합니다.
로그 뷰를 만들고 액세스 권한을 부여하는 방법에 대한 자세한 내용은 로그 버킷에서 로그 뷰 구성을 참고하세요.
사용자에게 주어진 로그 버킷의 제한된
LogEntry
필드(있는 경우)에 대한 액세스 권한을 주려면 로그 필드 접근자(roles/logging.fieldAccessor
) 역할을 부여합니다. 자세한 내용은 필드 수준 액세스 구성을 참조하세요.사용자가 Logging API를 사용하여 로그를 작성할 수 있게 하려면 로그 작성자(
roles/logging.logWriter
) 역할을 부여합니다. 이 역할은 보기 권한을 부여하지 않습니다.싱크의 서비스 계정이 다른 Google Cloud 프로젝트의 버킷으로 로그를 라우팅하도록 하려면 서비스 계정에 로그 버킷 작성자(
roles/logging.bucketWriter
) 역할을 부여합니다. 서비스 계정에 권한 부여에 대한 자세한 내용은 대상 권한 설정을 참조하세요.
프로젝트 수준 역할
대부분의 Google Cloud 서비스에 대한 뷰 액세스 권한을 부여하려면 뷰어(
roles/viewer
) 역할을 부여하세요.이 역할에는 로그 뷰어(
roles/logging.viewer
) 역할에 부여되는 모든 권한이 포함됩니다.대부분의 Google Cloud 서비스에 대한 편집자 액세스 권한을 부여하려면 편집자(
roles/editor
) 역할을 부여하세요.이 역할에는 로그 뷰어(
roles/logging.viewer
) 역할에 부여되는 모든 권한과 로그 항목을 작성하고, 로그를 삭제하고, 로그 기반 측정항목을 만들 수 있는 권한이 포함됩니다. 하지만 이 역할에서는 사용자가 싱크를 만들거나,_Default
버킷에 있는 데이터 액세스 감사 로그를 읽거나, 사용자 정의 로그 버킷에 있는 로그를 읽을 수 없습니다.대부분의 Google Cloud 서비스에 대한 전체 액세스 권한을 부여하려면 소유자(
roles/owner
) 역할을 부여하세요.
역할 부여
주 구성원에게 역할을 부여하는 방법은 액세스 권한 부여, 변경, 취소를 참조하세요.
같은 사용자에 여러 역할을 부여할 수도 있습니다. 역할에 포함된 권한 목록을 보려면 역할 메타데이터 가져오기를 참조하세요.
Google Cloud 리소스에 액세스하려고 하지만 필요한 권한이 없으면 리소스의 소유자로 나와 있는 주 구성원에게 문의하세요.
커스텀 역할
Logging 권한이 있는 맞춤 역할을 만들려면 다음과 같이 하세요.
Logging API에 대한 권한을 부여하는 역할의 경우 API 권한에서 권한을 선택한 후 안내를 따라 맞춤 역할을 만듭니다.
로그 탐색기를 사용할 수 있는 권한을 부여하는 역할의 경우 Console 권한의 권한 그룹 중에서 선택한 후 안내를 따라 맞춤 역할을 만듭니다.
gcloud logging
을 사용할 수 있는 권한을 부여하는 역할의 경우 이 페이지의 명령줄 권한 섹션을 참조한 후 안내를 따라 맞춤 역할을 만듭니다.
맞춤 역할에 대한 자세한 내용은 IAM 맞춤 역할 이해를 참조하세요.
Google Cloud 콘솔에 대한 권한
다음 표에는 로그 탐색기를 사용하는 데 필요한 권한이 나와 있습니다.
이 표에서 a.b.[x,y]
는 a.b.x
및 a.b.y
를 의미합니다.
콘솔 활동 | 필수 권한 |
---|---|
최소한의 읽기 전용 액세스 | logging.logEntries.list |
데이터 액세스 감사 로그 보기 | logging.privateLogEntries.list |
로그 기반 측정항목 보기 | logging.logMetrics.[list, get] |
싱크 보기 | logging.sinks.[list, get] |
로그 사용량 보기 | logging.usage.get |
로그 범위 목록 및 보기 | logging.logScopes.[get, list] |
기본 로그 범위 보기 | observability.scopes.get |
로그 제외 | logging.exclusions.[list, create, get, update, delete] |
싱크 만들기 및 사용 | logging.sinks.[list, create, get, update, delete] |
로그 기반 측정항목 만들기 | logging.logMetrics.[list, create, get, update, delete] |
비공개 쿼리 저장 및 사용 | logging.queries.usePrivate |
공유 쿼리 저장 및 사용 | logging.queries.[share, getShared, updateShared, deleteShared,
listShared] |
최근 쿼리 사용 | logging.queries.[create, list] |
로그 범위 만들기 및 관리 | logging.logScopes.[create, delete, get, list, update] |
기본 로그 범위 설정 및 관리 | observability.scopes.[get, update] |
명령줄에 대한 권한
gcloud logging
명령어는 IAM 권한에 따라 제어됩니다.
gcloud logging
명령어를 사용하려면 주 구성원에게 serviceusage.services.use
권한이 있어야 합니다.
또한 주 구성원은 로그 리소스와 사용 사례에 해당하는 IAM 역할이 있어야 합니다. 자세한 내용은 명령줄 인터페이스 권한을 참조하세요.
연결된 BigQuery 데이터 세트에 대한 권한
다음 목록은 연결된 BigQuery 데이터 세트를 관리하기 위한 사전 정의된 역할과 해당 권한을 설명합니다.
Logging 관리자(
roles/logging.admin
) 및 로그 구성 작성자(roles/logging.configWriter
) 역할에는 다음 권한이 포함됩니다.logging.links.list
logging.links.create
logging.links.get
logging.links.delete
작업로그 링크 접근자(
roles/logging.linkViewer
), 비공개 로그 뷰어(roles/logging.privateLogViewer
) 및 로그 뷰어(roles/logging.viewer
) 역할에는 다음 권한이 포함됩니다.logging.links.list
logging.links.get
앞에서 나열한 역할 및 권한은 Cloud Logging을 사용하여 연결된 데이터 세트를 관리하는 경우에만 적용됩니다. BigQuery 인터페이스를 사용하여 데이터 세트를 관리하는 경우 별도의 BigQuery 역할 및 권한이 필요할 수 있습니다. 자세한 내용은 BigQuery의 IAM으로 액세스 제어를 참조하세요.
쿼리 저장 권한
이 섹션에서는 사전 정의된 역할 및 로그 탐색기 및 로그 애널리틱스 페이지의 쿼리 저장, 공유, 사용 권한에 대해 설명합니다 자신에게만 표시되는 비공개 저장된 쿼리를 사용하는 것과 Google Cloud 프로젝트의 다른 구성원과 공유되는 저장된 쿼리를 사용하는 것은 다른 권한이 필요합니다.
-
쿼리를 빌드하거나, 비공개 저장된 쿼리를 사용하거나, 공유 쿼리를 나열하고 가져오기 위해 로그 데이터를 읽는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 로그 뷰어(
roles/logging.viewer
) IAM 역할을 부여해 달라고 요청하세요.이 사전 정의된 역할에는 로그 데이터를 읽어 쿼리를 빌드하거나, 비공개 저장된 쿼리를 사용하거나, 공유 쿼리를 나열하고 가져오는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
로그 데이터를 읽어 쿼리를 빌드하거나, 비공개 저장된 쿼리를 사용하거나, 공유 쿼리를 나열하고 가져오려면 다음 권한이 필요합니다.
-
비공개 저장된 쿼리 사용:
logging.queries.usePrivate
-
공유 쿼리 나열 및 가져오기:
-
logging.queries.listShared
-
logging.queries.getShared
-
-
비공개 저장된 쿼리 사용:
-
공유 쿼리를 생성, 업데이트, 삭제하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Logging 관리자(
roles/logging.admin
) IAM 역할을 부여해 달라고 요청하세요.이 사전 정의된 역할에는 공유 쿼리를 생성, 업데이트, 삭제하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
공유 쿼리를 만들고, 업데이트, 삭제하려면 다음 권한이 필요합니다.
-
logging.queries.share
-
logging.queries.updateShared
-
logging.queries.deleteShared
-
로그 라우팅에 대한 권한
로그를 라우팅하기 위한 싱크를 만들고 관리할 때 액세스 제어를 설정하는 방법에 대한 자세한 내용은 대상 권한 설정을 참조하세요.
제외 필터 관리는 싱크 구성과 통합됩니다. 제외 필터 설정을 포함하여 싱크 관리와 관련된 모든 권한이 logging.sinks.*
권한에 포함됩니다. 제외 필터를 관리할 수 있는 권한이 포함된 커스텀 역할을 만들 때 logging.exclusions.*
권한을 추가하는 대신 logging.sinks.*
권한을 역할에 추가합니다.
로그 항목이 지원 대상으로 라우팅되면 로그 복사본에 대한 액세스는 대상(Cloud Storage, BigQuery 또는 Pub/Sub)에서 IAM 권한과 역할에 의해 전적으로 제어됩니다.
로그 기반 측정항목에 대한 권한
다음은 주 구성원이 로그 기반 측정항목에 액세스하기 위해 필요한 일반적인 역할 및 권한을 요약해서 보여줍니다.
로그 구성 작성자(
roles/logging.configWriter
) 역할을 통해 주 구성원은 로그 기반 측정항목을 나열, 만들기, 가져오기, 업데이트 및 삭제할 수 있습니다.로그 뷰어(
roles/logging.viewer
) 역할에는 기존 측정항목을 볼 수 있는 권한이 포함됩니다. 특히 주 구성원이 기존 측정항목을 보려면logging.logMetrics.get
및logging.logMetrics.list
권한이 필요합니다.모니터링 뷰어(
roles/monitoring.viewer
) 역할에는 TimeSeries 데이터를 읽을 수 있는 권한이 포함되어 있습니다. 특히 주 구성원이 시계열 데이터를 읽으려면monitoring.timeSeries.list
권한이 필요합니다.Logging 관리자(
roles/logging.admin
), 프로젝트 편집자(roles/editor
), 프로젝트 소유자(roles/owner
) 역할에는 로그 기반 측정항목을 만들 수 있는 권한이 포함되어 있습니다. 특히 주 구성원이 로그 기반 측정항목을 만들려면logging.logMetrics.create
권한이 필요합니다.
로그 기반 알림 정책에 대한 권한
로그 기반 알림 정책을 만들고 관리하려면 주 구성원에게 다음과 같은 Logging 및 Monitoring 역할과 권한이 필요합니다.
-
Monitoring에서 로그 기반 알림 정책을 만들고 연관된 Logging 알림 규칙을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.
-
모니터링 경고 정책 편집자(
roles/monitoring.alertPolicyEditor
) -
로그 구성 작성자(
roles/logging.configWriter
) 역할
이러한 사전 정의된 역할에는 Monitoring에서 로그 기반 알림 정책을 만들고 연관된 Logging 알림 규칙을 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
Monitoring에서 로그 기반 알림 정책을 만들고 연관된 Logging 알림 규칙을 만들려면 다음 권한이 필요합니다.
-
monitoring.alertPolicies.create
-
logging.notificationRules.create
-
모니터링 경고 정책 편집자(
Google Cloud CLI에서 알림 정책을 만들 경우 다음 역할 또는 권한도 필요합니다.
-
Google Cloud CLI를 사용하여 알림 정책을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 서비스 사용량 소비자(
roles/serviceusage.serviceUsageConsumer
) IAM 역할을 부여해 달라고 요청하세요.이 사전 정의된 역할에는 Google Cloud CLI를 사용하여 알림 정책을 만드는 데 필요한
serviceusage.services.use
권한이 포함되어 있습니다.
Google Cloud 프로젝트에 이미 알림 채널이 있으면 추가 역할 또는 권한 없이 기존 채널을 사용하도록 알림 정책을 구성할 수 있습니다. 하지만 로그 기반 알림 정책에 대해 알림 채널을 만들어야 하는 경우에는 다음 역할 또는 권한이 필요합니다.
-
로그 기반 알림 정책에 대해 알림 채널을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 Monitoring 알림 채널 편집자(
roles/monitoring.notificationChannelEditor
) IAM 역할을 부여해 달라고 요청하세요.이 사전 정의된 역할에는 로그 기반 알림 정책에 대해 알림 채널을 만드는 데 필요한
monitoring.notificationChannels.create
권한이 포함되어 있습니다.
Logging 액세스 범위
액세스 범위는 Compute Engine VM 인스턴스에서 서비스 계정에 권한을 지정하는 기존 방법입니다.
Logging API에는 다음과 같은 액세스 범위가 적용됩니다.
액세스 범위 | 부여된 권한 |
---|---|
https://www.googleapis.com/auth/logging.read | roles/logging.viewer |
https://www.googleapis.com/auth/logging.write | roles/logging.logWriter |
https://www.googleapis.com/auth/logging.admin | Logging API에 대한 전체 액세스 권한 |
https://www.googleapis.com/auth/cloud-platform | Logging API와 기타 사용 설정된 모든 Google Cloud API에 대한 전체 액세스 권한 |
이 기존 메서드를 사용하여 서비스 계정의 액세스 수준을 설정하는 방법은 서비스 계정 권한을 참조하세요.