사용자 관리 노트북 인스턴스에 대한 액세스 관리
이 가이드에서는 특정 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 정책을 설정합니다.
gcloud
사용자 관리 노트북 인스턴스의 주 구성원에 역할을 부여하려면 get-iam-policy
명령어를 사용해 현재 정책을 가져와 현재 정책의 액세스 권한을 수정한 후 set-iam-policy
명령어를 사용하여 인스턴스의 정책을 업데이트합니다.
현재 정책 가져오기
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- INSTANCE_NAME: 사용자 관리 노트북 인스턴스 이름
- PROJECT_ID: Google Cloud 프로젝트 ID
- ZONE: 인스턴스가 있는 영역
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
Windows(PowerShell)
gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
Windows(cmd.exe)
gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
{ "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 }
업데이트된 정책을
request.json
파일에 저장합니다.
인스턴스의 정책 업데이트
요청 본문에서 "policy"
섹션 내에 중첩된 이전 단계의 업데이트된 IAM 정책을 제공합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- INSTANCE_NAME: 사용자 관리 노트북 인스턴스 이름
- PROJECT_ID: Google Cloud 프로젝트 ID
- ZONE: 인스턴스가 있는 영역
다음 콘텐츠를 request.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 } }
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json
Windows(PowerShell)
gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json
Windows(cmd.exe)
gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json
JupyterLab 인터페이스에 대한 액세스 권한 부여
주 구성원에게 사용자 관리 노트북 인스턴스에 대한 액세스 권한을 부여해도 인스턴스의 JupyterLab 인터페이스를 사용할 수 있는 권한은 부여되지 않습니다. JupyterLab 인터페이스에 대한 액세스 권한을 부여하려면 사용자 관리 노트북 인스턴스의 JupyterLab 인터페이스에 대한 액세스 관리를 참조하세요.
API
사용자 관리 노트북 인스턴스의 주 구성원에 역할을 부여하려면 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
{ "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 인터페이스에 대한 액세스 관리를 참조하세요.
다음 단계
Identity and Access Management(IAM) 역할이 액세스 권한을 부여하고 제한하는 데 도움이 되는 방법을 알아보려면 IAM 문서를 참조하세요.
커스텀 역할을 만들고 관리하는 방법을 알아보세요.
다른 Google 리소스에 대한 액세스 권한을 부여하는 방법은 다른 리소스에 대한 액세스 관리를 참조하세요.