액세스 바인딩을 사용하여 사용자 그룹에 정책 적용

액세스 바인딩을 사용하여 사용자 그룹이 액세스할 수 있는 애플리케이션과 리소스를 제어할 수 있습니다. 액세스 바인딩은 사용자 그룹에 액세스 수준 및 세션 제어를 적용하는 방법을 지정합니다. 모든 애플리케이션에 동일한 액세스 수준 및 세션 제어를 적용하거나 개별 애플리케이션에 특정 동작을 정의할 수 있습니다.

모든 항목을 올바르게 구성했는지 확인하려면 정책을 적용하기 전에 테스트할 수 있습니다.

액세스 바인딩을 사용할 때는 다음 동작에 유의하세요.

  • 사용자 그룹에는 액세스 결합이 하나만 있을 수 있습니다.
  • 사용자가 여러 그룹에 속한 경우 정책에서 허용하는 경우 사용자에게 액세스 권한이 부여됩니다 (AND가 아닌 OR).
  • 세션 제어의 경우 가장 최근에 생성된 액세스 결합만 적용됩니다.

모든 애플리케이션에 단일 구성 사용

이 방법은 사용자 그룹에서 액세스하는 모든 애플리케이션에 동일한 액세스 수준과 세션 제어를 적용합니다.

프로덕션에 구현하기 전에 정책을 테스트 실행으로 테스트하거나 소규모 테스트 그룹에 적용하는 것이 좋습니다.

gcloud

액세스 바인딩을 만듭니다.

gcloud access-context-manager cloud-bindings create \
     --group-key GROUP_ID
     --organization ORG_ID
     --level DEFAULT_ACCESS_LEVEL
  [  --session-length=DEFAULT_SESSION_LENGTH                ]
  [  --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD  ]

다음을 바꿉니다.

  • GROUP_ID: 그룹 ID입니다. 사용 가능한 그룹 ID가 없으면 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.
  • ORG_ID: 조직 ID입니다.
  • DEFAULT_ACCESS_LEVEL: 선택사항인 액세스 수준 이름으로, accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다. POLICY_ID를 액세스 정책 ID로 바꾸고 ACCESS_LEVEL_NAME을 액세스 수준 이름으로 바꿉니다.
  • DEFAULT_SESSION_LENGTH: ISO 8601 시간 형식을 사용하는 선택적 세션 시간입니다(예: 30분의 경우 30m, 2시간의 경우 2h).
  • DEFAULT_SESSION_REAUTH_METHOD: 사용자에게 신원을 다시 확인하도록 요청하는 선택적 메서드로 다음 중 하나여야 합니다.
    • LOGIN: MFA 또는 기타 Workspace 정의 요소를 포함할 수 있는 표준 로그인을 적용합니다.
    • PASSWORD: 다른 요소가 정의되어 있더라도 비밀번호만 필요합니다. 외부 IdP를 사용하여 비밀번호를 관리하는 경우 사용자는 IdP로 리디렉션됩니다. IdP 세션이 활성 상태인 경우 사용자는 암시적으로 다시 인증됩니다. IdP가 운영되지 않는 경우 사용자는 IdP를 통해 로그인해야 합니다.
    • SECURITY_KEY: 하드웨어 보안 키가 필요합니다.

API

  1. JSON 본문을 만듭니다.

    {
      "groupKey": "GROUP_ID",
      "accessLevels": [
        "DEFAULT_ACCESS_LEVEL"
      ],
      // optional:
      "sessionSettings": {
        "sessionLength": "DEFAULT_SESSION_LENGTH",
        "sessionReauthMethod": "DEFAULT_SESSION_REAUTH_METHOD"
      }
    }
    

    다음을 바꿉니다.

    • GROUP_ID: 그룹 ID입니다. 사용 가능한 그룹 ID가 없으면 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.
    • DEFAULT_ACCESS_LEVEL: 선택사항인 액세스 수준 이름으로, accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다. POLICY_ID를 액세스 정책 ID로 바꾸고 ACCESS_LEVEL_NAME을 액세스 수준 이름으로 바꿉니다.
    • DEFAULT_SESSION_LENGTH: ISO 8601 시간 형식을 사용하는 선택적 세션 시간입니다(예: 30분의 경우 30m, 2시간의 경우 2h).
    • DEFAULT_SESSION_REAUTH_METHOD: 사용자에게 신원을 다시 확인하도록 요청하는 선택적 메서드로 다음 중 하나여야 합니다.
      • LOGIN: MFA 또는 기타 Workspace 정의 요소를 포함할 수 있는 표준 로그인을 적용합니다.
      • PASSWORD: 다른 요소가 정의되어 있더라도 비밀번호만 필요합니다. 외부 IdP를 사용하여 비밀번호를 관리하는 경우 사용자는 IdP로 리디렉션됩니다. IdP 세션이 활성 상태인 경우 사용자는 암시적으로 다시 인증됩니다. IdP가 운영되지 않는 경우 사용자는 IdP를 통해 로그인해야 합니다.
      • SECURITY_KEY: 하드웨어 보안 키가 필요합니다.
  2. POST 요청을 전송합니다.

    POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    ORG_IDCloud 액세스 바인딩 관리자 역할을 만들 때 사용한 조직의 ID입니다. access-context-manager/organization 속성이 설정되지 않았다면 선택사항인 --organization 플래그의 ORG_ID를 Cloud 액세스 Binding Admin 역할을 만들 때 사용한 조직의 ID로 바꿉니다.

성공하면 JSON 객체의 표현이 반환됩니다. 문제가 있으면 오류 메시지가 표시됩니다.

특정 애플리케이션의 구성 정의

이 메서드를 사용하면 애플리케이션마다 서로 다른 액세스 수준과 세션 제어를 적용할 수 있습니다. 특정 구성이 없는 애플리케이션에 기본 규칙을 설정할 수도 있습니다. 이 메서드는 다음을 수행할 때 유용합니다.

  • 특정 애플리케이션에만 정책을 적용합니다.
  • 일반 정책을 만들되 일부 애플리케이션은 제외합니다.

gcloud

  1. scopedAccessSettings 목록 내의 범위 항목 목록이 포함된 YAML 형식의 바인딩 파일을 만듭니다. 특정 액세스 수준에 매핑하려는 각 애플리케이션에 clientScope 항목을 포함합니다.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID
      activeSettings:
        accessLevels:
        - ACCESS_LEVEL_A
        sessionSettings:
        - sessionLength: SESSION_LENGTH
          sessionReauthMethod: SESSION_REAUTH_METHOD
          sessionLengthEnabled: true
    - scope:
        clientScope:
          restrictedClientApplication:
            #
            # because this app is specified by `name`,
            # it won't work with sessionSettings.
            #
            # if you add sessionSettings, make sure to
            # replace the `name` key with `clientId`,
            # and use the OAuth client ID as the value.
            #
            name: CLIENT_NAME
      activeSettings:
        accessLevels:
        - ACCESS_LEVEL_B
    

    다음을 바꿉니다.

    • CLIENT_ID: OAuth 클라이언트 ID입니다. 애플리케이션에 sessionSettings가 포함된 경우 clientId를 사용해야 합니다.
    • ACCESS_LEVEL_A: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
    • SESSION_LENGTH: ISO 8601 시간 형식을 사용한 세션 시간입니다(예: 30분의 경우 30m, 2시간의 경우 2h).
    • SESSION_REAUTH_METHOD: 사용자에게 신원을 다시 인증하도록 요청하는 선택적 메서드로, 다음 중 하나여야 합니다.

      • LOGIN: MFA 또는 기타 Workspace 정의 요소를 포함할 수 있는 표준 로그인을 적용합니다.
      • PASSWORD: 다른 요소가 정의되어 있더라도 비밀번호만 필요합니다. 외부 IdP를 사용하여 비밀번호를 관리하는 경우 사용자는 IdP로 리디렉션됩니다. IdP 세션이 활성 상태이면 사용자는 암시적으로 다시 인증됩니다. IdP가 운영되지 않는 경우 사용자는 IdP를 통해 로그인해야 합니다.
      • SECURITY_KEY: 하드웨어 보안 키가 필요합니다.
    • CLIENT_NAME: 클라이언트 이름입니다. 애플리케이션에 sessionSettings가 포함된 경우 클라이언트 이름을 사용할 수 없습니다. 대신 OAuth 클라이언트 ID를 사용하세요.

    • ACCESS_LEVEL_B: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.

    YAML 파일에 정의되지 않은 애플리케이션의 기본 액세스 수준을 설정하려면 --level 인수를 사용하세요. YAML 파일은 애플리케이션별 설정 (scopedAccessSettings)만 지원합니다.

  2. 액세스 바인딩을 만듭니다.

    gcloud access-context-manager cloud-bindings create
        --organization ORG_ID
        --group-key GROUP_ID
        --binding-file BINDING_FILE_PATH
      [  --level DEFAULT_ACCESS_LEVEL ]
      [  --session-length=DEFAULT_SESSION_LENGTH                ]
      [  --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD  ]
    

    다음을 바꿉니다.

    • ORG_ID: 조직 ID입니다.
    • GROUP_ID: 그룹 ID입니다. 사용 가능한 그룹 ID가 없으면 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.
    • BINDING_FILE_PATH: 액세스 바인딩 스키마가 포함된 YAML 파일의 경로입니다. 바인딩 파일은 scopedAccessSettings만 지원합니다.
    • DEFAULT_ACCESS_LEVEL: 선택사항인 액세스 수준 이름으로, accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다. POLICY_ID를 액세스 정책 ID로 바꾸고 ACCESS_LEVEL_NAME을 액세스 수준 이름으로 바꿉니다.
    • DEFAULT_SESSION_LENGTH: ISO 8601 시간 형식을 사용하는 선택적 세션 시간입니다(예: 30분의 경우 30m, 2시간의 경우 2h).
    • DEFAULT_SESSION_REAUTH_METHOD: 사용자에게 신원을 다시 확인하도록 요청하는 선택적 메서드로 다음 중 하나여야 합니다.
      • LOGIN: MFA 또는 기타 Workspace 정의 요소를 포함할 수 있는 표준 로그인을 적용합니다.
      • PASSWORD: 다른 요소가 정의되어 있더라도 비밀번호만 필요합니다. 외부 IdP를 사용하여 비밀번호를 관리하는 경우 사용자는 IdP로 리디렉션됩니다. IdP 세션이 활성 상태인 경우 사용자는 암시적으로 다시 인증됩니다. IdP가 운영되지 않는 경우 사용자는 IdP를 통해 로그인해야 합니다.
      • SECURITY_KEY: 하드웨어 보안 키가 필요합니다.

--level--binding-file 인수가 함께 작동하는 방식

  • --binding-file만 사용하는 경우 파일의 애플리케이션에만 정책이 적용됩니다.
  • --level만 사용하는 경우 액세스 수준이 모든 애플리케이션에 적용됩니다.
  • 둘 다 사용하는 경우 YAML 파일의 규칙이 우선 적용됩니다. --level 값은 파일에 나열되지 않은 모든 애플리케이션에 적용됩니다.

세션 관리 컨트롤 사용하기

  • 모든 애플리케이션에 기본 세션 제어를 설정하려면 --session-length--session-reauth-method를 사용하세요.
  • YAML 파일에서 세션 제어도 정의하면 해당 세션 제어가 특정 애플리케이션의 기본 설정을 재정의합니다.
  • --session-length--session-reauth-method를 함께 사용해야 합니다.

API

JSON 본문을 만듭니다.

{
  "groupKey": "GROUP_ID",
   //
   // Optional; if specified, all applications that aren't defined in
   // scopedAccessSettings have these access levels applied.
   //
   // If more than one access level is specified, the user is
   // granted access if any one resolves to TRUE (OR logic, not AND).
   //
   // If you omit this key entirely, then no policy enforcement is
   // applied by default.
   //
  "accessLevels": [
    "DEFAULT_ACCESS_LEVEL"
  ],
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "CLIENT_ID"
          }
        }
      },
      "activeSettings": {
        "accessLevels": [
          "ACCESS_LEVEL_A"
        ],
        "sessionSettings": [
          {
            "sessionLength": "SESSION_LENGTH",
            "sessionReauthMethod": "SESSION_REAUTH_METHOD",
            "sessionLengthEnabled": true
          }
        ]
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "CLIENT_NAME"
          }
        },
        "activeSettings": {
          "accessLevels": [
            "ACCESS_LEVEL_B"
          ]
        }
      }
    }
  ]
}

다음을 바꿉니다.

  • GROUP_ID: 그룹 ID입니다. 사용 가능한 그룹 ID가 없으면 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.
  • DEFAULT_ACCESS_LEVEL: 선택사항인 액세스 수준 이름으로, accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다. POLICY_ID를 액세스 정책 ID로 바꾸고 ACCESS_LEVEL_NAME을 액세스 수준 이름으로 바꿉니다.
  • CLIENT_ID: OAuth 클라이언트 ID입니다. 애플리케이션에 sessionSettings가 포함된 경우 clientId를 사용해야 합니다.
  • ACCESS_LEVEL_A: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
  • SESSION_LENGTH: ISO 8601 시간 형식을 사용한 세션 시간입니다(예: 30분의 경우 30m, 2시간의 경우 2h).
  • SESSION_REAUTH_METHOD: 사용자에게 본인 재인증을 요청하는 선택적 메서드로 다음 중 하나여야 합니다.

    • LOGIN: MFA 또는 기타 Workspace 정의 요소를 포함할 수 있는 표준 로그인을 적용합니다.
    • PASSWORD: 다른 요소가 정의되어 있더라도 비밀번호만 필요합니다. 외부 IdP를 사용하여 비밀번호를 관리하는 경우 사용자는 IdP로 리디렉션됩니다. IdP 세션이 활성 상태이면 사용자는 암시적으로 다시 인증됩니다. IdP가 운영되지 않는 경우 사용자는 IdP를 통해 로그인해야 합니다.
    • SECURITY_KEY: 하드웨어 보안 키가 필요합니다.
  • CLIENT_NAME: 클라이언트 이름입니다. 애플리케이션에 sessionSettings가 포함된 경우 클라이언트 이름을 사용할 수 없습니다. 대신 OAuth 클라이언트 ID를 사용하세요.

  • ACCESS_LEVEL_B: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.

POST 요청을 전송합니다.

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

ORG_IDCloud 액세스 바인딩 관리자 역할을 만들 때 사용한 조직의 ID입니다. access-context-manager/organization 속성이 설정되지 않았다면 선택사항인 --organization 플래그의 ORG_ID를 Cloud 액세스 Binding Admin 역할을 만들 때 사용한 조직의 ID로 바꿉니다.

성공하면 JSON 객체의 표현이 수신되며 문제가 있는 경우 오류 메시지가 수신됩니다.

테스트 실행 액세스 수준을 사용하여 시정 조치 시뮬레이션

테스트 실행 액세스 수준을 사용하면 액세스 정책을 실제로 적용하지 않고도 테스트할 수 있습니다. 이렇게 하면 정책이 적용되기 전에 정책의 영향을 파악할 수 있습니다. 테스트 실행 로그를 확인하여 정책이 활성화된 경우 어떤 일이 발생했는지 확인할 수 있습니다.

테스트 실행 모드에서는 액세스 수준만 사용할 수 있습니다. 테스트 실행 모드에서는 세션 제어를 사용할 수 없습니다.

테스트 실행 바인딩 만들기

동일한 바인딩에서 일반 액세스 수준과 함께 테스트 실행 액세스 수준을 정의하거나 테스트 실행에 별도의 바인딩을 사용할 수 있습니다.

gcloud

  1. 액세스 설정을 구성합니다.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            name: CLIENT_NAME
      activeSettings:
        accessLevels:
        - ACCESS_LEVEL_A
      dryRunSettings:
        accessLevels:
        - DRY_RUN_ACCESS_LEVEL_1
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID
        dryRunSettings:
          accessLevels:
          - DRY_RUN_ACCESS_LEVEL_2
    

    다음을 바꿉니다.

    • CLIENT_NAME: 클라이언트 이름입니다. 애플리케이션에 sessionSettings가 포함된 경우 클라이언트 이름을 사용할 수 없습니다. 대신 OAuth 클라이언트 ID를 사용하세요.
    • ACCESS_LEVEL_A: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
    • DRY_RUN_ACCESS_LEVEL_1: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
    • CLIENT_ID: OAuth 클라이언트 ID입니다. 애플리케이션에 sessionSettings가 포함된 경우 clientId를 사용해야 합니다.
    • DRY_RUN_ACCESS_LEVEL_2: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
  2. 액세스 바인딩을 만듭니다.

    gcloud access-context-manager cloud-bindings create
      --organization ORG_ID
      --group-key GROUP_ID
      --binding-file BINDING_FILE_PATH
      --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL
    

    다음을 바꿉니다.

    • ORG_ID: 조직 ID입니다.
    • GROUP_ID: 그룹 ID입니다. 사용 가능한 그룹 ID가 없으면 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.
    • BINDING_FILE_PATH: 액세스 바인딩 스키마가 포함된 YAML 파일의 경로입니다. 바인딩 파일은 scopedAccessSettings만 지원합니다.
    • DEFAULT_DRY_RUN_ACCESS_LEVEL_2: 선택사항인 액세스 수준 이름으로, accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다.

    이 플래그를 포함하면 YAML에 지정되지 않은 경우 모든 애플리케이션에 기본적으로 지정된 테스트 실행 액세스 수준을 적용할 수 있습니다.

API

  1. JSON 본문을 만듭니다.

    {
      "group_key": "GROUP_ID",
       //
       // Optional; if specified, all applications that aren't defined in
       // scopedAccessSettings have these access levels applied.
       //
       // If more than one access level is specified, the user is
       // granted access if any one resolves to TRUE (OR logic, not AND).
       //
       // If you omit this key entirely, then no policy enforcement is
       // be applied by default.
       //
      "access_levels": [
        "DEFAULT_ACCESS_LEVEL"
      ],
       //
       // Optional; if specified, all applications that aren't defined in
       // scopedAccessSettings will have these dry run access levels applied.
       //
      "dry_run_access_levels": [
        "DEFAULT_DRY_RUN_ACCESS_LEVEL"
      ],
      "scoped_access_settings": [
        {
          "scope": {
            "client_scope": {
              "restricted_client_application": {
                "name": "CLIENT_NAME"
              }
            }
          },
          "active_settings": {
            "access_levels": [
              "ACCESS_LEVEL_A"
            ]
          },
          "dry_run_settings": {
            "access_levels": [
              "DRY_RUN_ACCESS_LEVEL_1"
            ]
          }
        },
        {
          "scope": {
            "client_scope": {
              "restricted_client_application": {
                "client_id": "CLIENT_ID"
              }
            }
          },
          "active_settings": {
            "access_levels": [
              "DRY_RUN_ACCESS_LEVEL_2"
            ]
          }
        }
      ]
    }
    

    다음을 바꿉니다.

    • GROUP_ID: 그룹 ID입니다. 사용 가능한 그룹 ID가 없으면 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.
    • DEFAULT_ACCESS_LEVEL: 선택사항인 액세스 수준 이름으로, accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다. POLICY_ID를 액세스 정책 ID로 바꾸고 ACCESS_LEVEL_NAME을 액세스 수준 이름으로 바꿉니다.
    • DEFAULT_DRY_RUN_ACCESS_LEVEL: 선택사항인 액세스 수준 이름으로, accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다.
    • CLIENT_NAME: 클라이언트 이름입니다. 애플리케이션에 sessionSettings가 포함된 경우 클라이언트 이름을 사용할 수 없습니다. 대신 OAuth 클라이언트 ID를 사용하세요.
    • ACCESS_LEVEL_A: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
    • DRY_RUN_ACCESS_LEVEL_1: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
    • CLIENT_ID: OAuth 클라이언트 ID입니다. 애플리케이션에 sessionSettings가 포함된 경우 client_id를 사용해야 합니다.
    • DRY_RUN_ACCESS_LEVEL_2: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 액세스 수준 이름입니다.
  2. POST 요청을 전송합니다.

    https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    ORG_IDCloud 액세스 바인딩 관리자 역할을 만들 때 사용한 조직의 ID입니다. access-context-manager/organization 속성이 설정되지 않았다면 선택사항인 --organization 플래그의 ORG_ID를 Cloud 액세스 Binding Admin 역할을 만들 때 사용한 조직의 ID로 바꿉니다.

    성공하면 JSON 객체의 표현이 반환됩니다. 문제가 있으면 오류 메시지가 표시됩니다.

테스트 실행 로그 보기

테스트 실행을 설정한 후 로그를 확인하여 거부된 액세스 시도를 확인할 수 있습니다.

다음 표에는 로그를 가져오기 위한 쿼리를 만들고 실행하는 데 사용할 수 있는 로그 필드가 나와 있습니다.

필드 이름 설명
protoPayload.authenticationInfo.principalEmail 액세스가 거부된 주 구성원의 이메일 ID입니다.
protoPayload.metadata.deniedApplications 액세스가 거부된 애플리케이션의 이름입니다.
protoPayload.metadata.evaluationResult 활성 액세스 정책의 평가 결과입니다. 가능한 값은 GRANTED 또는 DENIED입니다.
protoPayload.metadata.appliedAccessLevels 활성 액세스 정책에 필요한 적용된 액세스 수준입니다.
protoPayload.metadata.appliedDryRunAccessLevels 테스트 실행 액세스 정책에 필요한 적용된 액세스 수준입니다.
protoPayload.metadata.dryRunEvaluationResult 테스트 실행 액세스 정책의 평가 결과로, 액세스 정책이 적용될 때 의도한 작업을 나타냅니다. 가능한 값은 GRANTED 또는 DENIED입니다.

로그 쿼리를 만드는 방법에 관한 자세한 내용은 Logging 쿼리 언어를 참고하세요.