데이터 민감도에 따라 IAM 액세스 제어

이 페이지에서는 리소스의 데이터 민감도에 따라 리소스에 대한 Identity and Access Management (IAM) 액세스 권한을 자동으로 부여하거나 거부하는 방법을 설명합니다.

Sensitive Data Protection 탐색 서비스를 구성하여 리소스의 계산된 민감도 수준을 기반으로 리소스에 태그를 자동으로 연결할 수 있습니다. 그런 다음 IAM 조건을 사용하여 민감도 수준 태그 키 또는 태그 값의 유무에 따라 리소스에 대한 액세스 권한을 부여하거나 거부할 수 있습니다.

조직의 데이터팀이 일상적인 작업에서 BigQuery 데이터를 자유롭게 복사하고 공유할 수 있도록 하려면 어떻게 해야 하나요? 하지만 이 데이터에 고객의 개인 식별 정보 (PII)가 포함되어 있는지 알 수 없습니다. 탐색을 실행하여 BigQuery 데이터의 민감도 수준을 분류할 수 있습니다. 그런 다음 데이터팀에 민감도가 낮은 데이터만 있는 BigQuery 테이블에만 액세스할 수 있도록 조건부 액세스 권한을 부여합니다.

Sensitive Data Protection에서 데이터 민감도를 계산하는 방법에 관한 자세한 내용은 데이터 위험 및 민감도 수준을 참고하세요.

태그를 사용하여 리소스에 대한 액세스를 제어하는 방법에 관한 자세한 내용은 IAM 문서의 태그 및 조건부 액세스를 참고하세요. 태그에 관한 일반적인 정보는 Resource Manager 문서의 태그 개요를 참고하세요.

민감도 수준 태그

이 문서에서는 민감도 수준 태그라는 용어를 리소스에 자동으로 연결하여 해당 리소스의 데이터에 대해 계산된 민감도 수준을 나타내는 태그를 나타내는 데 사용합니다.

이점

이 기능을 사용하면 다음 작업을 할 수 있습니다.

  • 리소스의 데이터 속성 및 분류를 기반으로 다양한 지원되는 리소스에서 액세스 제어를 자동화합니다. 자동화를 사용하면 조직, 폴더, 프로젝트의 데이터 증가와 변화에 대응할 수 있습니다.
  • 민감한 정보 보호에서 이러한 리소스를 프로파일링하고 분류할 때까지 지원되는 리소스에 대한 액세스를 제한합니다. 이 관행은 기본적으로 안전함 원칙에 따른 것입니다.
  • 데이터를 프로파일링할 때마다 민감도 수준 태그 값을 업데이트하도록 검색을 구성합니다. 따라서 리소스에 대한 사용자의 액세스 권한은 해당 리소스에 대해 계산된 데이터 민감도 수준이 변경될 때 자동으로 변경됩니다.
  • 탐색에서 리소스에 민감도 수준 태그가 있음을 감지하면 리소스의 계산된 데이터 위험 수준을 낮추도록 탐색을 구성합니다. 이 옵션을 사용하면 데이터 보안 및 개인 정보 보호 상태의 개선을 측정할 수 있습니다.

지원되는 리소스

이 기능을 사용하면 민감한 정보 보호에서 다음 수준으로 데이터에 태그를 자동으로 지정합니다.

  • BigQuery 테이블
  • Cloud SQL 인스턴스
  • Cloud Storage 버킷

기능 소개

다음은 데이터 민감도에 따라 리소스에 대한 액세스를 제어하는 대략적인 워크플로입니다. 이러한 작업은 동일한 사람이 수행할 필요가 없습니다.

  1. 민감도 수준 태그 만들기
  2. 민감도 수준 태그의 값을 기반으로 리소스에 조건부 액세스 권한 부여하기
  3. 탐색 구성에서 자동 태그 추가 사용 설정
  4. 서비스 에이전트에 민감도 수준 태그를 리소스에 연결할 권한 부여

필수 권한

필요한 권한은 수행할 작업에 따라 달라집니다.

이러한 권한을 얻으려면 관리자에게 리소스 계층 구조의 적절한 수준에서 추천 역할을 부여해 달라고 요청하세요.

태그 관리 권한

Resource Manager 문서의 태그 관리를 참고하세요.

리소스에 대한 조건부 액세스 권한 부여 권한

IAM 문서에서 필수 역할을 참고하세요.

탐색 구성 권한

데이터 프로필 구성 및 보기에 필요한 역할을 참고하세요.

민감도 수준 태그 만들기

이 태스크에서는 Sensitive Data Protection에서 데이터를 분류하는 데 사용하는 데이터 민감도 수준에 매핑되는 태그 값이 있는 태그 키를 만듭니다. 예를 들어 다음과 같은 태그 키와 태그 값을 사용할 수 있습니다.

  1. 태그 키를 sensitivity-level로 설정합니다.
  2. 다음 태그 값을 설정합니다.

    low
    민감도가 낮은 데이터에 연결할 태그 값
    moderate
    중간 민감도 데이터에 연결할 태그 값
    high
    민감도가 높은 데이터에 연결할 태그 값

    민감도 수준이 알 수 없는 리소스의 태그 값을 만들 수도 있습니다. 또는 이러한 리소스에 low, medium 또는 high 태그 값을 재사용할 수 있습니다.

  3. 다음 사항에 유의하세요. 다음 작업에서 다음 항목이 필요합니다.

    • 태그 키 ID(예: tagKeys/281478077849901)
    • 태그 키 값(예: tagValues/281479490918432)
    • 태그 값 경로(예: example-project/tag-key/tag-value1)

단순성을 위해 이 예에서는 태그 값과 민감도 수준 간에 일대일 매핑을 설정합니다. 실제로는 비즈니스 요구사항에 맞게 태그 값을 맞춤설정할 수 있습니다. 예를 들어 confidential, PII 또는 SPII (민감한 PII)과 같은 값을 사용할 수 있습니다.

민감한 정보 검색은 조직, 폴더, 프로젝트 수준에서 구성할 수 있습니다. 조직 수준 또는 폴더 수준 검색에 이 민감도 수준 태그를 사용하려면 조직 수준에서 이 태그를 만드는 것이 좋습니다.

태그를 만드는 방법에 관한 자세한 내용은 Resource Manager 문서의 태그 만들기 및 관리를 참고하세요.

민감도 수준 태그의 값을 기반으로 리소스에 조건부 액세스 권한 부여

이 태스크에서는 리소스에 연결된 민감도 수준 태그에 특정 값이 있는 경우에만 주 구성원에게 역할을 부여합니다. 예를 들어 moderatelow 태그 값이 있는 데이터에 대해서만 사용자에게 액세스 권한을 부여할 수 있습니다.

이 섹션에서는 조건 편집기에서 사용할 수 있도록 형식이 지정된 조건의 예시를 제공합니다. 조건 편집기에서는 CEL 구문을 사용하여 표현식을 수동으로 입력하는 텍스트 기반 인터페이스를 제공합니다. IAM 조건을 역할 바인딩에 연결하는 방법에 관한 자세한 내용은 IAM 문서의 조건부 역할 바인딩 관리를 참고하세요.

이 예시는 이 페이지의 민감도 수준 태그 만들기에 정의된 태그 지정 모델을 따릅니다.

민감도가 낮은 데이터에만 주 구성원 액세스 권한 부여

이 예에서는 리소스에 민감도가 낮은 데이터만 포함된 경우 리소스에 대한 액세스 권한을 부여합니다. 이 예를 사용하여 민감한 정보 검색이 해당 리소스에서 실행될 때까지 리소스에 대한 모든 액세스를 제한할 수도 있습니다.

resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY",
"tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY")

다음을 바꿉니다.

  • SENSITIVITY_LEVEL_TAG_KEY: 만든 민감도 수준 태그 키의 숫자 ID
  • TAG_VALUE_FOR_LOW_SENSITIVITY: 민감도가 낮은 데이터에 대해 만든 태그 값의 숫자 ID

중간 민감도 및 낮은 민감도 데이터에 대해서만 주 구성원에게 액세스 권한 부여

이 예에서는 리소스에 중간 민감도 또는 낮은 민감도 데이터만 포함된 경우 리소스에 대한 액세스 권한을 부여합니다. 두 조건 사이에 OR 연산자가 있습니다.

resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY") ||
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY")

다음을 바꿉니다.

  • SENSITIVITY_LEVEL_TAG_KEY: 만든 민감도 수준 태그 키의 숫자 ID
  • TAG_VALUE_FOR_LOW_SENSITIVITY: 민감도가 낮은 데이터에 대해 만든 태그 값의 숫자 ID
  • TAG_VALUE_FOR_MODERATE_SENSITIVITY: 중간 민감도 데이터에 대해 만든 태그 값의 숫자 ID

민감도 수준 태그가 있는 경우에만 주 구성원에게 액세스 권한 부여

예를 들어 민감도 수준 태그의 존재 여부에 따라 모든 IAM 액세스가 조건부여야 하는 조직 정책을 정의하려는 경우에 유용합니다. 이 예를 사용하여 민감한 정보 검색이 해당 리소스에서 실행될 때까지 리소스에 대한 모든 액세스를 제한할 수도 있습니다.

resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")

SENSITIVITY_LEVEL_TAG_KEY만든 민감도 수준 태그 키의 숫자 ID로 바꿉니다.

거부 정책 예시

리소스 태그와 함께 사용할 거부 정책을 구성하는 방법에 대한 자세한 내용은 거부 정책의 구조를 참고하세요. 지원되는 권한 목록은 거부 정책에서 지원되는 권한을 참고하세요.

민감도 수준 태그가 없는 경우 액세스 거부

다음 거부 정책 발췌 부분은 리소스에 민감도 수준 태그가 없는 경우 bigquery.googleapis.com/tables.get 권한을 거부합니다.

  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/group/data-team@example.com"
        ],
        "deniedPermissions": [
          "bigquery.googleapis.com/tables.get"
        ],
        "denialCondition": {
          "title": "Resource has no key",
          "expression": "!resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")"
        }
      }
    }
  ]

SENSITIVITY_LEVEL_TAG_KEY만든 민감도 수준 태그 키의 숫자 ID로 바꿉니다.

중간 수준 또는 매우 민감한 정보가 있는 경우 액세스 거부

다음 거부 정책 발췌 부분은 리소스에 중간 심각도 또는 높음 심각도 데이터가 있는 경우 bigquery.googleapis.com/tables.get 권한을 거부합니다.

  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/group/data-team@example.com"
        ],
        "deniedPermissions": [
          "bigquery.googleapis.com/tables.get"
        ],
        "denialCondition": {
          "title": "Resource has moderate or high data sensitivity",
          "expression": "resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY") || resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_HIGH_SENSITIVITY")"
        }
      }
    }
  ]

다음을 바꿉니다.

  • SENSITIVITY_LEVEL_TAG_KEY: 만든 민감도 수준 태그 키의 숫자 ID
  • TAG_VALUE_FOR_MODERATE_SENSITIVITY: 중간 민감도 데이터에 대해 만든 태그 값의 숫자 ID
  • TAG_VALUE_FOR_HIGH_SENSITIVITY: 민감도가 높은 데이터에 대해 만든 태그 값의 숫자 ID

검색 구성에서 자동 태그 추가 사용 설정

이 작업에서는 리소스 태그 지정 작업을 사용 설정합니다. 이 작업은 계산된 민감도 수준에 따라 데이터에 자동으로 태그를 지정하라는 지시를 민감한 정보 보호에 전달합니다. 이 작업은 검색 스캔 구성을 만들거나 수정할 때 실행합니다.

계산된 민감도 수준에 따라 리소스에 자동으로 태그를 지정하려면 다음 단계를 따르세요.

  1. 리소스 태그 지정 옵션을 사용 설정합니다.
  2. 각 민감도 수준 (높음, 중간, 낮음, 알 수 없음)에 대해 지정된 민감도 수준에 대해 만든 태그 값의 경로를 입력합니다.

    민감도 수준을 건너뛰면 해당 수준에 태그가 연결되지 않습니다.

  3. 민감도 수준 태그가 있는 경우 리소스의 데이터 위험 수준을 자동으로 낮추려면 리소스에 태그가 적용되면 프로필의 데이터 위험을 '낮음'으로 낮춤을 선택합니다. 이 옵션을 사용하면 데이터 보안 및 개인 정보 보호 상태의 개선을 측정할 수 있습니다.

  4. 다음 옵션 중 하나 또는 둘 다를 선택합니다.

    • 리소스가 처음 프로파일링되면 리소스를 태그합니다.
    • 프로필이 업데이트되면 리소스를 태그합니다. Sensitive Data Protection에서 후속 검색 실행 시 민감도 수준 태그 값을 덮어쓰도록 하려면 이 옵션을 선택합니다. 따라서 리소스에 대한 계산된 데이터 민감도 수준이 증가하거나 감소함에 따라 사용자의 리소스 액세스 권한이 자동으로 변경됩니다.

      검색 서비스가 리소스에 연결한 민감도 수준 태그 값을 수동으로 업데이트하려는 경우 이 옵션을 선택하지 마세요. 이 옵션을 선택하면 Sensitive Data Protection에서 수동 업데이트를 덮어쓸 수 있습니다.

민감한 정보 검색은 조직, 폴더, 프로젝트 수준에서 구성할 수 있습니다. 조직 수준 검색에 이 민감도 수준 태그를 사용하고자 하며 프로젝트 수준 검색 작업이 조직 수준 검색에서 설정된 태그 값을 덮어쓰지 않도록 하려면 조직 수준 검색 구성의 서비스 에이전트만 이 태그를 리소스에 연결할 수 있는지 확인하세요. 태그 수준에서 역할을 부여하는 방법에 대한 자세한 내용은 Resource Manager 문서에서 태그에 대한 액세스 관리를 참고하세요.

오류 문제 해결하기

이 섹션에서는 이 기능을 사용할 때 발생할 수 있는 오류와 이러한 오류를 해결하는 방법을 설명합니다.

최대 태그 수 초과

각 리소스는 최대 50개의 키-값 쌍을 연결할 수 있습니다. 이미 최대 태그 수가 있는 리소스에 태그를 지정하려고 하면 프로필 생성이 실패합니다. 다음 오류가 발생합니다.

The resource RESOURCE_NAME cannot be tagged because there are
too many existing tags bound to the resource. You can either disable automatic
tagging or delete at least one tag binding from the resource.

이 문제를 해결하려면 리소스에서 태그를 분리합니다. 자세한 내용은 다음을 참조하세요.

또는 탐색 스캔 구성에서 리소스 태그 지정 작업을 사용 중지합니다.

태그 값이 삭제되거나 이름이 변경되었는데 검색에서 리소스에 태그를 연결하려고 시도함

민감도 수준 태그의 태그 값이 삭제되거나 이름이 변경되고 민감한 정보 보호에서 해당 태그 값을 프로파일링된 리소스에 연결하려고 하면 다음 오류가 발생합니다.

Tag value TAG_VALUE not found, it has possibly been either deleted or renamed.

이 문제를 해결하려면 다음 중 한 가지를 따르세요.

  • 태그가 삭제된 경우 삭제된 태그 값을 다시 만듭니다. 다시 만든 태그 값이 디스커버리 스캔 구성에서 참조되는 태그 값과 일치하는지 확인합니다. 자세한 내용은 이 페이지의 민감도 수준 태그 만들기를 참고하세요.
  • 태그 값의 이름이 변경된 경우 태그 값의 새 이름을 사용하도록 디스커버리 스캔 구성을 업데이트합니다.

서비스 에이전트에 권한이 없음

서비스 에이전트에 프로파일링된 리소스에 민감도 수준 태그를 연결하는 데 필요한 권한이 없으면 다음 오류가 발생합니다.

The DLP service account SERVICE_AGENT_NAME is missing
permissions needed for attaching tags to resources. Check that the role
'resourcemanager.tagUser' is granted to the DLP service account.

이 문제를 해결하려면 다음 단계를 따르세요.

  1. 디스커버리 스캔 구성과 연결된 서비스 에이전트 ID를 가져옵니다.

    1. 검색 스캔 구성 목록으로 이동합니다.

      디스커버리 스캔 구성으로 이동

    2. 스캔 구성을 선택합니다.
    3. 세부정보 페이지가 열리면 서비스 에이전트 ID를 복사합니다. 이 ID는 이메일 주소 형식입니다.
  2. 서비스 에이전트에 민감도 수준 태그에 대한 태그 사용자 역할(roles/resourcemanager.tagUser)을 부여합니다.

    또는 민감도 수준 태그에 맞춤 역할을 부여할 수 있습니다. 커스텀 역할에는 태그 결합을 관리하기 위한 resourcemanager.tagValues.get 권한과 리소스별 권한이 있어야 합니다. 리소스별 createTagBinding, deleteTagBinding, listEffectiveTags 권한이 필요합니다. 예를 들어 BigQuery 테이블의 경우 다음이 필요합니다.

    • resourcemanager.tagValues.get
    • bigquery.tables.createTagBinding
    • bigquery.tables.deleteTagBinding
    • bigquery.tables.listEffectiveTags

    태그 수준에서 역할을 부여하는 방법에 관한 자세한 내용은 Resource Manager 문서의 태그 액세스 관리를 참고하세요.

다음 단계