관리형 노트북 인스턴스에 대한 액세스 관리

이 가이드에서는 특정 Vertex AI Workbench 관리형 노트북 인스턴스에 대한 액세스 권한을 부여하는 방법을 설명합니다. Vertex AI 리소스에 대한 액세스를 관리하려면 액세스 제어에 대한 Vertex AI 페이지를 참조하세요.

인스턴스에서 Identity and Access Management(IAM) 정책을 설정하여 관리형 노트북 인스턴스에 대한 액세스 권한을 부여합니다. 이 정책은 사용자 또는 서비스 계정 같은 하나 이상의 주 구성원을 하나 이상의 역할에 바인딩합니다. 각 역할에는 주 구성원이 인스턴스와 상호작용할 수 있는 권한 목록이 포함됩니다.

최소 권한의 원칙에 따라 프로젝트, 폴더, 조직과 같은 상위 리소스 대신 인스턴스에 액세스 권한을 부여할 수 있습니다.

상위 리소스(예: 프로젝트)에 대한 액세스 권한을 부여하면 모든 하위 리소스(예: 해당 프로젝트의 모든 인스턴스)에 대한 액세스 권한이 암시적으로 부여됩니다. 리소스에 대한 액세스를 제한하려면 가급적 프로젝트 수준 이상이 아니라 하위 수준 리소스에 IAM 정책을 설정합니다.

예를 들어 Google Cloud 프로젝트에 액세스 권한을 부여하는 것과 같이 Vertex AI Workbench와 관련없는 리소스에 대한 액세스 권한을 부여, 변경, 취소하는 방법에 대한 일반적인 정보는 리소스에 대한 액세스 권한 부여, 변경, 취소에 대한 IAM 문서를 참조하세요.

액세스 제한사항

주 구성원에게 할당하는 역할에 따라 인스턴스에 대한 액세스 권한에 광범위한 기능이 포함될 수 있습니다. 예를 들어 인스턴스 상태를 시작, 중지, 업그레이드, 모니터링할 수 있는 기능을 주 구성원에 부여할 수 있습니다. 사용 가능한 IAM 권한의 전체 목록은 사전 정의된 관리형 노트북 IAM 역할을 참조하세요.

하지만 주 구성원에게 관리형 노트북 인스턴스에 대한 전체 액세스 권한을 부여해도 인스턴스의 JupyterLab 인터페이스를 사용할 수 있는 권한은 부여되지 않습니다. JupyterLab 인터페이스에 대한 액세스 권한을 부여하려면 관리형 노트북 인스턴스의 JupyterLab 인터페이스에 대한 액세스 관리를 참조하세요.

관리형 노트북 인스턴스에 대한 액세스 권한 부여

사용자에게 특정 관리형 노트북 인스턴스에 액세스할 수 있는 권한을 부여하려면 인스턴스에 IAM 정책을 설정합니다.

관리형 노트북 인스턴스의 주 구성원에 역할을 부여하려면 getIamPolicy 메서드를 사용해 현재 정책을 가져와 현재 정책의 액세스 권한을 수정한 후 setIamPolicy 메서드를 사용하여 인스턴스의 정책을 업데이트합니다.

현재 정책 가져오기

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • INSTANCE_NAME: 관리형 노트북 인스턴스의 이름

HTTP 메서드 및 URL:

GET https://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy" | Select-Object -Expand Content
인스턴스의 IAM 정책 텍스트가 응답으로 반환됩니다. 다음 예시를 참조하세요.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

정책 수정

텍스트 편집기로 정책을 수정하여 주 구성원과 연결된 역할을 추가 또는 삭제합니다. 예를 들어 eve@example.com에 notebooks.admin 역할을 부여하려면 다음과 같은 새 바인딩을 "bindings" 섹션의 정책에 추가합니다.

{
  "role": "roles/notebooks.admin",
  "members": [
    "user:eve@example.com"
  ]
}

새 바인딩을 추가하면 정책이 다음과 같이 표시됩니다.

{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    },
    {
      "role": "roles/notebooks.admin",
      "members": [
        "user:eve@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

인스턴스의 정책 업데이트

요청 본문에서 "policy" 섹션 내에 중첩된 이전 단계의 업데이트된 IAM 정책을 제공합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • INSTANCE_NAME: 관리형 노트북 인스턴스의 이름

HTTP 메서드 및 URL:

POST https://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy

JSON 요청 본문:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/notebooks.viewer",
        "members": [
          "user:email@example.com"
        ]
      },
      {
        "role": "roles/notebooks.admin",
        "members": [
          "user:eve@example.com"
        ]
      }
    ],
    "etag": "BwWWja0YfJA=",
    "version": 3
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content

성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.

JupyterLab 인터페이스에 대한 액세스 권한 부여

주 구성원에게 관리형 노트북 인스턴스에 대한 액세스 권한을 부여해도 인스턴스의 JupyterLab 인터페이스를 사용할 수 있는 권한은 부여되지 않습니다. JupyterLab 인터페이스에 대한 액세스 권한을 부여하려면 관리형 노트북 인스턴스의 JupyterLab 인터페이스에 대한 액세스 관리를 참조하세요.

다음 단계