W&B Multi-tenant Cloud는 W&B의 클라우드 인프라에 배포된 완전 관리형 서비스로, 원하는 규모로 W&B 제품에 원활하게 엑세스하고, 비용 효율적인 가격 옵션을 활용하며, 최신 기능 및 업데이트를 지속적으로 받을 수 있습니다. 프라이빗 배포의 보안이 필요하지 않고, 셀프 서비스 온보딩이 중요하며, 비용 효율성이 중요한 경우 프로덕션 AI 워크플로우를 관리하기 위해 Multi-tenant Cloud를 사용하는 것이 좋습니다.
W&B Dedicated Cloud는 W&B의 클라우드 인프라에 배포된 싱글 테넌트, 완전 관리형 서비스입니다. 데이터 상주를 포함한 엄격한 거버넌스 제어를 준수해야 하고, 고급 보안 기능이 필요하며, 보안, 확장성 및 성능 특성을 갖춘 필요한 인프라를 구축 및 관리하지 않고도 AI 운영 비용을 최적화하려는 경우 W&B를 온보딩하는 데 가장 적합합니다.
이 옵션을 사용하면 자체 관리형 인프라에 W&B Server를 배포하고 관리할 수 있습니다. W&B Server는 W&B Platform 및 지원되는 W&B 제품을 실행하기 위한 자체 포함 패키지 메커니즘입니다. 기존 인프라가 모두 온프레미스에 있거나, W&B Dedicated Cloud에서 충족되지 않는 엄격한 규제 요구 사항이 있는 경우 이 옵션을 사용하는 것이 좋습니다. 이 옵션을 사용하면 W&B Server를 지원하는 데 필요한 인프라의 프로비저닝, 지속적인 유지 관리 및 업그레이드를 완전히 책임져야 합니다.
W&B 제품을 사용해 보려면 Multi-tenant Cloud를 사용하는 것이 좋습니다. 엔터프라이즈 친화적인 설정을 찾고 있다면 여기에서 트라이얼에 적합한 배포 유형을 선택하십시오.
1 - Deployment options
1.1 - Use W&B Multi-tenant SaaS
W&B Multi-tenant Cloud는 W&B의 Google Cloud Platform (GCP) 계정의 GPC의 북미 지역에 배포된 완전 관리형 플랫폼입니다. W&B Multi-tenant Cloud는 트래픽 증가 또는 감소에 따라 플랫폼이 적절하게 확장되도록 GCP에서 자동 확장을 활용합니다.
데이터 보안
엔터프라이즈 플랜 사용자가 아닌 경우 모든 데이터는 공유 클라우드 스토리지에만 저장되고 공유 클라우드 컴퓨팅 서비스로 처리됩니다. 요금제에 따라 스토리지 제한이 적용될 수 있습니다.
엔터프라이즈 플랜 사용자는 보안 스토리지 커넥터를 사용하여 자체 버킷(BYOB)을 가져올 수 있습니다팀 레벨에서 모델, 데이터셋 등과 같은 파일을 저장할 수 있습니다. 여러 팀에 대해 단일 버킷을 구성하거나 여러 W&B Teams에 대해 별도의 버킷을 사용할 수 있습니다. 팀에 대해 보안 스토리지 커넥터를 구성하지 않으면 해당 데이터는 공유 클라우드 스토리지에 저장됩니다.
ID 및 엑세스 관리 (IAM)
엔터프라이즈 플랜을 사용하는 경우 W&B 조직에서 안전한 인증 및 효과적인 권한 부여를 위해 ID 및 엑세스 관리 기능을 사용할 수 있습니다. Multi-tenant Cloud의 IAM에 사용할 수 있는 기능은 다음과 같습니다.
OIDC 또는 SAML을 사용한 SSO 인증. 조직에 대해 SSO를 구성하려면 W&B 팀 또는 지원팀에 문의하세요.
W&B 전용 클라우드는 W&B의 AWS, GCP 또는 Azure 클라우드 계정에 배포된 싱글 테넌트, 완전 관리형 플랫폼입니다. 각 전용 클라우드 인스턴스는 다른 W&B 전용 클라우드 인스턴스와 격리된 자체 네트워크, 컴퓨팅 및 스토리지를 가지고 있습니다. W&B 특정 메타데이터 및 데이터는 격리된 클라우드 스토리지에 저장되고 격리된 클라우드 컴퓨팅 서비스를 사용하여 처리됩니다.
AWS, GCP, 및 Azure는 전 세계 여러 위치에서 클라우드 컴퓨팅 서비스를 지원합니다. 글로벌 리전은 데이터 상주 및 규정 준수, 지연 시간, 비용 효율성 등과 관련된 요구 사항을 충족하는 데 도움이 됩니다. W&B는 전용 클라우드에 사용 가능한 여러 글로벌 리전을 지원합니다.
선호하는 AWS, GCP 또는 Azure 리전이 목록에 없으면 W&B 지원팀에 문의하십시오. W&B는 해당 리전에 전용 클라우드에 필요한 모든 서비스가 있는지 확인하고 평가 결과에 따라 지원 우선 순위를 지정할 수 있습니다.
지원되는 AWS 리전
다음 표는 W&B가 현재 전용 클라우드 인스턴스에 대해 지원하는 AWS 리전을 나열합니다.
IT/DevOps/MLOps 팀은 배포 프로비저닝, 업그레이드 관리 및 자체 관리형 W&B Server 인스턴스의 지속적인 유지 관리를 담당합니다.
자체 관리형 클라우드 계정 내에 W&B Server 배포
W&B는 공식 W&B Terraform 스크립트를 사용하여 AWS, GCP 또는 Azure 클라우드 계정에 W&B Server를 배포할 것을 권장합니다.
AWS, GCP 또는 Azure에서 W&B Server를 설정하는 방법에 대한 자세한 내용은 특정 클라우드 공급자 문서를 참조하세요.
온-프레미스 인프라에 W&B Server 배포
온-프레미스 인프라에서 W&B Server를 설정하려면 여러 인프라 구성 요소를 구성해야 합니다. 이러한 구성 요소에는 다음이 포함되지만 이에 국한되지는 않습니다.
(강력 권장) Kubernetes 클러스터
MySQL 8 데이터베이스 클러스터
Amazon S3 호환 오브젝트 스토리지
Redis 캐시 클러스터
온-프레미스 인프라에 W&B Server를 설치하는 방법에 대한 자세한 내용은 온-프레미스 인프라에 설치를 참조하세요. W&B는 다양한 구성 요소에 대한 권장 사항을 제공하고 설치 프로세스에 대한 지침을 제공할 수 있습니다.
사용자 지정 클라우드 플랫폼에 W&B Server 배포
AWS, GCP 또는 Azure가 아닌 클라우드 플랫폼에 W&B Server를 배포할 수 있습니다. 이에 대한 요구 사항은 온-프레미스 인프라에 배포하는 것과 유사합니다.
W&B Server 라이선스 받기
W&B 서버 설정을 완료하려면 W&B 트라이얼 라이선스가 필요합니다. Deploy Manager를 열어 무료 트라이얼 라이선스를 생성하세요.
아직 W&B 계정이 없는 경우 계정을 만들어 무료 라이선스를 생성하세요.
중요한 보안 및 기타 엔터프라이즈 친화적인 기능을 지원하는 W&B Server용 엔터프라이즈 라이선스가 필요한 경우 이 양식을 제출하거나 W&B 팀에 문의하세요.
URL은 W&B Local용 라이선스 받기 양식으로 리디렉션됩니다. 다음 정보를 제공하세요.
플랫폼 선택 단계에서 배포 유형을 선택합니다.
기본 정보 단계에서 라이선스 소유자를 선택하거나 새 조직을 추가합니다.
라이선스 받기 단계의 인스턴스 이름 필드에 인스턴스 이름을 제공하고 필요에 따라 설명 필드에 설명을 제공합니다.
라이선스 키 생성 버튼을 선택합니다.
인스턴스와 연결된 라이선스와 함께 배포 개요가 있는 페이지가 표시됩니다.
1.3.1 - Reference Architecture
W&B 참조 아키텍처
이 페이지에서는 Weights & Biases 배포를 위한 참조 아키텍처를 설명하고 플랫폼의 프로덕션 배포를 지원하기 위해 권장되는 인프라 및 리소스를 간략하게 설명합니다.
Weights & Biases(W&B)에 대해 선택한 배포 환경에 따라 다양한 서비스를 통해 배포의 복원력을 향상시킬 수 있습니다.
예를 들어 주요 클라우드 공급자는 데이터베이스 구성, 유지 관리, 고가용성 및 복원력의 복잡성을 줄이는 데 도움이 되는 강력한 관리형 데이터베이스 서비스를 제공합니다.
이 참조 아키텍처는 몇 가지 일반적인 배포 시나리오를 다루고 최적의 성능과 안정성을 위해 W&B 배포를 클라우드 공급업체 서비스와 통합하는 방법을 보여줍니다.
시작하기 전에
모든 애플리케이션을 프로덕션 환경에서 실행하는 데에는 자체적인 어려움이 따르며 W&B도 예외는 아닙니다. Google은 프로세스를 간소화하는 것을 목표로 하지만 고유한 아키텍처 및 설계 결정에 따라 특정 복잡성이 발생할 수 있습니다. 일반적으로 프로덕션 배포를 관리하려면 하드웨어, 운영 체제, 네트워킹, 스토리지, 보안, W&B 플랫폼 자체 및 기타 종속성을 포함한 다양한 구성 요소를 감독해야 합니다. 이 책임은 환경의 초기 설정과 지속적인 유지 관리 모두에 적용됩니다.
W&B를 사용한 자체 관리 방식이 팀 및 특정 요구 사항에 적합한지 신중하게 고려하십시오.
프로덕션 등급 애플리케이션을 실행하고 유지 관리하는 방법에 대한 확실한 이해는 자체 관리 W&B를 배포하기 전에 중요한 전제 조건입니다. 팀에 지원이 필요한 경우 Google의 Professional Services 팀과 파트너가 구현 및 최적화에 대한 지원을 제공합니다.
애플리케이션 레이어는 노드 장애에 대한 복원력을 갖춘 다중 노드 Kubernetes 클러스터로 구성됩니다. Kubernetes 클러스터는 W&B의 포드를 실행하고 유지 관리합니다.
스토리지 레이어
스토리지 레이어는 MySQL 데이터베이스와 오브젝트 스토리지로 구성됩니다. MySQL 데이터베이스는 메타데이터를 저장하고 오브젝트 스토리지는 모델 및 데이터셋과 같은 아티팩트를 저장합니다.
인프라 요구 사항
Kubernetes
W&B Server 애플리케이션은 여러 포드를 배포하는 Kubernetes Operator로 배포됩니다. 이러한 이유로 W&B에는 다음이 포함된 Kubernetes 클러스터가 필요합니다.
완전히 구성되고 작동하는 Ingress 컨트롤러.
Persistent Volumes를 프로비저닝하는 기능.
MySQL
W&B는 메타데이터를 MySQL 데이터베이스에 저장합니다. 데이터베이스의 성능 및 스토리지 요구 사항은 모델 파라미터 및 관련 메타데이터의 형태에 따라 달라집니다. 예를 들어 더 많은 트레이닝 run을 추적할수록 데이터베이스 크기가 커지고 run 테이블, 사용자 워크스페이스 및 리포트의 쿼리를 기반으로 데이터베이스에 대한 부하가 증가합니다.
자체 관리 MySQL 데이터베이스를 배포할 때 다음 사항을 고려하십시오.
백업. 데이터베이스를 별도의 시설에 주기적으로 백업해야 합니다. W&B는 최소 1주일의 보존 기간으로 매일 백업하는 것이 좋습니다.
성능. 서버가 실행되는 디스크는 빨라야 합니다. W&B는 SSD 또는 가속화된 NAS에서 데이터베이스를 실행하는 것이 좋습니다.
모니터링. 데이터베이스의 부하를 모니터링해야 합니다. CPU 사용량이 시스템의 40%를 초과하여 5분 이상 유지되면 서버에 리소스가 부족하다는 좋은 징조일 수 있습니다.
가용성. 가용성 및 내구성 요구 사항에 따라 기본 서버에서 모든 업데이트를 실시간으로 스트리밍하고 기본 서버가 충돌하거나 손상될 경우 장애 조치하는 데 사용할 수 있는 별도의 시스템에서 핫 스탠바이를 구성할 수 있습니다.
오브젝트 스토리지
W&B에는 사전 서명된 URL 및 CORS 지원이 포함된 오브젝트 스토리지가 필요하며 다음 중 하나로 배포됩니다.
Amazon S3
Azure Cloud Storage
Google Cloud Storage
Amazon S3와 호환되는 스토리지 서비스
버전
소프트웨어
최소 버전
Kubernetes
v1.29
MySQL
v8.0.0, “General Availability” 릴리스만 해당
네트워킹
네트워크로 연결된 배포의 경우 설치 및 런타임 모두 중에 이러한 엔드포인트에 대한 송신이 필요합니다.
에어 갭 배포에 대한 자세한 내용은 에어 갭 인스턴스용 Kubernetes operator를 참조하십시오.
W&B와 오브젝트 스토리지에 대한 엑세스는 트레이닝 인프라와 Experiments의 요구 사항을 추적하는 각 시스템에 필요합니다.
DNS
W&B 배포의 정규화된 도메인 이름(FQDN)은 A 레코드를 사용하여 수신/로드 밸런서의 IP 어드레스로 확인되어야 합니다.
SSL/TLS
W&B에는 클라이언트와 서버 간의 보안 통신을 위한 유효한 서명된 SSL/TLS 인증서가 필요합니다. SSL/TLS 종료는 수신/로드 밸런서에서 발생해야 합니다. W&B Server 애플리케이션은 SSL 또는 TLS 연결을 종료하지 않습니다.
참고: W&B는 자체 서명된 인증서 및 사용자 지정 CA의 사용을 권장하지 않습니다.
지원되는 CPU 아키텍처
W&B는 Intel(x86) CPU 아키텍처에서 실행됩니다. ARM은 지원되지 않습니다.
인프라 프로비저닝
Terraform은 프로덕션 환경을 위해 W&B를 배포하는 데 권장되는 방법입니다. Terraform을 사용하면 필요한 리소스, 다른 리소스에 대한 참조 및 종속성을 정의합니다. W&B는 주요 클라우드 공급자를 위한 Terraform 모듈을 제공합니다. 자세한 내용은 자체 관리 클라우드 계정 내에서 W&B Server 배포를 참조하십시오.
크기 조정
배포를 계획할 때 다음 일반 지침을 시작점으로 사용하십시오. W&B는 새로운 배포의 모든 구성 요소를 면밀히 모니터링하고 관찰된 사용 패턴에 따라 조정하는 것이 좋습니다. 시간이 지남에 따라 프로덕션 배포를 계속 모니터링하고 최적의 성능을 유지하기 위해 필요에 따라 조정하십시오.
모델만 해당
Kubernetes
환경
CPU
메모리
디스크
테스트/개발
2 코어
16GB
100GB
프로덕션
8 코어
64GB
100GB
숫자는 Kubernetes 작업자 노드당 개수입니다.
MySQL
환경
CPU
메모리
디스크
테스트/개발
2 코어
16GB
100GB
프로덕션
8 코어
64GB
500GB
숫자는 MySQL 노드당 개수입니다.
Weave만 해당
Kubernetes
환경
CPU
메모리
디스크
테스트/개발
4 코어
32GB
100GB
프로덕션
12 코어
96GB
100GB
숫자는 Kubernetes 작업자 노드당 개수입니다.
MySQL
환경
CPU
메모리
디스크
테스트/개발
2 코어
16GB
100GB
프로덕션
8 코어
64GB
500GB
숫자는 MySQL 노드당 개수입니다.
모델 및 Weave
Kubernetes
환경
CPU
메모리
디스크
테스트/개발
4 코어
32GB
100GB
프로덕션
16 코어
128GB
100GB
숫자는 Kubernetes 작업자 노드당 개수입니다.
MySQL
환경
CPU
메모리
디스크
테스트/개발
2 코어
16GB
100GB
프로덕션
8 코어
64GB
500GB
숫자는 MySQL 노드당 개수입니다.
클라우드 공급자 인스턴스 권장 사항
서비스
클라우드
Kubernetes
MySQL
오브젝트 스토리지
AWS
EKS
RDS Aurora
S3
GCP
GKE
Google Cloud SQL - Mysql
Google Cloud Storage (GCS)
Azure
AKS
Azure Database for Mysql
Azure Blob Storage
머신 유형
이러한 권장 사항은 클라우드 인프라에서 W&B의 자체 관리 배포의 각 노드에 적용됩니다.
AWS
환경
K8s (모델만 해당)
K8s (Weave만 해당)
K8s (모델&Weave)
MySQL
테스트/개발
r6i.large
r6i.xlarge
r6i.xlarge
db.r6g.large
프로덕션
r6i.2xlarge
r6i.4xlarge
r6i.4xlarge
db.r6g.2xlarge
GCP
환경
K8s (모델만 해당)
K8s (Weave만 해당)
K8s (모델&Weave)
MySQL
테스트/개발
n2-highmem-2
n2-highmem-4
n2-highmem-4
db-n1-highmem-2
프로덕션
n2-highmem-8
n2-highmem-16
n2-highmem-16
db-n1-highmem-8
Azure
환경
K8s (모델만 해당)
K8s (Weave만 해당)
K8s (모델&Weave)
MySQL
테스트/개발
Standard_E2_v5
Standard_E4_v5
Standard_E4_v5
MO_Standard_E2ds_v4
프로덕션
Standard_E8_v5
Standard_E16_v5
Standard_E16_v5
MO_Standard_E8ds_v4
1.3.2 - Run W&B Server on Kubernetes
Kubernetes Operator로 W&B 플랫폼 배포
W&B Kubernetes Operator
W&B Kubernetes Operator를 사용하면 Kubernetes에서 W&B Server 배포를 간소화하고, 관리하고, 문제를 해결하고, 확장할 수 있습니다. 이 Operator는 W&B 인스턴스를 위한 스마트 도우미라고 생각하면 됩니다.
W&B Server 아키텍처와 디자인은 AI 개발자 툴링 기능을 확장하고, 고성능, 더 나은 확장성, 더 쉬운 관리를 위한 적절한 기본 요소를 제공하기 위해 지속적으로 발전하고 있습니다. 이러한 발전은 컴퓨팅 서비스, 관련 스토리지 및 이들 간의 연결에 적용됩니다. 모든 배포 유형에서 지속적인 업데이트와 개선을 용이하게 하기 위해 W&B는 Kubernetes operator를 사용합니다.
W&B는 이 operator를 사용하여 AWS, GCP 및 Azure 퍼블릭 클라우드에 전용 클라우드 인스턴스를 배포하고 관리합니다.
Kubernetes operator에 대한 자세한 내용은 Kubernetes 설명서의 Operator 패턴을 참조하세요.
아키텍처 전환 이유
과거에는 W&B 애플리케이션이 Kubernetes 클러스터 내의 단일 배포 및 pod 또는 단일 Docker 컨테이너로 배포되었습니다. W&B는 데이터베이스 및 오브젝트 저장소를 외부화할 것을 권장해 왔으며 앞으로도 계속 권장할 것입니다. 데이터베이스 및 오브젝트 저장소를 외부화하면 애플리케이션의 상태가 분리됩니다.
애플리케이션이 성장함에 따라 모놀리식 컨테이너에서 분산 시스템(마이크로서비스)으로 발전해야 할 필요성이 분명해졌습니다. 이러한 변경은 백엔드 로직 처리를 용이하게 하고 내장된 Kubernetes 인프라 기능을 원활하게 도입합니다. 분산 시스템은 또한 W&B가 의존하는 추가 기능에 필수적인 새로운 서비스 배포를 지원합니다.
2024년 이전에는 Kubernetes 관련 변경 사항이 있을 때마다 terraform-kubernetes-wandb Terraform 모듈을 수동으로 업데이트해야 했습니다. Terraform 모듈을 업데이트하면 클라우드 공급자 간의 호환성이 보장되고 필요한 Terraform 변수가 구성되며 각 백엔드 또는 Kubernetes 수준 변경에 대해 Terraform 적용이 실행됩니다.
W&B 지원팀이 각 고객의 Terraform 모듈 업그레이드를 지원해야 했기 때문에 이 프로세스는 확장 가능하지 않았습니다.
해결책은 중앙 deploy.wandb.ai 서버에 연결하여 주어진 릴리스 채널에 대한 최신 사양 변경 사항을 요청하고 적용하는 operator를 구현하는 것이었습니다. 라이선스가 유효한 한 업데이트가 수신됩니다. Helm은 W&B operator의 배포 메커니즘이자 operator가 W&B Kubernetes 스택의 모든 설정 템플릿을 처리하는 수단(Helm-ception)으로 사용됩니다.
작동 방식
helm 또는 소스에서 operator를 설치할 수 있습니다. 자세한 내용은 charts/operator를 참조하세요.
설치 프로세스는 controller-manager라는 배포를 생성하고 weightsandbiases.apps.wandb.com이라는 custom resource 정의(shortName: wandb)를 사용하며, 단일 spec을 가져와 클러스터에 적용합니다.
controller-manager는 커스텀 리소스, 릴리스 채널 및 사용자 정의 설정의 사양을 기반으로 charts/operator-wandb를 설치합니다. 이 설정 사양 계층 구조는 사용자 측에서 최대한의 설정 유연성을 제공하고 W&B가 새로운 이미지, 설정, 기능 및 Helm 업데이트를 자동으로 릴리스할 수 있도록 합니다.
W&B는 W&B Kubernetes operator를 Kubernetes 클러스터에 배포하기 위한 Helm Chart를 제공합니다. 이 접근 방식을 사용하면 Helm CLI 또는 ArgoCD와 같은 지속적인 배포 툴을 사용하여 W&B Server를 배포할 수 있습니다. 위에 언급된 요구 사항이 충족되었는지 확인하세요.
다음 단계에 따라 Helm CLI로 W&B Kubernetes Operator를 설치하세요.
W&B Helm 저장소를 추가합니다. W&B Helm chart는 W&B Helm 저장소에서 사용할 수 있습니다. 다음 코맨드를 사용하여 저장소를 추가합니다.
W&B는 AWS, GCP 및 Azure용 Terraform Modules 세트를 제공합니다. 이러한 모듈은 Kubernetes 클러스터, 로드 밸런서, MySQL 데이터베이스 등을 포함한 전체 인프라와 W&B Server 애플리케이션을 배포합니다. W&B Kubernetes Operator는 다음과 같은 버전의 공식 W&B 클라우드별 Terraform Modules와 함께 미리 준비되어 있습니다.
이 통합은 W&B Kubernetes Operator가 최소한의 설정으로 인스턴스에 사용할 준비가 되어 있는지 확인하여 클라우드 환경에서 W&B Server를 배포하고 관리하는 간소화된 경로를 제공합니다.
이러한 모듈을 사용하는 방법에 대한 자세한 설명은 문서의 자체 관리 설치 섹션의 이 섹션을 참조하세요.
설치 확인
설치를 확인하기 위해 W&B는 W&B CLI를 사용하는 것이 좋습니다. 확인 코맨드는 모든 구성 요소와 구성을 확인하는 여러 테스트를 실행합니다.
이 단계에서는 첫 번째 관리자 사용자 계정이 브라우저로 생성되었다고 가정합니다.
다음 단계에 따라 설치를 확인하세요.
W&B CLI를 설치합니다.
pip install wandb
W&B에 로그인합니다.
wandb login --host=https://YOUR_DNS_DOMAIN
예:
wandb login --host=https://wandb.company-name.com
설치를 확인합니다.
wandb verify
설치가 완료되고 W&B 배포가 완전히 작동하면 다음 출력이 표시됩니다.
Default host selected: https://wandb.company-name.com
Find detailed logs for this test at: /var/folders/pn/b3g3gnc11_sbsykqkm3tx5rh0000gp/T/tmpdtdjbxua/wandb
Checking if logged in...................................................✅
Checking signed URL upload..............................................✅
Checking ability to send large payloads through proxy...................✅
Checking requests to base url...........................................✅
Checking requests made over signed URLs.................................✅
Checking CORs configuration of the bucket...............................✅
Checking wandb package version is up to date............................✅
Checking logged metrics, saving and downloading a file..................✅
Checking artifact save and download workflows...........................✅
W&B Management Console 엑세스
W&B Kubernetes operator에는 관리 콘솔이 함께 제공됩니다. 예를 들어 https://wandb.company-name.com/ 콘솔과 같이 ${HOST_URI}/console에 있습니다.
global:
ldap:
enabled: true# "ldap://" 또는 "ldaps://"를 포함한 LDAP 서버 어드레스host:
# 사용자를 찾는 데 사용할 LDAP 검색 기준baseDN:
# 바인딩할 LDAP 사용자 (익명 바인딩을 사용하지 않는 경우)bindDN:
# 바인딩할 LDAP 비밀번호가 포함된 Secret 이름 및 키 (익명 바인딩을 사용하지 않는 경우)bindPW:
# 쉼표로 구분된 문자열 값으로 된 이메일 및 그룹 ID 어트리뷰트 이름에 대한 LDAP 어트리뷰트입니다.attributes:
# LDAP 그룹 허용 목록groupAllowList:
# LDAP TLS 활성화tls: false
global:
ldap:
enabled: true# "ldap://" 또는 "ldaps://"를 포함한 LDAP 서버 어드레스host:
# 사용자를 찾는 데 사용할 LDAP 검색 기준baseDN:
# 바인딩할 LDAP 사용자 (익명 바인딩을 사용하지 않는 경우)bindDN:
# 바인딩할 LDAP 비밀번호가 포함된 Secret 이름 및 키 (익명 바인딩을 사용하지 않는 경우)bindPW:
# 쉼표로 구분된 문자열 값으로 된 이메일 및 그룹 ID 어트리뷰트 이름에 대한 LDAP 어트리뷰트입니다.attributes:
# LDAP 그룹 허용 목록groupAllowList:
# LDAP TLS 활성화tls: true# LDAP 서버용 CA 인증서가 포함된 ConfigMap 이름 및 키tlsCert:
configMap:
name: "ldap-tls-cert"key: "certificate.crt"
ConfigMap을 사용하는 경우 ConfigMap의 각 키는 .crt로 끝나야 합니다 (예: my-cert.crt 또는 ca-cert1.crt). 이 명명 규칙은 update-ca-certificates가 각 인증서를 구문 분석하고 시스템 CA 저장소에 추가하는 데 필요합니다.
스크립트는 스크립트를 실행한 폴더에 바이너리를 다운로드합니다. 다른 폴더로 이동하려면 다음을 실행합니다.
sudo mv wsm /usr/local/bin
GitHub
W&B 관리 wandb/wsm GitHub 저장소( https://github.com/wandb/wsm )에서 WSM을 다운로드하거나 복제합니다. 최신 릴리스는 wandb/wsm릴리스 노트를 참조하세요.
이미지 및 해당 버전 나열
wsm list를 사용하여 최신 이미지 버전 목록을 가져옵니다.
wsm list
출력은 다음과 같습니다.
:package: 배포에 필요한 모든 이미지를 나열하는 프로세스를 시작합니다...
Operator Images:
wandb/controller:1.16.1
W&B Images:
wandb/local:0.62.2
docker.io/bitnami/redis:7.2.4-debian-12-r9
quay.io/prometheus-operator/prometheus-config-reloader:v0.67.0
quay.io/prometheus/prometheus:v2.47.0
otel/opentelemetry-collector-contrib:0.97.0
wandb/console:2.13.1
다음은 W&B를 배포하는 데 필요한 이미지입니다. 이러한 이미지가 내부 컨테이너 레지스트리에서 사용 가능한지 확인하고 values.yaml을 적절하게 업데이트하십시오.
module"wandb_infra" {
source ="wandb/wandb/aws" version ="1.16.10" ...
}
이 모듈은 인프라를 가동합니다.
module"wandb_app" {
source ="wandb/wandb/kubernetes" version ="1.12.0"}
이 모듈은 애플리케이션을 배포합니다.
Post-Operator 설정
pre-operator.tf에 .disabled 확장명이 있고 post-operator.tf가 활성 상태인지 확인합니다.
post-operator.tfvars에는 추가 변수가 포함되어 있습니다.
...# wandb_version = "0.51.2"는 이제 릴리스 채널을 통해 관리되거나 사용자 사양에 설정됩니다.# 업그레이드에 필요한 운영자 변수:size="small"enable_dummy_dns=trueenable_operator_alb=truecustom_domain_filter="sandbox-aws.wandb.ml"
Weights & Biases에서는 W&B Multi-tenant Cloud 또는 W&B Dedicated Cloud 배포 유형과 같은 완전 관리형 배포 옵션을 권장합니다. Weights & Biases의 완전 관리형 서비스는 사용하기 간편하고 안전하며, 필요한 설정이 최소화되거나 전혀 없습니다.
State File은 모든 구성 요소를 다시 생성하지 않고도 업그레이드를 롤아웃하거나 배포를 변경하는 데 필요한 리소스입니다.
Terraform Module은 다음과 같은 필수 구성 요소를 배포합니다.
Azure Resource Group
Azure Virtual Network (VPC)
Azure MySQL Flexible Server
Azure Storage Account & Blob Storage
Azure Kubernetes Service
Azure Application Gateway
다른 배포 옵션에는 다음과 같은 선택적 구성 요소도 포함될 수 있습니다.
Azure Cache for Redis
Azure Event Grid
전제 조건 권한
AzureRM provider를 구성하는 가장 간단한 방법은 Azure CLI를 이용하는 것이지만, Azure Service Principal을 사용한 자동화도 유용할 수 있습니다.
어떤 인증 방법을 사용하든 Terraform을 실행할 계정은 도입부에 설명된 모든 구성 요소를 생성할 수 있어야 합니다.
MySQL 8.0에서 sort_buffer_size를 처리하는 방식이 변경되었으므로 sort_buffer_size 파라미터를 기본값인 262144에서 업데이트해야 할 수 있습니다. W&B와 함께 MySQL이 효율적으로 작동하도록 값을 67108864 (64MiB)로 설정하는 것이 좋습니다. MySQL은 v8.0.28부터 이 설정을 지원합니다.
데이터베이스 고려 사항
다음 SQL 쿼리를 사용하여 데이터베이스와 사용자를 만듭니다. SOME_PASSWORD를 원하는 비밀번호로 바꿉니다.
CREATEUSER'wandb_local'@'%' IDENTIFIED BY'SOME_PASSWORD';
CREATEDATABASE wandb_local CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANTALLON wandb_local.*TO'wandb_local'@'%'WITHGRANTOPTION;
이는 SSL 인증서를 신뢰할 수 있는 경우에만 작동합니다. W&B는 자체 서명된 인증서를 지원하지 않습니다.
Amazon S3 호환 오브젝트 스토리지에 연결할 때 연결 문자열에 자격 증명을 지정할 수 있습니다. 예를 들어 다음과 같이 지정할 수 있습니다.
s3://$ACCESS_KEY:$SECRET_KEY@$HOST/$BUCKET_NAME
선택적으로 오브젝트 스토리지에 대해 신뢰할 수 있는 SSL 인증서를 구성한 경우 W&B에 TLS를 통해서만 연결하도록 지시할 수 있습니다. 이렇게 하려면 URL에 tls 쿼리 파라미터를 추가하십시오. 예를 들어 다음 URL 예제는 Amazon S3 URI에 TLS 쿼리 파라미터를 추가하는 방법을 보여줍니다.
기계 학습 페이로드를 실행하는 데 사용되는 모든 장치와 웹 브라우저를 통해 서비스에 액세스하는 데 사용되는 장치가 이 엔드포인트와 통신할 수 있는지 확인하십시오.
SSL / TLS
W&B Server는 SSL을 중지하지 않습니다. 보안 정책에서 신뢰할 수 있는 네트워크 내에서 SSL 통신을 요구하는 경우 Istio와 같은 툴과 side car containers를 사용하는 것이 좋습니다. 로드 밸런서 자체는 유효한 인증서로 SSL을 종료해야 합니다. 자체 서명된 인증서를 사용하는 것은 지원되지 않으며 사용자에게 여러 가지 문제가 발생할 수 있습니다. 가능하다면 Let’s Encrypt와 같은 서비스를 사용하여 로드 밸런서에 신뢰할 수 있는 인증서를 제공하는 것이 좋습니다. Caddy 및 Cloudflare와 같은 서비스는 SSL을 관리합니다.
Nginx 구성 예제
다음은 nginx를 역방향 프록시로 사용하는 구성 예제입니다.
events {}
http {
# If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the
# scheme used to connect to this server
map $http_x_forwarded_proto $proxy_x_forwarded_proto {
default $http_x_forwarded_proto;
'' $scheme;
}
# Also, in the above case, force HTTPS
map $http_x_forwarded_proto $sts {
default'';
"https""max-age=31536000; includeSubDomains";
}
# If we receive X-Forwarded-Host, pass it though; otherwise, pass along $http_host
map $http_x_forwarded_host $proxy_x_forwarded_host {
default $http_x_forwarded_host;
'' $http_host;
}
# If we receive X-Forwarded-Port, pass it through; otherwise, pass along the
# server port the client connected to
map $http_x_forwarded_port $proxy_x_forwarded_port {
default $http_x_forwarded_port;
'' $server_port;
}
# If we receive Upgrade, set Connection to "upgrade"; otherwise, delete any
# Connection header that may have been passed to this server
map $http_upgrade $proxy_connection {
defaultupgrade;
''close;
}
server {
listen443ssl;
server_namewww.example.com;
ssl_certificatewww.example.com.crt;
ssl_certificate_keywww.example.com.key;
proxy_http_version1.1;
proxy_bufferingoff;
proxy_set_headerHost $http_host;
proxy_set_headerUpgrade $http_upgrade;
proxy_set_headerConnection $proxy_connection;
proxy_set_headerX-Real-IP $remote_addr;
proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_headerX-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_headerX-Forwarded-Host $proxy_x_forwarded_host;
location/ {
proxy_passhttp://$YOUR_UPSTREAM_SERVER_IP:8080/;
}
keepalive_timeout10;
}
}
설치 확인
W&B Server가 올바르게 구성되었는지 확인하십시오. 터미널에서 다음 코맨드를 실행합니다.
Organization 은 W&B 계정 또는 인스턴스의 루트 범위입니다. 계정 또는 인스턴스의 모든 작업은 사용자 관리, 팀 관리, 팀 내 프로젝트 관리, 사용량 추적 등을 포함하여 해당 루트 범위 내에서 수행됩니다.
Multi-tenant Cloud를 사용하는 경우, 각 Organization은 사업부, 개인 사용자, 다른 기업과의 합작 파트너십 등에 해당할 수 있습니다.
전용 클라우드(Dedicated Cloud) 또는 자체 관리 인스턴스를 사용하는 경우, 하나의 Organization에 해당합니다. 회사는 여러 사업부 또는 부서에 매핑하기 위해 여러 개의 전용 클라우드(Dedicated Cloud) 또는 자체 관리 인스턴스를 가질 수 있지만, 이는 사업 또는 부서 전체에서 AI 실무자를 관리하는 선택적인 방법입니다.
W&B 서버 LDAP 서버로 인증 정보를 인증합니다. 다음 가이드는 W&B 서버의 설정을 구성하는 방법을 설명합니다. 필수 및 선택적 설정과 시스템 설정 UI에서 LDAP 연결을 구성하는 방법에 대한 지침을 다룹니다. 또한 어드레스, 기본 식별 이름, 속성과 같은 LDAP 설정의 다양한 입력에 대한 정보를 제공합니다. 이러한 속성은 W&B 앱 UI 또는 환경 변수를 사용하여 지정할 수 있습니다. 익명 바인딩 또는 관리자 DN 및 비밀번호를 사용하여 바인딩을 설정할 수 있습니다.
W&B 관리자 역할만 LDAP 인증을 활성화하고 구성할 수 있습니다.
LDAP 연결 구성
W&B 앱으로 이동합니다.
오른쪽 상단에서 프로필 아이콘을 선택합니다. 드롭다운에서 시스템 설정을 선택합니다.
LDAP 클라이언트 구성을 토글합니다.
양식에 세부 정보를 추가합니다. 각 입력에 대한 자세한 내용은 설정 파라미터 섹션을 참조하세요.
설정 업데이트를 클릭하여 설정을 테스트합니다. 이렇게 하면 W&B 서버와 테스트 클라이언트/연결이 설정됩니다.
연결이 확인되면 LDAP 인증 활성화를 토글하고 설정 업데이트 버튼을 선택합니다.
다음 환경 변수를 사용하여 LDAP 연결을 설정합니다.
환경 변수
필수
예
LOCAL_LDAP_ADDRESS
예
ldaps://ldap.example.com:636
LOCAL_LDAP_BASE_DN
예
email=mail,group=gidNumber
LOCAL_LDAP_BIND_DN
아니요
cn=admin, dc=example,dc=org
LOCAL_LDAP_BIND_PW
아니요
LOCAL_LDAP_ATTRIBUTES
예
email=mail, group=gidNumber
LOCAL_LDAP_TLS_ENABLE
아니요
LOCAL_LDAP_GROUP_ALLOW_LIST
아니요
LOCAL_LDAP_LOGIN
아니요
각 환경 변수의 정의는 설정 파라미터 섹션을 참조하세요. 명확성을 위해 환경 변수 접두사 LOCAL_LDAP이 정의 이름에서 생략되었습니다.
설정 파라미터
다음 표는 필수 및 선택적 LDAP 설정을 나열하고 설명합니다.
환경 변수
정의
필수
ADDRESS
이는 W&B 서버를 호스팅하는 VPC 내의 LDAP 서버의 어드레스입니다.
예
BASE_DN
루트 경로는 검색이 시작되는 위치이며 이 디렉토리로 쿼리를 수행하는 데 필요합니다.
예
BIND_DN
LDAP 서버에 등록된 관리 사용자의 경로입니다. LDAP 서버가 인증되지 않은 바인딩을 지원하지 않는 경우에 필요합니다. 지정된 경우 W&B 서버는 이 사용자로 LDAP 서버에 연결합니다. 그렇지 않으면 W&B 서버는 익명 바인딩을 사용하여 연결합니다.
아니요
BIND_PW
관리 사용자의 비밀번호이며 바인딩을 인증하는 데 사용됩니다. 비워두면 W&B 서버는 익명 바인딩을 사용하여 연결합니다.
아니요
ATTRIBUTES
이메일 및 그룹 ID 속성 이름을 쉼표로 구분된 문자열 값으로 제공합니다.
예
TLS_ENABLE
TLS를 활성화합니다.
아니요
GROUP_ALLOW_LIST
그룹 허용 목록입니다.
아니요
LOGIN
이는 W&B 서버에 LDAP를 사용하여 인증하도록 지시합니다. True 또는 False로 설정합니다. 선택적으로 LDAP 설정을 테스트하려면 이를 false로 설정합니다. LDAP 인증을 시작하려면 이를 true로 설정합니다.
아니요
2.1.2 - Configure SSO with OIDC
Weights & Biases 서버는 OpenID Connect (OIDC) 호환 ID 공급자를 지원하므로 Okta, Keycloak, Auth0, Google, Entra와 같은 외부 ID 공급자를 통해 사용자 ID 및 그룹 멤버십을 관리할 수 있습니다.
OpenID Connect (OIDC)
W&B 서버는 외부 IdP(Identity Provider)와 통합하기 위해 다음과 같은 OIDC 인증 흐름을 지원합니다.
Form Post를 사용하는 암시적 흐름
PKCE(Proof Key for Code Exchange)를 사용하는 Authorization Code 흐름
이러한 흐름은 사용자를 인증하고 엑세스 제어를 관리하는 데 필요한 ID 정보(ID 토큰 형태)를 W&B 서버에 제공합니다.
ID 토큰은 이름, 사용자 이름, 이메일, 그룹 멤버십과 같은 사용자 ID 정보가 포함된 JWT입니다. W&B 서버는 이 토큰을 사용하여 사용자를 인증하고 시스템 내 적절한 역할 또는 그룹에 매핑합니다.
W&B 서버의 맥락에서 엑세스 토큰은 사용자를 대신하여 API에 대한 요청을 승인하지만 W&B 서버의 주요 관심사는 사용자 인증 및 ID이므로 ID 토큰만 필요합니다.
전용 클라우드 또는 자체 관리형 W&B 서버 설치를 위해 ID 공급자를 구성하는 데 도움이 되도록 다양한 IdP에 대한 다음 가이드라인을 따르세요. SaaS 버전의 W&B를 사용하는 경우 조직의 Auth0 테넌트 구성에 대한 지원은 support@wandb.com으로 문의하세요.
기본적으로 선택된 계정 유형은 “이 조직 디렉터리의 계정만 해당(기본 디렉터리만 해당 - 단일 테넌트)“입니다. 필요한 경우 수정합니다.
웹 유형으로 리디렉션 URI를 https://YOUR_W_AND_B_URL/oidc/callback 값으로 구성합니다.
“등록"을 클릭합니다.
“애플리케이션(클라이언트) ID” 및 “디렉터리(테넌트) ID"를 기록해 둡니다.
왼쪽에서 인증을 클릭합니다.
프런트 채널 로그아웃 URL 아래에 https://YOUR_W_AND_B_URL/logout을 지정합니다.
“저장"을 클릭합니다.
왼쪽에서 “인증서 및 암호"를 클릭합니다.
“클라이언트 암호"를 클릭한 다음 “새 클라이언트 암호"를 클릭합니다.
“클라이언트 암호 추가"라는 화면에서 다음과 같이 값을 채웁니다.
설명(예: “wandb”)을 입력합니다.
“만료"는 그대로 두거나 필요한 경우 변경합니다.
“추가"를 클릭합니다.
암호의 “값"을 기록해 둡니다. “암호 ID"는 필요하지 않습니다.
이제 세 가지 값을 기록해 두어야 합니다.
OIDC 클라이언트 ID
OIDC 클라이언트 암호
OIDC 발급자 URL에 테넌트 ID가 필요합니다.
OIDC 발급자 URL의 형식은 https://login.microsoftonline.com/${TenantID}/v2.0입니다.
W&B 서버에서 SSO 설정
SSO를 설정하려면 관리자 권한과 다음 정보가 필요합니다.
OIDC 클라이언트 ID
OIDC 인증 방법(implicit 또는 pkce)
OIDC 발급자 URL
OIDC 클라이언트 암호(선택 사항, IdP 설정 방법에 따라 다름)
IdP에 OIDC 클라이언트 암호가 필요한 경우 OIDC_CLIENT_SECRET 환경 변수를 사용하여 지정합니다.
W&B 서버 UI를 사용하거나 환경 변수를 wandb/local 포드로 전달하여 SSO를 구성할 수 있습니다. 환경 변수가 UI보다 우선합니다.
SSO를 구성한 후 인스턴스에 로그인할 수 없는 경우 LOCAL_RESTORE=true 환경 변수를 설정하여 인스턴스를 다시 시작할 수 있습니다. 그러면 컨테이너 로그에 임시 암호가 출력되고 SSO가 비활성화됩니다. SSO 문제를 해결한 후에는 SSO를 다시 활성화하려면 해당 환경 변수를 제거해야 합니다.
SSO를 구성한 후 인스턴스에 로그인할 수 없는 경우 LOCAL_RESTORE=true 환경 변수를 설정하여 인스턴스를 다시 시작할 수 있습니다. 그러면 컨테이너 로그에 임시 암호가 출력되고 SSO가 꺼집니다. SSO 문제를 해결한 후에는 SSO를 다시 활성화하려면 해당 환경 변수를 제거해야 합니다.
SAML(Security Assertion Markup Language)
W&B 서버는 SAML을 지원하지 않습니다.
2.1.3 - Use federated identities with SDK
W&B SDK를 통해 조직의 자격 증명을 사용하여 로그인하려면 아이덴티티 연동을 사용하세요. W&B 조직 관리자가 조직에 대해 SSO를 구성한 경우, 이미 조직의 자격 증명을 사용하여 W&B 앱 UI에 로그인하고 있을 것입니다. 이러한 의미에서 아이덴티티 연동은 W&B SDK에 대한 SSO와 유사하지만 JSON Web Tokens (JWTs)를 직접 사용한다는 차이점이 있습니다. API 키 대신 아이덴티티 연동을 사용할 수 있습니다.
아이덴티티 연동은 모든 플랫폼 유형 (SaaS Cloud, 전용 클라우드, 자체 관리 인스턴스)의 Enterprise 플랜에서 Preview로 사용할 수 있습니다. 질문이 있으시면 W&B 팀에 문의하세요.
이 문서의 목적을 위해 아이덴티티 공급자와 JWT 발급자라는 용어는 상호 교환적으로 사용됩니다. 둘 다 이 기능의 맥락에서 동일한 대상을 지칭합니다.
JWT 발급자 설정
첫 번째 단계로 조직 관리자는 W&B 조직과 공개적으로 엑세스 가능한 JWT 발급자 간의 연동을 설정해야 합니다.
조직 대시보드에서 설정 탭으로 이동합니다.
인증 옵션에서 JWT 발급자 설정을 누릅니다.
텍스트 상자에 JWT 발급자 URL을 추가하고 만들기를 누릅니다.
W&B는 자동으로 ${ISSUER_URL}/.well-known/oidc-configuration 경로에서 OIDC 검색 문서를 찾고 검색 문서의 관련 URL에서 JSON Web Key Set (JWKS)을 찾으려고 시도합니다. JWKS는 JWT가 관련 아이덴티티 공급자에 의해 발급되었는지 확인하기 위해 JWT의 실시간 유효성 검사에 사용됩니다.
JWT를 사용하여 W&B에 엑세스
W&B 조직에 대해 JWT 발급자가 설정되면 사용자는 해당 아이덴티티 공급자가 발급한 JWT를 사용하여 관련 W&B 프로젝트에 엑세스할 수 있습니다. JWT를 사용하는 메커니즘은 다음과 같습니다.
조직에서 사용할 수 있는 메커니즘 중 하나를 사용하여 아이덴티티 공급자에 로그인해야 합니다. 일부 공급자는 API 또는 SDK를 사용하여 자동화된 방식으로 엑세스할 수 있지만 일부는 관련 UI를 사용해야만 엑세스할 수 있습니다. 자세한 내용은 W&B 조직 관리자 또는 JWT 발급자 소유자에게 문의하세요.
아이덴티티 공급자에 로그인한 후 JWT를 검색했으면 안전한 위치의 파일에 저장하고 환경 변수 WANDB_IDENTITY_TOKEN_FILE에 절대 파일 경로를 구성합니다.
W&B SDK 또는 CLI를 사용하여 W&B 프로젝트에 엑세스합니다. SDK 또는 CLI는 JWT를 자동으로 감지하고 JWT가 성공적으로 유효성 검사된 후 W&B 엑세스 토큰으로 교환해야 합니다. W&B 엑세스 토큰은 AI 워크플로우를 활성화하기 위한 관련 API에 엑세스하는 데 사용됩니다. 즉, run, 메트릭, Artifacts 등을 로그합니다. 엑세스 토큰은 기본적으로 ~/.config/wandb/credentials.json 경로에 저장됩니다. 환경 변수 WANDB_CREDENTIALS_FILE을 지정하여 해당 경로를 변경할 수 있습니다.
JWT는 API 키, 비밀번호 등과 같은 오래 지속되는 자격 증명의 단점을 해결하기 위한 짧은 수명의 자격 증명입니다. 아이덴티티 공급자에 구성된 JWT 만료 시간에 따라 JWT를 계속 갱신하고 환경 변수 WANDB_IDENTITY_TOKEN_FILE에서 참조하는 파일에 저장해야 합니다.
W&B 엑세스 토큰에도 기본 만료 기간이 있으며, 그 후 SDK 또는 CLI는 JWT를 사용하여 자동으로 갱신하려고 시도합니다. 해당 시간까지 사용자 JWT도 만료되고 갱신되지 않으면 인증 실패가 발생할 수 있습니다. 가능하다면 JWT 검색 및 만료 후 갱신 메커니즘은 W&B SDK 또는 CLI를 사용하는 AI 워크로드의 일부로 구현해야 합니다.
JWT 유효성 검사
JWT를 W&B 엑세스 토큰으로 교환한 다음 프로젝트에 엑세스하는 워크플로우의 일부로 JWT는 다음 유효성 검사를 거칩니다.
JWT 서명은 W&B 조직 수준에서 JWKS를 사용하여 확인됩니다. 이것이 첫 번째 방어선이며, 실패하면 JWKS 또는 JWT 서명 방식에 문제가 있음을 의미합니다.
JWT의 iss 클레임은 조직 수준에서 구성된 발급자 URL과 같아야 합니다.
JWT의 sub 클레임은 W&B 조직에 구성된 사용자의 이메일 주소와 같아야 합니다.
JWT의 aud 클레임은 AI 워크플로우의 일부로 엑세스하는 프로젝트를 수용하는 W&B 조직의 이름과 같아야 합니다. 전용 클라우드 또는 자체 관리 인스턴스의 경우 인스턴스 수준 환경 변수 SKIP_AUDIENCE_VALIDATION을 true로 구성하여 대상 클레임의 유효성 검사를 건너뛰거나 wandb를 대상으로 사용할 수 있습니다.
JWT의 exp 클레임은 토큰이 유효한지 또는 만료되었는지 확인하기 위해 검사되며 갱신해야 합니다.
외부 서비스 계정
W&B는 오랫동안 오래 지속되는 API 키가 있는 기본 제공 서비스 계정을 지원해 왔습니다. SDK 및 CLI에 대한 아이덴티티 연동 기능을 사용하면 조직 수준에서 구성된 동일한 발급자가 발급한 경우 JWT를 인증에 사용할 수 있는 외부 서비스 계정을 가져올 수도 있습니다. 팀 관리자는 기본 제공 서비스 계정과 마찬가지로 팀 범위 내에서 외부 서비스 계정을 구성할 수 있습니다.
외부 서비스 계정을 구성하려면:
팀의 서비스 계정 탭으로 이동합니다.
새 서비스 계정을 누릅니다.
서비스 계정 이름을 제공하고 인증 방법으로 Federated Identity를 선택하고 Subject를 제공하고 만들기를 누릅니다.
외부 서비스 계정의 sub 클레임은 팀 관리자가 팀 수준 서비스 계정 탭에서 해당 제목으로 구성한 것과 동일해야 합니다. 해당 클레임은 JWT 유효성 검사의 일부로 확인됩니다. aud 클레임 요구 사항은 인간 사용자 JWT의 요구 사항과 유사합니다.
외부 서비스 계정의 JWT를 사용하여 W&B에 엑세스할 때 초기 JWT를 생성하고 지속적으로 갱신하는 워크플로우를 자동화하는 것이 일반적으로 더 쉽습니다. 외부 서비스 계정을 사용하여 기록된 run을 인간 사용자에게 귀속시키려면 기본 제공 서비스 계정에 대해 수행되는 방식과 유사하게 AI 워크플로우에 대해 환경 변수 WANDB_USERNAME 또는 WANDB_USER_EMAIL을 구성할 수 있습니다.
W&B는 유연성과 단순성 사이의 균형을 맞추기 위해 다양한 수준의 데이터 민감도를 가진 AI 워크로드에서 기본 제공 및 외부 서비스 계정의 조합을 사용하는 것이 좋습니다.
2.1.4 - Use service accounts to automate workflows
org 및 팀 범위의 서비스 계정을 사용하여 자동화된 워크플로우 또는 비대화형 워크플로우를 관리하세요.
서비스 계정은 팀 내 또는 팀 간의 프로젝트에서 일반적인 작업을 자동으로 수행할 수 있는 비인간 또는 머신 사용자를 나타냅니다.
조직 관리자는 조직 범위에서 서비스 계정을 만들 수 있습니다.
팀 관리자는 해당 팀 범위에서 서비스 계정을 만들 수 있습니다.
서비스 계정의 API 키를 통해 호출자는 서비스 계정 범위 내에서 프로젝트를 읽거나 쓸 수 있습니다.
서비스 계정을 사용하면 여러 사용자 또는 팀에서 워크플로우를 중앙 집중식으로 관리하고, W&B Models에 대한 실험 트래킹을 자동화하거나, W&B Weave에 대한 추적을 기록할 수 있습니다. 환경 변수WANDB_USERNAME 또는 WANDB_USER_EMAIL을 사용하여 서비스 계정에서 관리하는 워크플로우와 인간 사용자의 ID를 연결할 수 있습니다.
조직 범위의 서비스 계정은 제한된 프로젝트를 제외하고 팀에 관계없이 조직의 모든 프로젝트에서 읽고 쓸 수 있는 권한을 갖습니다. 조직 범위의 서비스 계정이 제한된 프로젝트에 엑세스하려면 해당 프로젝트의 관리자가 서비스 계정을 프로젝트에 명시적으로 추가해야 합니다.
조직 관리자는 조직 또는 계정 대시보드의 Service Accounts 탭에서 조직 범위의 서비스 계정에 대한 API 키를 얻을 수 있습니다.
새로운 조직 범위의 서비스 계정을 만들려면:
조직 대시보드의 Service Accounts 탭에서 New service account 버튼을 클릭합니다.
Name을 입력합니다.
서비스 계정의 기본 팀을 선택합니다.
Create를 클릭합니다.
새로 생성된 서비스 계정 옆에 있는 Copy API key를 클릭합니다.
복사한 API 키를 비밀 관리자 또는 안전하지만 엑세스 가능한 다른 위치에 저장합니다.
조직 범위의 서비스 계정은 조직 내의 모든 팀이 소유한 제한되지 않은 프로젝트에 엑세스할 수 있더라도 기본 팀이 필요합니다. 이는 모델 트레이닝 또는 생성적 AI 앱의 환경에서 WANDB_ENTITY 변수가 설정되지 않은 경우 워크로드가 실패하는 것을 방지하는 데 도움이 됩니다. 다른 팀의 프로젝트에 조직 범위의 서비스 계정을 사용하려면 WANDB_ENTITY 환경 변수를 해당 팀으로 설정해야 합니다.
팀 범위 서비스 계정
팀 범위의 서비스 계정은 해당 팀의 제한된 프로젝트를 제외하고 팀 내의 모든 프로젝트에서 읽고 쓸 수 있습니다. 팀 범위의 서비스 계정이 제한된 프로젝트에 엑세스하려면 해당 프로젝트의 관리자가 서비스 계정을 프로젝트에 명시적으로 추가해야 합니다.
팀 관리자는 팀의 <WANDB_HOST_URL>/<your-team-name>/service-accounts에서 팀 범위의 서비스 계정에 대한 API 키를 얻을 수 있습니다. 또는 팀의 Team settings로 이동한 다음 Service Accounts 탭을 참조할 수 있습니다.
팀의 새로운 팀 범위 서비스 계정을 만들려면:
팀의 Service Accounts 탭에서 New service account 버튼을 클릭합니다.
Name을 입력합니다.
인증 방법으로 **Generate API key (Built-in)**을 선택합니다.
Create를 클릭합니다.
새로 생성된 서비스 계정 옆에 있는 Copy API key를 클릭합니다.
복사한 API 키를 비밀 관리자 또는 안전하지만 엑세스 가능한 다른 위치에 저장합니다.
팀 범위의 서비스 계정을 사용하는 모델 트레이닝 또는 생성적 AI 앱 환경에서 팀을 구성하지 않으면 모델 run 또는 weave 추적이 서비스 계정의 상위 팀 내에서 명명된 프로젝트에 기록됩니다. 이러한 시나리오에서 WANDB_USERNAME 또는 WANDB_USER_EMAIL 변수를 사용한 사용자 속성은 참조된 사용자가 서비스 계정의 상위 팀에 속하지 않는 한 작동하지 않습니다.
팀 범위의 서비스 계정은 상위 팀과 다른 팀의 팀 또는 제한 범위 프로젝트에 run을 기록할 수 없지만 다른 팀 내에서 공개 가시성 프로젝트에 run을 기록할 수 있습니다.
외부 서비스 계정
Built-in 서비스 계정 외에도 W&B는 JSON 웹 토큰(JWT)을 발급할 수 있는 ID 공급자(IdP)와 함께 Identity federation를 사용하여 W&B SDK 및 CLI를 통해 팀 범위의 External service accounts를 지원합니다.
2.2 - Access management
조직 내에서 사용자 및 팀 관리하기
고유한 조직 도메인으로 W&B에 처음 가입하는 사용자는 해당 조직의 인스턴스 관리자 역할로 지정됩니다. 조직 관리자는 특정 사용자에게 팀 관리자 역할을 할당합니다.
W&B는 조직에 둘 이상의 인스턴스 관리자를 두는 것을 권장합니다. 이는 기본 관리자가 없을 때 관리 작업을 계속할 수 있도록 보장하는 가장 좋은 방법입니다.
팀 관리자는 팀 내에서 관리 권한을 가진 조직의 사용자입니다.
조직 관리자는 https://wandb.ai/account-settings/에서 조직의 계정 설정을 엑세스하고 사용하여 사용자를 초대하고, 사용자의 역할을 할당하거나 업데이트하고, 팀을 만들고, 조직에서 사용자를 제거하고, 청구 관리자를 할당하는 등의 작업을 수행할 수 있습니다. 자세한 내용은 사용자 추가 및 관리를 참조하세요.
조직 관리자가 팀을 생성하면 인스턴스 관리자 또는 팀 관리자는 다음을 수행할 수 있습니다.
기본적으로 관리자만 해당 팀에 사용자를 초대하거나 팀에서 사용자를 제거할 수 있습니다. 이 행동 을 변경하려면 팀 설정을 참조하세요.
팀 멤버의 역할을 할당하거나 업데이트합니다.
새 사용자가 조직에 가입할 때 자동으로 팀에 추가합니다.
조직 관리자와 팀 관리자는 모두 https://wandb.ai/<your-team-name>에서 팀 대시보드 를 사용하여 팀을 관리합니다. 자세한 내용과 팀의 기본 개인 정보 보호 설정을 구성하려면 팀 추가 및 관리를 참조하세요.
특정 Projects 에 대한 가시성 제한
W&B project 의 범위를 정의하여 누가 W&B runs 를 보고, 편집하고, 제출할 수 있는지 제한합니다. 팀이 민감하거나 기밀 데이터를 다루는 경우 project 를 볼 수 있는 사람을 제한하는 것이 특히 유용합니다.
조직 관리자, 팀 관리자 또는 project 소유자는 project 의 가시성을 설정하고 편집할 수 있습니다.
W&B는 자동 프로비저닝 사용자에게 기본적으로 “Member” 역할을 할당합니다. 자동 프로비저닝 사용자의 역할은 언제든지 변경할 수 있습니다.
SSO를 통한 자동 프로비저닝 사용자는 Dedicated Cloud 인스턴스 및 Self-managed 배포에서 기본적으로 켜져 있습니다. 자동 프로비저닝을 끌 수 있습니다. 자동 프로비저닝을 끄면 특정 사용자를 W&B Organization에 선택적으로 추가할 수 있습니다.
다음 탭에서는 배포 유형에 따라 SSO를 끄는 방법을 설명합니다.
Dedicated Cloud 인스턴스를 사용 중이고 SSO를 통한 자동 프로비저닝을 끄려면 W&B Team에 문의하십시오.
W&B Console을 사용하여 SSO를 통한 자동 프로비저닝을 끕니다.
https://<org-name>.io/console/settings/로 이동합니다. <org-name>을 Organization 이름으로 바꿉니다.
Security를 선택합니다.
Disable SSO Provisioning을 선택하여 SSO를 통한 자동 프로비저닝을 끕니다.
SSO를 통한 자동 프로비저닝은 Organization 관리자가 개별 사용자 초대를 생성할 필요가 없기 때문에 대규모로 사용자를 Organization에 추가하는 데 유용합니다.
사용자 지정 역할 만들기
Dedicated Cloud 또는 Self-managed 배포에서 사용자 지정 역할을 만들거나 할당하려면 Enterprise 라이선스가 필요합니다.
Organization 관리자는 View-Only 또는 Member 역할을 기반으로 새 역할을 구성하고 세분화된 엑세스 제어를 위해 추가 권한을 추가할 수 있습니다. Team 관리자는 Team member에게 사용자 지정 역할을 할당할 수 있습니다. 사용자 지정 역할은 Organization 수준에서 생성되지만 Team 수준에서 할당됩니다.
페이지 오른쪽 상단에서 User menu 드롭다운을 선택합니다. 드롭다운의 Account 섹션에서 Settings를 선택합니다.
Roles를 클릭합니다.
Custom roles 섹션에서 Create a role을 클릭합니다.
역할 이름을 입력합니다. 선택적으로 설명을 입력합니다.
사용자 지정 역할의 기반으로 사용할 역할을 선택합니다 (Viewer 또는 Member).
권한을 추가하려면 Search permissions 필드를 클릭한 다음 추가할 권한을 하나 이상 선택합니다.
역할에 있는 권한을 요약하는 Custom role permissions 섹션을 검토합니다.
Create Role을 클릭합니다.
W&B Console을 사용하여 SSO를 통한 자동 프로비저닝을 끕니다.
https://<org-name>.io/console/settings/로 이동합니다. <org-name>을 Organization 이름으로 바꿉니다.
Custom roles 섹션에서 Create a role을 클릭합니다.
역할 이름을 입력합니다. 선택적으로 설명을 입력합니다.
사용자 지정 역할의 기반으로 사용할 역할을 선택합니다 (Viewer 또는 Member).
권한을 추가하려면 Search permissions 필드를 클릭한 다음 추가할 권한을 하나 이상 선택합니다.
역할에 있는 권한을 요약하는 Custom role permissions 섹션을 검토합니다.
Create Role을 클릭합니다.
이제 Team 관리자는 Team 설정에서 Team의 구성원에게 사용자 지정 역할을 할당할 수 있습니다.
도메인 캡처
도메인 캡처는 직원이 회사 Organization에 가입하여 새 사용자가 회사 관할 구역 외부에서 에셋을 생성하지 않도록 하는 데 도움이 됩니다.
도메인은 고유해야 합니다.
도메인은 고유한 식별자입니다. 즉, 다른 Organization에서 이미 사용 중인 도메인은 사용할 수 없습니다.
도메인 캡처를 사용하면 @example.com과 같은 회사 이메일 주소를 가진 사람들을 W&B SaaS Cloud Organization에 자동으로 추가할 수 있습니다. 이는 모든 직원이 올바른 Organization에 가입하고 새 사용자가 회사 관할 구역 외부에서 에셋을 생성하지 않도록 하는 데 도움이 됩니다.
다음 표는 도메인 캡처 활성화 여부에 따른 신규 및 기존 사용자의 행동을 요약한 것입니다.
도메인 캡처 사용
도메인 캡처 사용 안 함
신규 사용자
확인된 도메인에서 W&B에 가입하는 사용자는 Organization의 기본 Team에 자동으로 구성원으로 추가됩니다. Team 가입을 활성화하면 가입 시 추가 Team을 선택할 수 있습니다. 초대장을 통해 다른 Organization 및 Team에 가입할 수도 있습니다.
사용자는 사용 가능한 중앙 집중식 Organization이 있는지 모르고 W&B 계정을 만들 수 있습니다.
초대된 사용자
초대된 사용자는 초대를 수락하면 자동으로 Organization에 가입합니다. 초대된 사용자는 Organization의 기본 Team에 자동으로 구성원으로 추가되지 않습니다. 초대장을 통해 다른 Organization 및 Team에 가입할 수도 있습니다.
초대된 사용자는 초대를 수락하면 자동으로 Organization에 가입합니다. 초대장을 통해 다른 Organization 및 Team에 가입할 수도 있습니다.
기존 사용자
도메인의 확인된 이메일 주소를 가진 기존 사용자는 W&B 앱 내에서 Organization의 Teams에 가입할 수 있습니다. 기존 사용자가 Organization에 가입하기 전에 생성한 모든 데이터는 유지됩니다. W&B는 기존 사용자의 데이터를 마이그레이션하지 않습니다.
기존 W&B 사용자는 여러 Organization 및 Teams에 분산될 수 있습니다.
초대받지 않은 신규 사용자가 Organization에 가입할 때 기본 Team에 자동으로 할당하려면:
페이지 오른쪽 상단에서 User menu 드롭다운을 선택합니다. 드롭다운에서 Settings를 선택합니다.
Settings 탭에서 General을 선택합니다.
Domain capture 내에서 Claim domain 버튼을 선택합니다.
Default team 드롭다운에서 새 사용자를 자동으로 가입시킬 Team을 선택합니다. 사용 가능한 Team이 없으면 Team 설정을 업데이트해야 합니다. Teams 추가 및 관리의 지침을 참조하십시오.
Claim email domain 버튼을 클릭합니다.
초대받지 않은 신규 사용자를 Team에 자동으로 할당하려면 먼저 Team 설정 내에서 도메인 일치를 활성화해야 합니다.
https://wandb.ai/<team-name>에서 Team의 대시보드로 이동합니다. 여기서 <team-name>은 도메인 일치를 활성화할 Team의 이름입니다.
Team 대시보드의 왼쪽 탐색 모음에서 Team settings를 선택합니다.
Privacy 섹션 내에서 “가입 시 일치하는 이메일 도메인을 가진 새 사용자가 이 Team에 가입하도록 추천” 옵션을 토글합니다.
도메인 캡처를 구성하려면 Dedicated 또는 Self-managed 배포 유형을 사용하는 경우 W&B Account Team에 문의하십시오. 구성되면 W&B SaaS 인스턴스는 회사 이메일 주소로 W&B 계정을 만드는 사용자에게 관리자에게 연락하여 Dedicated 또는 Self-managed 인스턴스에 대한 엑세스를 요청하라는 메시지를 자동으로 표시합니다.
도메인 캡처 사용
도메인 캡처 사용 안 함
신규 사용자
확인된 도메인에서 SaaS Cloud에서 W&B에 가입하는 사용자는 사용자 지정하는 이메일 주소로 관리자에게 연락하라는 메시지가 자동으로 표시됩니다. SaaS Cloud에서 Organizations을 만들어 제품을 트라이얼할 수도 있습니다.
사용자는 회사에 중앙 집중식 Dedicated 인스턴스가 있다는 것을 모른 채 W&B SaaS Cloud 계정을 만들 수 있습니다.
기존 사용자
기존 W&B 사용자는 여러 Organization 및 Teams에 분산될 수 있습니다.
기존 W&B 사용자는 여러 Organization 및 Teams에 분산될 수 있습니다.
사용자의 역할 할당 또는 업데이트
Organization의 모든 구성원은 W&B Models 및 Weave 모두에 대한 Organization 역할과 Seat를 갖습니다. 그들이 가지고 있는 Seat 유형은 그들의 결제 상태와 각 제품 라인에서 그들이 할 수 있는 작업을 결정합니다.
사용자를 Organization에 초대할 때 처음으로 Organization 역할을 할당합니다. 나중에 사용자의 역할을 변경할 수 있습니다.
Organization 내의 사용자는 다음 역할 중 하나를 가질 수 있습니다.
역할
설명
admin
다른 사용자를 Organization에 추가하거나 제거하고, 사용자 역할을 변경하고, 사용자 지정 역할을 관리하고, Teams를 추가할 수 있는 인스턴스 관리자입니다. W&B는 관리자가 부재중인 경우를 대비하여 둘 이상의 관리자가 있는지 확인하는 것이 좋습니다.
Member
인스턴스 관리자가 초대한 Organization의 일반 사용자입니다. Organization member는 다른 사용자를 초대하거나 Organization의 기존 사용자를 관리할 수 없습니다.
Viewer (Enterprise 전용 기능)
인스턴스 관리자가 초대한 Organization의 보기 전용 사용자입니다. Viewer는 Organization과 그들이 구성원인 기본 Teams에 대한 읽기 엑세스 권한만 있습니다.
사용자 지정 역할 (Enterprise 전용 기능)
사용자 지정 역할을 통해 Organization 관리자는 이전 View-Only 또는 Member 역할에서 상속하고 세분화된 엑세스 제어를 위해 추가 권한을 추가하여 새 역할을 구성할 수 있습니다. 그런 다음 Team 관리자는 해당 사용자 지정 역할을 각 Teams의 사용자에게 할당할 수 있습니다.
페이지 오른쪽 상단에서 User menu 드롭다운을 선택합니다. 드롭다운에서 Users를 선택합니다.
검색 창에 사용자의 이름 또는 이메일을 입력합니다.
사용자 이름 옆에 있는 TEAM ROLE 드롭다운에서 역할을 선택합니다.
사용자 엑세스 할당 또는 업데이트
Organization 내의 사용자는 다음 Models Seat 또는 Weave 엑세스 유형 중 하나를 갖습니다. full, viewer 또는 no access.
Seat 유형
설명
Full
이 역할 유형을 가진 사용자는 Models 또는 Weave에 대한 데이터를 쓰고, 읽고, 내보낼 수 있는 모든 권한을 갖습니다.
Viewer
Organization의 보기 전용 사용자입니다. Viewer는 Organization과 그들이 속한 기본 Teams에 대한 읽기 엑세스 권한만 있고 Models 또는 Weave에 대한 보기 전용 엑세스 권한만 있습니다.
No access
이 역할을 가진 사용자는 Models 또는 Weave 제품에 대한 엑세스 권한이 없습니다.
Model Seat 유형 및 Weave 엑세스 유형은 Organization 수준에서 정의되며 Team에서 상속됩니다. 사용자의 Seat 유형을 변경하려면 Organization 설정으로 이동하여 다음 단계를 따르십시오.
SaaS 사용자의 경우 https://wandb.ai/account-settings/<organization>/settings에서 Organization 설정으로 이동합니다. 꺾쇠 괄호 (<>)로 묶인 값을 Organization 이름으로 바꿔야 합니다. 다른 Dedicated 및 Self-managed 배포의 경우 https://<your-instance>.wandb.io/org/dashboard로 이동합니다.
Users 탭을 선택합니다.
Role 드롭다운에서 사용자에게 할당할 Seat 유형을 선택합니다.
Organization 역할과 구독 유형에 따라 Organization 내에서 사용할 수 있는 Seat 유형이 결정됩니다.
새 사용자가 가입할 때 Organization 내에서 Teams를 검색할 수 있도록 허용합니다. 새 사용자는 Organization의 확인된 이메일 도메인과 일치하는 확인된 이메일 도메인이 있어야 합니다. 확인된 새 사용자는 W&B 계정에 가입할 때 Organization에 속한 확인된 Teams 목록을 볼 수 있습니다.
Organization 관리자는 도메인 클레임을 활성화해야 합니다. 도메인 캡처를 활성화하려면 도메인 캡처에 설명된 단계를 참조하십시오.
Team member의 역할 할당 또는 업데이트
Team member 이름 옆에 있는 계정 유형 아이콘을 선택합니다.
드롭다운에서 해당 Team member가 가질 계정 유형을 선택합니다.
다음 표는 Team 구성원에게 할당할 수 있는 역할을 나열합니다.
역할
정의
admin
Team에서 다른 사용자를 추가 및 제거하고, 사용자 역할을 변경하고, Team 설정을 구성할 수 있는 사용자입니다.
Member
Team 관리자가 이메일 또는 Organization 수준 사용자 이름으로 초대한 Team의 일반 사용자입니다. member 사용자는 다른 사용자를 Team에 초대할 수 없습니다.
View-Only (Enterprise 전용 기능)
Team 관리자가 이메일 또는 Organization 수준 사용자 이름으로 초대한 Team의 보기 전용 사용자입니다. 보기 전용 사용자는 Team과 그 내용에 대한 읽기 엑세스 권한만 있습니다.
Service (Enterprise 전용 기능)
서비스 작업자 또는 서비스 계정은 run 자동화 툴로 W&B를 활용하는 데 유용한 API 키입니다. Team의 서비스 계정에서 API 키를 사용하는 경우 환경 변수 WANDB_USERNAME을 설정하여 run을 적절한 사용자에게 올바르게 할당해야 합니다.
사용자 지정 역할 (Enterprise 전용 기능)
사용자 지정 역할을 통해 Organization 관리자는 이전 View-Only 또는 Member 역할에서 상속하고 세분화된 엑세스 제어를 위해 추가 권한을 추가하여 새 역할을 구성할 수 있습니다. 그런 다음 Team 관리자는 해당 사용자 지정 역할을 각 Teams의 사용자에게 할당할 수 있습니다. 자세한 내용은 이 문서를 참조하십시오.
Dedicated Cloud 또는 Self-managed 배포의 Enterprise 라이선스만 Team 구성원에게 사용자 지정 역할을 할당할 수 있습니다.
Team에서 사용자 제거
Team의 대시보드를 사용하여 Team에서 사용자를 제거합니다. W&B는 run을 생성한 구성원이 더 이상 해당 Team에 없더라도 Team에서 생성된 run을 보존합니다.
https://wandb.ai/<team-name>로 이동합니다.
왼쪽 네비게이션 바에서 Team settings를 선택합니다.
Users 탭을 선택합니다.
삭제할 사용자 이름 옆에 마우스를 가져갑니다. 나타날 때 줄임표 또는 세 개의 점 아이콘 (…)을 선택합니다.
드롭다운에서 Remove user를 선택합니다.
2.2.2 - Manage access control for projects
가시성 범위와 프로젝트 수준 역할을 사용하여 프로젝트 엑세스 를 관리합니다.
W&B 프로젝트의 범위를 정의하여 누가 해당 프로젝트를 보고, 편집하고, W&B run을 제출할 수 있는지 제한합니다.
W&B 팀 내의 모든 프로젝트에 대한 엑세스 수준을 구성하기 위해 몇 가지 제어 기능을 함께 사용할 수 있습니다. 가시성 범위는 더 높은 수준의 메커니즘입니다. 이를 사용하여 어떤 사용자 그룹이 프로젝트에서 run을 보거나 제출할 수 있는지 제어합니다. Team 또는 Restricted 가시성 범위를 가진 프로젝트의 경우 프로젝트 수준 역할을 사용하여 각 사용자가 프로젝트 내에서 갖는 엑세스 수준을 제어할 수 있습니다.
프로젝트 소유자, 팀 관리자 또는 조직 관리자는 프로젝트의 가시성을 설정하거나 편집할 수 있습니다.
가시성 범위
선택할 수 있는 프로젝트 가시성 범위는 네 가지가 있습니다. 가장 공개적인 것부터 가장 사적인 것 순으로 나열하면 다음과 같습니다.
범위
설명
Open
프로젝트에 대해 알고 있는 사람은 누구나 보고 run 또는 리포트를 제출할 수 있습니다.
Public
프로젝트에 대해 알고 있는 사람은 누구나 볼 수 있습니다. 팀만 run 또는 리포트를 제출할 수 있습니다.
Team
상위 팀의 팀 멤버만 프로젝트를 보고 run 또는 리포트를 제출할 수 있습니다. 팀 외부의 사람은 프로젝트에 엑세스할 수 없습니다.
Restricted
상위 팀에서 초대받은 팀 멤버만 프로젝트를 보고 run 또는 리포트를 제출할 수 있습니다.
민감하거나 기밀 데이터와 관련된 워크플로우에서 협업하려면 프로젝트의 범위를 Restricted로 설정하세요. 팀 내에서 제한된 프로젝트를 생성할 때 팀의 특정 팀 멤버를 초대하거나 추가하여 관련 Experiments, Artifacts, 리포트 등에서 협업할 수 있습니다.
다른 프로젝트 범위와 달리 팀의 모든 팀 멤버가 제한된 프로젝트에 대한 암묵적인 엑세스 권한을 얻는 것은 아닙니다. 동시에 팀 관리자는 필요한 경우 제한된 프로젝트에 참여할 수 있습니다.
새 프로젝트 또는 기존 프로젝트에서 가시성 범위 설정
프로젝트를 생성할 때 또는 나중에 편집할 때 프로젝트의 가시성 범위를 설정합니다.
프로젝트 소유자 또는 팀 관리자만 가시성 범위를 설정하거나 편집할 수 있습니다.
팀 관리자가 팀의 개인 정보 설정 내에서 **향후 모든 팀 프로젝트를 비공개로 설정(공개 공유 불가)**를 활성화하면 해당 팀에 대해 Open 및 Public 프로젝트 가시성 범위가 해제됩니다. 이 경우 팀은 Team 및 Restricted 범위만 사용할 수 있습니다.
새 프로젝트를 생성할 때 가시성 범위 설정
SaaS Cloud, 전용 클라우드 또는 자체 관리 인스턴스에서 W&B 조직으로 이동합니다.
왼쪽 사이드바의 내 프로젝트 섹션에서 새 프로젝트 만들기 버튼을 클릭합니다. 또는 팀의 Projects 탭으로 이동하여 오른쪽 상단 모서리에 있는 새 프로젝트 만들기 버튼을 클릭합니다.
상위 팀을 선택하고 프로젝트 이름을 입력한 후 프로젝트 가시성 드롭다운에서 원하는 범위를 선택합니다.
Restricted 가시성을 선택한 경우 다음 단계를 완료하십시오.
팀 멤버 초대 필드에 하나 이상의 W&B 팀 멤버 이름을 입력합니다. 프로젝트에서 협업하는 데 필수적인 팀 멤버만 추가하십시오.
Users 탭에서 나중에 제한된 프로젝트에서 팀 멤버를 추가하거나 제거할 수 있습니다.
기존 프로젝트의 가시성 범위 편집
W&B 프로젝트로 이동합니다.
왼쪽 열에서 Overview 탭을 선택합니다.
오른쪽 상단 모서리에 있는 프로젝트 세부 정보 편집 버튼을 클릭합니다.
프로젝트 가시성 드롭다운에서 원하는 범위를 선택합니다.
Restricted 가시성을 선택한 경우 다음 단계를 완료하십시오.
프로젝트의 Users 탭으로 이동하여 사용자 추가 버튼을 클릭하여 특정 사용자를 제한된 프로젝트에 초대합니다.
필요한 팀 멤버를 프로젝트에 초대하지 않으면 가시성 범위를 Team에서 Restricted로 변경하면 팀의 모든 팀 멤버가 프로젝트에 대한 엑세스 권한을 잃게 됩니다.
가시성 범위를 Restricted에서 Team으로 변경하면 팀의 모든 팀 멤버가 프로젝트에 대한 엑세스 권한을 얻게 됩니다.
제한된 프로젝트의 사용자 목록에서 팀 멤버를 제거하면 해당 프로젝트에 대한 엑세스 권한을 잃게 됩니다.
제한된 범위에 대한 기타 주요 참고 사항
제한된 프로젝트에서 팀 수준 서비스 계정을 사용하려면 해당 계정을 프로젝트에 특별히 초대하거나 추가해야 합니다. 그렇지 않으면 팀 수준 서비스 계정은 기본적으로 제한된 프로젝트에 엑세스할 수 없습니다.
제한된 프로젝트에서 run을 이동할 수는 없지만 제한되지 않은 프로젝트에서 제한된 프로젝트로 run을 이동할 수 있습니다.
팀 개인 정보 설정 **향후 모든 팀 프로젝트를 비공개로 설정(공개 공유 불가)**에 관계없이 제한된 프로젝트의 가시성을 Team 범위로만 변환할 수 있습니다.
제한된 프로젝트의 소유자가 더 이상 상위 팀에 속하지 않으면 팀 관리자는 프로젝트에서 원활한 운영을 보장하기 위해 소유자를 변경해야 합니다.
프로젝트 수준 역할
팀의 Team 또는 Restricted 범위 프로젝트의 경우 사용자에게 특정 역할을 할당할 수 있으며, 이는 해당 사용자의 팀 수준 역할과 다를 수 있습니다. 예를 들어 사용자가 팀 수준에서 Member 역할을 하는 경우 해당 팀의 Team 또는 Restricted 범위 프로젝트 내에서 해당 사용자에게 View-Only 또는 Admin 또는 사용 가능한 사용자 지정 역할을 할당할 수 있습니다.
프로젝트 수준 역할은 SaaS Cloud, 전용 클라우드 및 자체 관리 인스턴스에서 미리 보기로 제공됩니다.
사용자에게 프로젝트 수준 역할 할당
W&B 프로젝트로 이동합니다.
왼쪽 열에서 Overview 탭을 선택합니다.
프로젝트의 Users 탭으로 이동합니다.
프로젝트 역할 필드에서 해당 사용자에 대해 현재 할당된 역할을 클릭하면 다른 사용 가능한 역할 목록이 있는 드롭다운이 열립니다.
드롭다운에서 다른 역할을 선택합니다. 즉시 저장됩니다.
사용자의 프로젝트 수준 역할을 팀 수준 역할과 다르게 변경하면 프로젝트 수준 역할에 차이를 나타내는 *****가 포함됩니다.
프로젝트 수준 역할에 대한 기타 주요 참고 사항
기본적으로 team 또는 restricted 범위 프로젝트의 모든 사용자에 대한 프로젝트 수준 역할은 해당 팀 수준 역할을 상속합니다.
팀 수준에서 View-only 역할을 가진 사용자의 프로젝트 수준 역할은 변경할 수 없습니다.
특정 프로젝트 내에서 사용자의 프로젝트 수준 역할이 팀 수준 역할과 동일하고 팀 관리자가 팀 수준 역할을 변경하면 관련 프로젝트 역할이 자동으로 변경되어 팀 수준 역할을 추적합니다.
특정 프로젝트 내에서 사용자의 프로젝트 수준 역할을 팀 수준 역할과 다르게 변경하고 팀 관리자가 팀 수준 역할을 변경하면 관련 프로젝트 수준 역할은 그대로 유지됩니다.
프로젝트 수준 역할이 팀 수준 역할과 다른 경우 restricted 프로젝트에서 사용자를 제거하고 일정 시간이 지난 후 사용자를 프로젝트에 다시 추가하면 기본 동작으로 인해 팀 수준 역할을 상속합니다. 필요한 경우 프로젝트 수준 역할을 다시 변경하여 팀 수준 역할과 다르게 만들어야 합니다.
2.3 - Automate user and team management
SCIM API
SCIM API를 사용하여 사용자 및 사용자가 속한 Teams를 효율적이고 반복 가능한 방식으로 관리합니다. SCIM API를 사용하여 사용자 정의 역할을 관리하거나 W&B organization의 사용자에게 역할을 할당할 수도 있습니다. 역할 엔드포인트는 공식 SCIM 스키마의 일부가 아닙니다. W&B는 사용자 정의 역할의 자동 관리를 지원하기 위해 역할 엔드포인트를 추가합니다.
SCIM API는 다음과 같은 경우에 특히 유용합니다.
사용자 프로비저닝 및 프로비저닝 해제를 대규모로 관리하려는 경우
SCIM을 지원하는 ID 공급자로 사용자를 관리하려는 경우
SCIM API는 크게 User, Group, Roles의 세 가지 범주로 나뉩니다.
User SCIM API
User SCIM API를 사용하면 W&B organization에서 사용자를 생성, 비활성화, 사용자 세부 정보를 가져오거나 모든 사용자 목록을 가져올 수 있습니다. 이 API는 organization의 사용자에게 미리 정의된 역할 또는 사용자 정의 역할을 할당하는 기능도 지원합니다.
DELETE User 엔드포인트를 사용하여 W&B organization 내에서 사용자를 비활성화합니다. 비활성화된 사용자는 더 이상 로그인할 수 없습니다. 그러나 비활성화된 사용자는 organization의 사용자 목록에 계속 표시됩니다.
Group SCIM API를 사용하면 organization에서 Teams를 생성하거나 제거하는 것을 포함하여 W&B Teams를 관리할 수 있습니다. PATCH Group을 사용하여 기존 Team에서 사용자를 추가하거나 제거합니다.
W&B에는 동일한 역할을 가진 사용자 그룹이라는 개념이 없습니다. W&B Team은 그룹과 매우 유사하며, 서로 다른 역할을 가진 다양한 사용자가 관련 Projects 집합에서 공동으로 작업할 수 있도록 합니다. Teams는 서로 다른 사용자 그룹으로 구성될 수 있습니다. Team의 각 사용자에게 Team 관리자, 멤버, 뷰어 또는 사용자 정의 역할과 같은 역할을 할당합니다.
W&B는 그룹과 W&B Teams 간의 유사성 때문에 Group SCIM API 엔드포인트를 W&B Teams에 매핑합니다.
Custom role API
Custom role SCIM API를 사용하면 organization에서 사용자 정의 역할을 생성, 나열 또는 업데이트하는 것을 포함하여 사용자 정의 역할을 관리할 수 있습니다.
사용자 정의 역할을 삭제할 때는 주의하십시오.
DELETE Role 엔드포인트를 사용하여 W&B organization 내에서 사용자 정의 역할을 삭제합니다. 사용자 정의 역할이 상속하는 미리 정의된 역할은 작업 전에 사용자 정의 역할이 할당된 모든 사용자에게 할당됩니다.
PUT Role 엔드포인트를 사용하여 사용자 정의 역할에 대해 상속된 역할을 업데이트합니다. 이 작업은 사용자 정의 역할의 기존 사용자 정의 권한(즉, 상속되지 않은 사용자 정의 권한)에는 영향을 주지 않습니다.
W&B Python SDK API
SCIM API를 통해 사용자 및 Team 관리를 자동화할 수 있는 것처럼 W&B Python SDK API에서 사용할 수 있는 일부 메소드를 사용하여 이 목적을 달성할 수도 있습니다. 다음 메소드를 기록해 두십시오.
SCIM(System for Cross-domain Identity Management) API를 통해 인스턴스 또는 organization 관리자는 W&B organization에서 사용자, 그룹 및 사용자 지정 역할을 관리할 수 있습니다. SCIM 그룹은 W&B Teams에 매핑됩니다.
SCIM API는 <host-url>/scim/에서 액세스할 수 있으며 RC7643 프로토콜에서 찾을 수 있는 필드의 서브셋으로 /Users 및 /Groups 엔드포인트를 지원합니다. 또한 공식 SCIM 스키마의 일부가 아닌 /Roles 엔드포인트도 포함합니다. W&B는 W&B organization에서 사용자 지정 역할의 자동 관리를 지원하기 위해 /Roles 엔드포인트를 추가합니다.
여러 Enterprise SaaS Cloud organization의 관리자인 경우 SCIM API 요청이 전송되는 organization을 구성해야 합니다. 프로필 이미지를 클릭한 다음 User Settings를 클릭합니다. 설정 이름은 Default API organization입니다. 이는 Dedicated Cloud, Self-managed instances 및 SaaS Cloud를 포함한 모든 호스팅 옵션에 필요합니다. SaaS Cloud에서 organization 관리자는 SCIM API 요청이 올바른 organization으로 이동하도록 사용자 설정에서 기본 organization을 구성해야 합니다.
선택한 호스팅 옵션은 이 페이지의 예제에서 사용되는 <host-url> 자리 표시자의 값을 결정합니다.
또한 예제에서는 abc 및 def와 같은 사용자 ID를 사용합니다. 실제 요청 및 응답에는 사용자 ID에 대한 해시된 값이 있습니다.
인증
Organization 또는 인스턴스 관리자는 API 키로 기본 인증을 사용하여 SCIM API에 액세스할 수 있습니다. HTTP 요청의 Authorization 헤더를 Basic 문자열 뒤에 공백, 그런 다음 username:API-KEY 형식으로 base-64로 인코딩된 문자열로 설정합니다. 즉, 사용자 이름과 API 키를 : 문자로 구분된 값으로 바꾸고 결과를 base-64로 인코딩합니다. 예를 들어 demo:p@55w0rd로 인증하려면 헤더는 Authorization: Basic ZGVtbzpwQDU1dzByZA==여야 합니다.
설명: 사용자에게 organization 수준 역할을 할당합니다. 역할은 여기에 설명된 대로 admin, viewer 또는 member 중 하나일 수 있습니다. SaaS Cloud의 경우 사용자 설정에서 SCIM API에 대한 올바른 organization을 구성했는지 확인합니다.
지원되는 필드:
필드
유형
필수
op
문자열
작업 유형. 허용되는 유일한 값은 replace입니다.
path
문자열
역할 할당 작업이 적용되는 범위입니다. 허용되는 유일한 값은 organizationRole입니다.
value
문자열
사용자에게 할당할 미리 정의된 organization 수준 역할입니다. admin, viewer 또는 member 중 하나일 수 있습니다. 이 필드는 미리 정의된 역할에 대해 대소문자를 구분하지 않습니다.
요청 예시:
PATCH /scim/Users/abc
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "replace",
"path": "organizationRole",
"value": "admin"// 사용자의 organization 범위 역할을 admin으로 설정합니다.
}
]
}
응답 예시:
이것은 User 오브젝트를 반환합니다.
(Status 200)
{
"active": true,
"displayName": "Dev User 1",
"emails": {
"Value": "dev-user1@test.com",
"Display": "",
"Type": "",
"Primary": true },
"id": "abc",
"meta": {
"resourceType": "User",
"created": "2023-10-01T00:00:00Z",
"lastModified": "2023-10-01T00:00:00Z",
"location": "Users/abc" },
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User" ],
"userName": "dev-user1",
"teamRoles": [ // 사용자가 속한 모든 Teams에서 사용자의 역할을 반환합니다.
{
"teamName": "team1",
"roleName": "admin" }
],
"organizationRole": "admin"// organization 범위에서 사용자의 역할을 반환합니다.
}
사용자에게 팀 수준 역할 할당
엔드포인트: <host-url>/scim/Users/{id}
메서드: PATCH
설명: 사용자에게 팀 수준 역할을 할당합니다. 역할은 여기에 설명된 대로 admin, viewer, member 또는 사용자 지정 역할 중 하나일 수 있습니다. SaaS Cloud의 경우 사용자 설정에서 SCIM API에 대한 올바른 organization을 구성했는지 확인합니다.
지원되는 필드:
필드
유형
필수
op
문자열
작업 유형. 허용되는 유일한 값은 replace입니다.
path
문자열
역할 할당 작업이 적용되는 범위입니다. 허용되는 유일한 값은 teamRoles입니다.
value
오브젝트 배열
오브젝트가 teamName 및 roleName 속성으로 구성된 단일 오브젝트 배열입니다. teamName은 사용자가 역할을 보유하는 팀의 이름이고, roleName은 admin, viewer, member 또는 사용자 지정 역할 중 하나일 수 있습니다. 이 필드는 미리 정의된 역할에 대해 대소문자를 구분하지 않고 사용자 지정 역할에 대해 대소문자를 구분합니다.
요청 예시:
PATCH /scim/Users/abc
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "replace",
"path": "teamRoles",
"value": [
{
"roleName": "admin", // 역할 이름은 미리 정의된 역할에 대해 대소문자를 구분하지 않고 사용자 지정 역할에 대해 대소문자를 구분합니다.
"teamName": "team1"// 팀 team1에서 사용자의 역할을 admin으로 설정합니다.
}
]
}
]
}
응답 예시:
이것은 User 오브젝트를 반환합니다.
(Status 200)
{
"active": true,
"displayName": "Dev User 1",
"emails": {
"Value": "dev-user1@test.com",
"Display": "",
"Type": "",
"Primary": true },
"id": "abc",
"meta": {
"resourceType": "User",
"created": "2023-10-01T00:00:00Z",
"lastModified": "2023-10-01T00:00:00Z",
"location": "Users/abc" },
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User" ],
"userName": "dev-user1",
"teamRoles": [ // 사용자가 속한 모든 Teams에서 사용자의 역할을 반환합니다.
{
"teamName": "team1",
"roleName": "admin" }
],
"organizationRole": "admin"// organization 범위에서 사용자의 역할을 반환합니다.
}
그룹 리소스
SCIM 그룹 리소스는 W&B Teams에 매핑됩니다. 즉, W&B 배포에서 SCIM 그룹을 만들면 W&B Team이 생성됩니다. 다른 그룹 엔드포인트에도 동일하게 적용됩니다.
팀 삭제는 현재 SCIM API에서 지원되지 않습니다. 팀에 연결된 추가 데이터가 있기 때문입니다. 모든 항목을 삭제할지 확인하려면 앱에서 팀을 삭제하세요.
역할 리소스
SCIM 역할 리소스는 W&B 사용자 지정 역할에 매핑됩니다. 앞에서 언급했듯이 /Roles 엔드포인트는 공식 SCIM 스키마의 일부가 아니며 W&B는 W&B organization에서 사용자 지정 역할의 자동 관리를 지원하기 위해 /Roles 엔드포인트를 추가합니다.
사용자 지정 역할 가져오기
엔드포인트:<host-url>/scim/Roles/{id}
메서드: GET
설명: 역할의 고유 ID를 제공하여 사용자 지정 역할에 대한 정보를 검색합니다.
요청 예시:
GET /scim/Roles/abc
응답 예시:
(Status 200)
{
"description": "A sample custom role for example",
"id": "Um9sZTo3",
"inheritedFrom": "member", // indicates the predefined role
"meta": {
"resourceType": "Role",
"created": "2023-11-20T23:10:14Z",
"lastModified": "2023-11-20T23:31:23Z",
"location": "Roles/Um9sZTo3" },
"name": "Sample custom role",
"organizationID": "T3JnYW5pemF0aW9uOjE0ODQ1OA==",
"permissions": [
{
"name": "artifact:read",
"isInherited": true// inherited from member predefined role
},
...... {
"name": "project:update",
"isInherited": false// custom permission added by admin
}
],
"schemas": [
"" ]
}
사용자 지정 역할 목록
엔드포인트:<host-url>/scim/Roles
메서드: GET
설명: W&B organization의 모든 사용자 지정 역할에 대한 정보를 검색합니다.
요청 예시:
GET /scim/Roles
응답 예시:
(Status 200)
{
"Resources": [
{
"description": "A sample custom role for example",
"id": "Um9sZTo3",
"inheritedFrom": "member", // indicates the predefined role that the custom role inherits from
"meta": {
"resourceType": "Role",
"created": "2023-11-20T23:10:14Z",
"lastModified": "2023-11-20T23:31:23Z",
"location": "Roles/Um9sZTo3" },
"name": "Sample custom role",
"organizationID": "T3JnYW5pemF0aW9uOjE0ODQ1OA==",
"permissions": [
{
"name": "artifact:read",
"isInherited": true// inherited from member predefined role
},
...... {
"name": "project:update",
"isInherited": false// custom permission added by admin
}
],
"schemas": [
"" ]
},
{
"description": "Another sample custom role for example",
"id": "Um9sZToxMg==",
"inheritedFrom": "viewer", // indicates the predefined role that the custom role inherits from
"meta": {
"resourceType": "Role",
"created": "2023-11-21T01:07:50Z",
"location": "Roles/Um9sZToxMg==" },
"name": "Sample custom role 2",
"organizationID": "T3JnYW5pemF0aW9uOjE0ODQ1OA==",
"permissions": [
{
"name": "launchagent:read",
"isInherited": true// inherited from viewer predefined role
},
...... {
"name": "run:stop",
"isInherited": false// custom permission added by admin
}
],
"schemas": [
"" ]
}
],
"itemsPerPage": 9999,
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse" ],
"startIndex": 1,
"totalResults": 2}
사용자 지정 역할 생성
엔드포인트: <host-url>/scim/Roles
메서드: POST
설명: W&B organization에서 새 사용자 지정 역할을 만듭니다.
지원되는 필드:
필드
유형
필수
name
문자열
사용자 지정 역할의 이름
description
문자열
사용자 지정 역할에 대한 설명
permissions
오브젝트 배열
각 오브젝트에 w&bobject:operation 형식의 값이 있는 name 문자열 필드가 포함된 권한 오브젝트 배열입니다. 예를 들어 W&B Runs에 대한 삭제 작업에 대한 권한 오브젝트의 name은 run:delete입니다.
inheritedFrom
문자열
사용자 지정 역할이 상속할 미리 정의된 역할입니다. member 또는 viewer일 수 있습니다.
요청 예시:
POST /scim/Roles
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Role"],
"name": "Sample custom role",
"description": "A sample custom role for example",
"permissions": [
{
"name": "project:update" }
],
"inheritedFrom": "member"}
응답 예시:
(Status 201)
{
"description": "A sample custom role for example",
"id": "Um9sZTo3",
"inheritedFrom": "member", // indicates the predefined role
"meta": {
"resourceType": "Role",
"created": "2023-11-20T23:10:14Z",
"lastModified": "2023-11-20T23:31:23Z",
"location": "Roles/Um9sZTo3" },
"name": "Sample custom role",
"organizationID": "T3JnYW5pemF0aW9uOjE0ODQ1OA==",
"permissions": [
{
"name": "artifact:read",
"isInherited": true// inherited from member predefined role
},
...... {
"name": "project:update",
"isInherited": false// custom permission added by admin
}
],
"schemas": [
"" ]
}
사용자 지정 역할 삭제
엔드포인트: <host-url>/scim/Roles/{id}
메서드: DELETE
설명: W&B organization에서 사용자 지정 역할을 삭제합니다. 주의해서 사용하세요. 사용자 지정 역할이 상속된 미리 정의된 역할은 이제 작업 전에 사용자 지정 역할이 할당된 모든 사용자에게 할당됩니다.
요청 예시:
DELETE /scim/Roles/abc
응답 예시:
(Status 204)
사용자 지정 역할 권한 업데이트
엔드포인트: <host-url>/scim/Roles/{id}
메서드: PATCH
설명: W&B organization에서 사용자 지정 역할에 사용자 지정 권한을 추가하거나 제거합니다.
지원되는 필드:
필드
유형
필수
operations
오브젝트 배열
작업 오브젝트 배열
op
문자열
작업 오브젝트 내의 작업 유형입니다. add 또는 remove일 수 있습니다.
path
문자열
작업 오브젝트의 정적 필드입니다. 허용되는 유일한 값은 permissions입니다.
value
오브젝트 배열
각 오브젝트에 w&bobject:operation 형식의 값이 있는 name 문자열 필드가 포함된 권한 오브젝트 배열입니다. 예를 들어 W&B Runs에 대한 삭제 작업에 대한 권한 오브젝트의 name은 run:delete입니다.
요청 예시:
PATCH /scim/Roles/abc
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "add", // 작업 유형을 나타냅니다. 다른 가능한 값은 `remove`입니다.
"path": "permissions",
"value": [
{
"name": "project:delete" }
]
}
]
}
응답 예시:
(Status 200)
{
"description": "A sample custom role for example",
"id": "Um9sZTo3",
"inheritedFrom": "member", // indicates the predefined role
"meta": {
"resourceType": "Role",
"created": "2023-11-20T23:10:14Z",
"lastModified": "2023-11-20T23:31:23Z",
"location": "Roles/Um9sZTo3" },
"name": "Sample custom role",
"organizationID": "T3JnYW5pemF0aW9uOjE0ODQ1OA==",
"permissions": [
{
"name": "artifact:read",
"isInherited": true// inherited from member predefined role
},
...... {
"name": "project:update",
"isInherited": false// existing custom permission added by admin before the update
},
{
"name": "project:delete",
"isInherited": false// new custom permission added by admin as part of the update
}
],
"schemas": [
"" ]
}
사용자 지정 역할 메타데이터 업데이트
엔드포인트: <host-url>/scim/Roles/{id}
메서드: PUT
설명: W&B organization에서 사용자 지정 역할의 이름, 설명 또는 상속된 역할을 업데이트합니다. 이 작업은 사용자 지정 역할의 기존 비상속 사용자 지정 권한에 영향을 미치지 않습니다.
지원되는 필드:
필드
유형
필수
name
문자열
사용자 지정 역할의 이름
description
문자열
사용자 지정 역할에 대한 설명
inheritedFrom
문자열
사용자 지정 역할이 상속할 미리 정의된 역할입니다. member 또는 viewer일 수 있습니다.
요청 예시:
PUT /scim/Roles/abc
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Role"],
"name": "Sample custom role",
"description": "A sample custom role for example but now based on viewer",
"inheritedFrom": "viewer"}
응답 예시:
(Status 200)
{
"description": "A sample custom role for example but now based on viewer", // changed the descripton per the request
"id": "Um9sZTo3",
"inheritedFrom": "viewer", // indicates the predefined role which is changed per the request
"meta": {
"resourceType": "Role",
"created": "2023-11-20T23:10:14Z",
"lastModified": "2023-11-20T23:31:23Z",
"location": "Roles/Um9sZTo3" },
"name": "Sample custom role",
"organizationID": "T3JnYW5pemF0aW9uOjE0ODQ1OA==",
"permissions": [
{
"name": "artifact:read",
"isInherited": true// inherited from viewer predefined role
},
...// Any permissions that are in member predefined role but not in viewer will not be inherited post the update
{
"name": "project:update",
"isInherited": false// custom permission added by admin
},
{
"name": "project:delete",
"isInherited": false// custom permission added by admin
}
],
"schemas": [
"" ]
}
2.5 - Advanced IAM configuration
기본적인 환경 변수 외에도, 환경 변수를 사용하여 전용 클라우드 또는 자체 관리 인스턴스에 대한 IAM 옵션을 구성할 수 있습니다.
IAM 요구 사항에 따라 인스턴스에 대해 다음 환경 변수 중 하나를 선택하십시오.
환경 변수
설명
DISABLE_SSO_PROVISIONING
W&B 인스턴스에서 사용자 자동 프로비저닝을 끄려면 이 값을 true로 설정하십시오.
SESSION_LENGTH
기본 사용자 세션 만료 시간을 변경하려면 이 변수를 원하는 시간 수로 설정하십시오. 예를 들어 세션 만료 시간을 24시간으로 구성하려면 SESSION_LENGTH를 24로 설정하십시오. 기본값은 720시간입니다.
GORILLA_ENABLE_SSO_GROUP_CLAIMS
OIDC 기반 SSO를 사용하는 경우 이 변수를 true로 설정하여 OIDC 그룹을 기반으로 인스턴스에서 W&B team 멤버십을 자동화하십시오. 사용자 OIDC 토큰에 groups 클레임을 추가하십시오. 각 항목이 사용자가 속해야 하는 W&B team의 이름인 문자열 배열이어야 합니다. 배열에는 사용자가 속한 모든 team이 포함되어야 합니다.
GORILLA_LDAP_GROUP_SYNC
LDAP 기반 SSO를 사용하는 경우 이 값을 true로 설정하여 LDAP 그룹을 기반으로 인스턴스에서 W&B team 멤버십을 자동화하십시오.
GORILLA_OIDC_CUSTOM_SCOPES
OIDC 기반 SSO를 사용하는 경우 W&B 인스턴스가 ID 공급자에게 요청해야 하는 추가 scopes를 지정할 수 있습니다. W&B는 이러한 사용자 정의 scopes로 인해 SSO 기능을 변경하지 않습니다.
GORILLA_USE_IDENTIFIER_CLAIMS
OIDC 기반 SSO를 사용하는 경우 이 변수를 true로 설정하여 ID 공급자의 특정 OIDC 클레임을 사용하여 사용자의 사용자 이름과 전체 이름을 적용하십시오. 설정된 경우 preferred_username 및 name OIDC 클레임에서 적용된 사용자 이름과 전체 이름을 구성해야 합니다. 사용자 이름은 영숫자 문자와 특수 문자(밑줄 및 하이픈)만 포함할 수 있습니다.
GORILLA_DISABLE_PERSONAL_ENTITY
W&B 인스턴스에서 개인 user projects를 끄려면 이 값을 true로 설정하십시오. 설정된 경우 users는 개인 Entities에서 새 개인 projects를 만들 수 없으며 기존 개인 projects에 대한 쓰기가 꺼집니다.
GORILLA_DISABLE_ADMIN_TEAM_ACCESS
Organization 또는 Instance Admins가 W&B team에 자체 가입하거나 추가하는 것을 제한하려면 이 값을 true로 설정하여 Data & AI 담당자만 team 내의 projects에 액세스할 수 있도록 합니다.
W&B는 GORILLA_DISABLE_ADMIN_TEAM_ACCESS와 같은 일부 설정을 활성화하기 전에 주의를 기울이고 모든 의미를 이해할 것을 권장합니다. 질문이 있는 경우 W&B team에 문의하십시오.
3 - Data security
3.1 - Bring your own bucket (BYOB)
Bring your own bucket(BYOB)을 사용하면 W&B 아티팩트 및 기타 관련 민감한 데이터를 자체 클라우드 또는 온프레미스 인프라에 저장할 수 있습니다. 전용 클라우드 또는 SaaS Cloud의 경우 버킷에 저장하는 데이터는 W&B 관리 인프라에 복사되지 않습니다.
W&B SDK / CLI / UI와 버킷 간의 통신은 사전 서명된 URL을 사용하여 이루어집니다.
W&B는 가비지 컬렉션 프로세스를 사용하여 W&B Artifacts를 삭제합니다. 자세한 내용은 Artifacts 삭제를 참조하세요.
버킷을 구성할 때 하위 경로를 지정하여 W&B가 버킷 루트의 폴더에 파일을 저장하지 않도록 할 수 있습니다. 이는 조직의 버킷 관리 정책을 준수하는 데 도움이 될 수 있습니다.
중앙 데이터베이스와 버킷에 저장되는 데이터
BYOB 기능을 사용할 때 특정 유형의 데이터는 W&B 중앙 데이터베이스에 저장되고 다른 유형은 버킷에 저장됩니다.
데이터베이스
사용자, 팀, 아티팩트, Experiments 및 프로젝트에 대한 메타데이터
Reports
Experiment 로그
시스템 메트릭
버킷
Experiment 파일 및 메트릭
Artifact 파일
미디어 파일
Run 파일
설정 옵션
스토리지 버킷을 구성할 수 있는 범위는 인스턴스 수준 또는 팀 수준의 두 가지입니다.
인스턴스 수준: 조직 내에서 관련 권한을 가진 모든 사용자가 인스턴스 수준 스토리지 버킷에 저장된 파일에 엑세스할 수 있습니다.
팀 수준: W&B Teams의 팀 멤버는 팀 수준에서 구성된 버킷에 저장된 파일에 엑세스할 수 있습니다. 팀 수준 스토리지 버킷은 매우 민감한 데이터 또는 엄격한 규정 준수 요구 사항이 있는 팀을 위해 더 강력한 데이터 엑세스 제어 및 데이터 격리를 제공합니다.
인스턴스 수준에서 버킷을 구성하고 조직 내의 하나 이상의 팀에 대해 별도로 구성할 수 있습니다.
예를 들어 조직에 Kappa라는 팀이 있다고 가정합니다. 조직(및 Team Kappa)은 기본적으로 인스턴스 수준 스토리지 버킷을 사용합니다. 다음으로 Omega라는 팀을 만듭니다. Team Omega를 만들 때 해당 팀에 대한 팀 수준 스토리지 버킷을 구성합니다. Team Omega에서 생성된 파일은 Team Kappa에서 엑세스할 수 없습니다. 그러나 Team Kappa에서 만든 파일은 Team Omega에서 엑세스할 수 있습니다. Team Kappa에 대한 데이터를 격리하려면 해당 팀에 대한 팀 수준 스토리지 버킷도 구성해야 합니다.
팀 수준 스토리지 버킷은 특히 다양한 사업부 및 부서가 인프라 및 관리 리소스를 효율적으로 활용하기 위해 인스턴스를 공유할 때 자체 관리 인스턴스에 대해 동일한 이점을 제공합니다. 이는 별도의 고객 참여에 대한 AI 워크플로우를 관리하는 별도의 프로젝트 팀이 있는 회사에도 적용됩니다.
가용성 매트릭스
다음 표는 다양한 W&B 서버 배포 유형에서 BYOB의 가용성을 보여줍니다. X는 특정 배포 유형에서 기능을 사용할 수 있음을 의미합니다.
W&B 서버 배포 유형
인스턴스 수준
팀 수준
추가 정보
전용 클라우드
X
X
인스턴스 및 팀 수준 BYOB는 Amazon Web Services, Google Cloud Platform 및 Microsoft Azure에서 사용할 수 있습니다. 팀 수준 BYOB의 경우 동일하거나 다른 클라우드의 클라우드 네이티브 스토리지 버킷 또는 클라우드 또는 온프레미스 인프라에서 호스팅되는 MinIO와 같은 S3 호환 보안 스토리지에 연결할 수 있습니다.
SaaS Cloud
해당 사항 없음
X
팀 수준 BYOB는 Amazon Web Services 및 Google Cloud Platform에서만 사용할 수 있습니다. W&B는 Microsoft Azure에 대한 기본 및 유일한 스토리지 버킷을 완전히 관리합니다.
자체 관리
X
X
인스턴스가 사용자에 의해 완전히 관리되므로 인스턴스 수준 BYOB가 기본값입니다. 자체 관리 인스턴스가 클라우드에 있는 경우 팀 수준 BYOB에 대해 동일하거나 다른 클라우드의 클라우드 네이티브 스토리지 버킷에 연결할 수 있습니다. 인스턴스 또는 팀 수준 BYOB에 MinIO와 같은 S3 호환 보안 스토리지를 사용할 수도 있습니다.
전용 클라우드 또는 자체 관리 인스턴스에 대해 인스턴스 또는 팀 수준 스토리지 버킷을 구성하거나 SaaS Cloud 계정에 대해 팀 수준 스토리지 버킷을 구성하면 해당 범위에 대한 스토리지 버킷을 변경하거나 재구성할 수 없습니다. 여기에는 데이터를 다른 버킷으로 마이그레이션하고 주요 제품 스토리지에서 관련 참조를 다시 매핑할 수 없는 것도 포함됩니다. W&B는 인스턴스 또는 팀 수준 범위에 대해 구성하기 전에 스토리지 버킷 레이아웃을 신중하게 계획할 것을 권장합니다. 질문이 있으면 W&B 팀에 문의하십시오.
팀 수준 BYOB를 위한 크로스 클라우드 또는 S3 호환 스토리지
전용 클라우드 또는 자체 관리 인스턴스에서 팀 수준 BYOB에 대해 다른 클라우드의 클라우드 네이티브 스토리지 버킷 또는 MinIO와 같은 S3 호환 스토리지 버킷에 연결할 수 있습니다.
크로스 클라우드 또는 S3 호환 스토리지 사용을 활성화하려면 W&B 인스턴스에 대한 GORILLA_SUPPORTED_FILE_STORES 환경 변수를 사용하여 다음 형식 중 하나로 관련 엑세스 키를 포함하는 스토리지 버킷을 지정합니다.
전용 클라우드 또는 자체 관리 인스턴스에서 팀 수준 BYOB에 대한 S3 호환 스토리지 구성
팀 수준 BYOB에 대한 S3 호환 스토리지 연결은 SaaS Cloud에서 사용할 수 없습니다. 또한 팀 수준 BYOB에 대한 AWS 버킷 연결은 해당 인스턴스가 GCP에 있으므로 SaaS Cloud에서 크로스 클라우드입니다. 해당 크로스 클라우드 연결은 이전에 전용 클라우드 및 자체 관리 인스턴스에 대해 설명한 대로 엑세스 키 및 환경 변수 기반 메커니즘을 사용하지 않습니다.
gsutil cors set cors-policy.json gs://<bucket_name>
버킷의 정책을 확인합니다. <bucket_name>을 올바른 버킷 이름으로 바꿉니다.
gsutil cors get gs://<bucket_name>
SaaS Cloud 또는 전용 클라우드를 사용하는 경우 W&B 플랫폼에 연결된 GCP 서비스 계정에 Storage Admin 역할을 부여합니다.
SaaS Cloud의 경우 계정은 wandb-integration@wandb-production.iam.gserviceaccount.com입니다.
전용 클라우드의 경우 계정은 deploy@wandb-production.iam.gserviceaccount.com입니다.
버킷 이름을 기록해 둡니다. 전용 클라우드를 사용하는 경우 인스턴스 수준 BYOB의 경우 버킷 이름을 W&B 팀과 공유합니다. 모든 배포 유형에서 팀 수준 BYOB의 경우 팀을 만드는 동안 버킷을 구성합니다.
Azure Blob Storage 프로비저닝
인스턴스 수준 BYOB의 경우 이 Terraform 모듈을 사용하지 않는 경우 아래 단계에 따라 Azure 구독에서 Azure Blob Storage 버킷을 프로비저닝합니다.
원하는 이름으로 버킷을 만듭니다. 선택적으로 모든 W&B 파일을 저장하기 위해 하위 경로로 구성할 수 있는 폴더를 만듭니다.
Blob 및 컨테이너 소프트 삭제를 활성화합니다.
버전 관리를 활성화합니다.
버킷에서 CORS 정책을 구성합니다.
UI를 통해 CORS 정책을 설정하려면 Blob Storage로 이동하여 설정/리소스 공유(CORS)로 스크롤한 다음 다음을 설정합니다.
파라미터
값
허용된 원본
*
허용된 메소드
GET, HEAD, PUT
허용된 헤더
*
노출된 헤더
*
최대 사용 기간
3600
스토리지 계정 엑세스 키를 생성하고 스토리지 계정 이름과 함께 기록해 둡니다. 전용 클라우드를 사용하는 경우 보안 공유 메커니즘을 사용하여 스토리지 계정 이름과 엑세스 키를 W&B 팀과 공유합니다.
팀 수준 BYOB의 경우 W&B는 필요한 엑세스 메커니즘 및 권한과 함께 Azure Blob Storage 버킷을 프로비저닝하기 위해 Terraform을 사용하는 것이 좋습니다. 전용 클라우드를 사용하는 경우 인스턴스에 대한 OIDC 발급자 URL을 제공합니다. 팀을 만드는 동안 버킷을 구성하는 데 필요한 세부 정보를 기록해 둡니다.
스토리지 계정 이름
스토리지 컨테이너 이름
관리 ID 클라이언트 ID
Azure 테넌트 ID
W&B에서 BYOB 구성
전용 클라우드 또는 자체 관리 인스턴스에서 팀 수준 BYOB에 대해 다른 클라우드의 클라우드 네이티브 스토리지 버킷 또는 MinIO와 같은 S3 호환 스토리지 버킷에 연결하는 경우 팀 수준 BYOB에 대한 크로스 클라우드 또는 S3 호환 스토리지를 참조하십시오. 이러한 경우 아래 지침을 사용하여 팀에 대해 구성하기 전에 W&B 인스턴스에 대한 GORILLA_SUPPORTED_FILE_STORES 환경 변수를 사용하여 스토리지 버킷을 지정해야 합니다.
필요한 경우 네트워크 내의 AI 워크로드 또는 사용자 브라우저 클라이언트가 W&B Platform에서 사전 서명된 URL을 요청합니다. 그러면 W&B Platform은 관련 blob storage에 엑세스하여 필요한 권한으로 사전 서명된 URL을 생성하고 클라이언트에 다시 반환합니다. 그런 다음 클라이언트는 사전 서명된 URL을 사용하여 오브젝트 업로드 또는 검색 작업을 위해 blob storage에 엑세스합니다. 오브젝트 다운로드를 위한 URL 만료 시간은 1시간이고, 일부 대형 오브젝트는 청크 단위로 업로드하는 데 더 많은 시간이 필요할 수 있으므로 오브젝트 업로드는 24시간입니다.
팀 레벨 엑세스 제어
각 사전 서명된 URL은 W&B platform의 팀 레벨 엑세스 제어를 기반으로 특정 버킷으로 제한됩니다. 사용자가 보안 스토리지 커넥터를 사용하여 blob storage 버킷에 매핑된 팀에 속하고 해당 사용자만 해당 팀에 속한 경우, 해당 요청에 대해 생성된 사전 서명된 URL은 다른 팀에 매핑된 blob storage 버킷에 엑세스할 수 있는 권한이 없습니다.
W&B는 사용자를 자신이 속해야 하는 팀에만 추가할 것을 권장합니다.
네트워크 제한
W&B는 버킷에 대한 IAM 정책 기반 제한을 사용하여 사전 서명된 URL을 사용하여 blob storage에 엑세스할 수 있는 네트워크를 제한하는 것이 좋습니다.
AWS의 경우 VPC 또는 IP 어드레스 기반 네트워크 제한을 사용할 수 있습니다. 이렇게 하면 W&B 특정 버킷이 AI 워크로드가 실행 중인 네트워크 또는 사용자가 W&B UI를 사용하여 Artifacts에 엑세스하는 경우 사용자 머신에 매핑되는 게이트웨이 IP 어드레스에서만 엑세스할 수 있습니다.
사전 서명된 URL은 W&B에서 지원되는 유일한 blob storage 엑세스 메커니즘입니다. W&B는 위험 감수 성향에 따라 위에 나열된 보안 제어 중 일부 또는 전부를 구성할 것을 권장합니다.
3.3 - Configure IP allowlisting for Dedicated Cloud
승인된 IP 어드레스 목록에서만 전용 클라우드 인스턴스에 대한 엑세스를 제한할 수 있습니다. 이는 AI 워크로드에서 W&B API로의 엑세스와 사용자 브라우저에서 W&B 앱 UI로의 엑세스에도 적용됩니다. 전용 클라우드 인스턴스에 대해 IP 허용 목록이 설정되면 W&B는 승인되지 않은 다른 위치에서 오는 모든 요청을 거부합니다. 전용 클라우드 인스턴스에 대한 IP 허용 목록을 구성하려면 W&B 팀에 문의하십시오.
IP 허용 목록은 AWS, GCP 및 Azure의 전용 클라우드 인스턴스에서 사용할 수 있습니다.
보안 사설 연결과 함께 IP 허용 목록을 사용할 수 있습니다. 보안 사설 연결과 함께 IP 허용 목록을 사용하는 경우 W&B는 AI 워크로드의 모든 트래픽과 가능한 경우 사용자 브라우저의 대부분의 트래픽에 대해 보안 사설 연결을 사용하는 동시에 권한 있는 위치에서 인스턴스 관리를 위해 IP 허용 목록을 사용하는 것이 좋습니다.
W&B는 개별 /32 IP 어드레스가 아닌 회사 또는 비즈니스 이그레스 게이트웨이에 할당된 CIDR 블록을 사용하는 것이 좋습니다. 개별 IP 어드레스를 사용하는 것은 확장성이 떨어지고 클라우드당 엄격한 제한이 있습니다.
3.4 - Configure private connectivity to Dedicated Cloud
클라우드 공급자의 보안 사설 네트워크를 통해 전용 클라우드 인스턴스에 연결할 수 있습니다. 이는 AI 워크로드에서 W&B API로의 엑세스와 선택적으로 사용자 브라우저에서 W&B 앱 UI로의 엑세스에도 적용됩니다. 사설 연결을 사용하는 경우 관련 요청 및 응답은 공용 네트워크 또는 인터넷을 통해 전송되지 않습니다.
보안 사설 연결은 곧 전용 클라우드의 고급 보안 옵션으로 제공될 예정입니다.
보안 사설 연결은 AWS, GCP 및 Azure의 전용 클라우드 인스턴스에서 사용할 수 있습니다.
활성화되면 W&B는 인스턴스에 대한 사설 엔드포인트 서비스를 생성하고 연결할 관련 DNS URI를 제공합니다. 이를 통해 클라우드 계정에서 사설 엔드포인트를 생성하여 관련 트래픽을 사설 엔드포인트 서비스로 라우팅할 수 있습니다. 사설 엔드포인트는 클라우드 VPC 또는 VNet 내에서 실행되는 AI 트레이닝 워크로드에 대해 더 쉽게 설정할 수 있습니다. 사용자 브라우저에서 W&B 앱 UI로의 트래픽에 대해 동일한 메커니즘을 사용하려면 회사 네트워크에서 클라우드 계정의 사설 엔드포인트로 적절한 DNS 기반 라우팅을 구성해야 합니다.
이 기능을 사용하려면 W&B 팀에 문의하십시오.
IP 허용 목록과 함께 보안 사설 연결을 사용할 수 있습니다. IP 허용 목록에 보안 사설 연결을 사용하는 경우 W&B는 AI 워크로드의 모든 트래픽과 가능한 경우 사용자 브라우저의 대부분 트래픽에 대해 보안 사설 연결을 사용하고 권한 있는 위치에서 인스턴스 관리에 IP 허용 목록을 사용하는 것이 좋습니다.
3.5 - Data encryption in Dedicated cloud
W&B는 각 전용 클라우드에서 클라우드 공급자의 고객 관리 암호화 키 (CMEK) 기능을 사용하여 W&B 관리 데이터베이스 및 오브젝트 스토리지를 암호화하기 위해 W&B 관리 클라우드 네이티브 키를 사용합니다. 이 경우 W&B는 클라우드 공급자의 customer 역할을 하며, W&B 플랫폼을 서비스로 제공합니다. W&B 관리 키를 사용한다는 것은 W&B가 각 클라우드에서 데이터를 암호화하는 데 사용하는 키를 제어하여 모든 고객에게 매우 안전하고 보안이 뛰어난 플랫폼을 제공하겠다는 약속을 강화한다는 의미입니다.
W&B는 각 고객 인스턴스의 데이터를 암호화하기 위해 unique key를 사용하여 전용 클라우드 테넌트 간에 또 다른 격리 계층을 제공합니다. 이 기능은 AWS, Azure 및 GCP에서 사용할 수 있습니다.
2024년 8월 이전에 W&B가 프로비저닝한 GCP 및 Azure의 전용 클라우드 인스턴스는 W&B 관리 데이터베이스 및 오브젝트 스토리지 암호화에 대해 기본 클라우드 공급자 관리 키를 사용합니다. 2024년 8월부터 W&B가 생성한 새로운 인스턴스만 관련 암호화에 대해 W&B 관리 클라우드 네이티브 키를 사용합니다.
AWS의 전용 클라우드 인스턴스는 2024년 8월 이전부터 암호화에 대해 W&B 관리 클라우드 네이티브 키를 사용하고 있습니다.
W&B는 일반적으로 고객이 전용 클라우드 인스턴스에서 W&B 관리 데이터베이스 및 오브젝트 스토리지를 암호화하기 위해 자체 클라우드 네이티브 키를 가져오는 것을 허용하지 않습니다. 조직의 여러 Teams 및 사용자가 다양한 이유로 클라우드 인프라에 엑세스할 수 있기 때문입니다. 이러한 Teams 또는 사용자는 조직의 기술 스택에서 중요한 구성 요소인 W&B에 대한 컨텍스트가 없을 수 있으므로 클라우드 네이티브 키를 완전히 제거하거나 W&B의 엑세스를 취소할 수 있습니다. 이러한 조치는 조직의 W&B 인스턴스에 있는 모든 데이터를 손상시켜 복구 불가능한 상태로 만들 수 있습니다.
AI 워크플로우에 전용 클라우드 사용을 승인하기 위해 조직에서 자체 클라우드 네이티브 키를 사용하여 W&B 관리 데이터베이스 및 오브젝트 스토리지를 암호화해야 하는 경우 W&B는 예외적으로 이를 검토할 수 있습니다. 승인되면 암호화에 대한 클라우드 네이티브 키 사용은 W&B 전용 클라우드의 shared responsibility model을 준수합니다. 전용 클라우드 인스턴스가 활성 상태일 때 조직의 사용자가 키를 제거하거나 W&B의 엑세스를 취소하는 경우 W&B는 그로 인한 데이터 손실 또는 손상에 대해 책임을 지지 않으며 해당 데이터 복구에 대한 책임도 지지 않습니다.
4 - Configure privacy settings
조직 및 팀 관리자는 조직 및 팀 범위에서 각각 개인 정보 보호 설정을 구성할 수 있습니다. 조직 범위에서 구성된 경우 조직 관리자는 해당 조직의 모든 팀에 대해 해당 설정을 적용합니다.
W&B는 조직 관리자가 조직 내 모든 팀 관리자와 사용자에게 미리 알린 후에만 개인 정보 보호 설정을 적용할 것을 권장합니다. 이는 워크플로우에서 예기치 않은 변경을 방지하기 위함입니다.
팀 개인 정보 보호 설정 구성
팀 관리자는 팀 Settings 탭의 Privacy 섹션에서 각 팀에 대한 개인 정보 보호 설정을 구성할 수 있습니다. 각 설정은 조직 범위에서 적용되지 않는 한 구성할 수 있습니다.
이 팀을 모든 비 멤버에게 숨기기
향후 모든 팀 Projects를 비공개로 설정 (공개 공유 불허)
모든 팀 멤버가 다른 멤버를 초대하도록 허용 (관리자만 가능하지 않음)
비공개 Projects의 Reports에 대한 팀 외부 공개 공유를 해제합니다. 이렇게 하면 기존의 매직 링크가 해제됩니다.
특정 기간 동안 감사 로그를 보존해야 하는 경우 W&B는 스토리지 버킷 또는 감사 로깅 API를 사용하여 장기 스토리지로 로그를 주기적으로 전송하는 것이 좋습니다.
1996년 건강 보험 양도 및 책임에 관한 법률 (HIPAA)의 적용을 받는 경우 감사 로그는 의무 보존 기간이 끝나기 전에 내부 또는 외부 행위자가 삭제하거나 수정할 수 없는 환경에서 최소 6년 동안 보존해야 합니다. BYOB가 있는 HIPAA 규정 준수 전용 클라우드 인스턴스의 경우 장기 보존 스토리지를 포함하여 관리형 스토리지에 대한 가드레일을 구성해야 합니다.
감사 로그 스키마
이 표는 감사 로그 항목에 나타날 수 있는 모든 키를 알파벳순으로 보여줍니다. 작업 및 상황에 따라 특정 로그 항목에는 가능한 필드의 서브셋만 포함될 수 있습니다.
startDate와 numDays를 모두 설정하지 않으면 today에 대한 로그만 반환됩니다.
웹 브라우저 또는 Postman, HTTPie 또는 cURL과 같은 툴을 사용하여 구성된 정규화된 전체 API 엔드포인트에서 HTTP GET 요청을 실행합니다.
API 응답에는 줄 바꿈으로 구분된 JSON 오브젝트가 포함됩니다. 오브젝트에는 감사 로그가 인스턴스 수준 버킷에 동기화될 때와 마찬가지로 스키마에 설명된 필드가 포함됩니다. 이러한 경우 감사 로그는 버킷의 /wandb-audit-logs 디렉토리에 있습니다.
기본 인증 사용
API 키로 기본 인증을 사용하여 감사 로그 API에 액세스하려면 HTTP 요청의 Authorization 헤더를 Basic 문자열로 설정하고 공백을 추가한 다음 username:API-KEY 형식으로 base-64로 인코딩된 문자열을 설정합니다. 즉, 사용자 이름과 API 키를 : 문자로 구분된 값으로 바꾸고 결과를 base-64로 인코딩합니다. 예를 들어 demo:p@55w0rd로 인증하려면 헤더는 Authorization: Basic ZGVtbzpwQDU1dzByZA==여야 합니다.
감사 로그를 가져올 때 PII 제외
자체 관리 및 전용 클라우드의 경우 W&B 조직 또는 인스턴스 관리자는 감사 로그를 가져올 때 PII를 제외할 수 있습니다. SaaS Cloud의 경우 API 엔드포인트는 항상 PII를 포함하여 감사 로그에 대한 관련 필드를 반환합니다. 이는 구성할 수 없습니다.
PII를 제외하려면 anonymize=true URL 파라미터를 전달합니다. 예를 들어 W&B 인스턴스 URL이 https://mycompany.wandb.io이고 지난 주 동안의 사용자 활동에 대한 감사 로그를 가져오고 PII를 제외하려면 다음과 같은 API 엔드포인트를 사용합니다.
Users 탭에서 조직에서 W&B를 사용하는 방법에 대한 세부 정보를 CSV 형식으로 볼 수 있습니다.
Invite new user 버튼 옆에 있는 작업 ... 메뉴를 클릭합니다.
Export as CSV를 클릭합니다. 다운로드되는 CSV 파일에는 user 이름 및 이메일 어드레스, 마지막 활동 시간, 역할 등과 같은 조직의 각 user에 대한 세부 정보가 나열됩니다.
user 활동 보기
Users 탭의 Last Active 열을 사용하여 개별 user의 Activity summary를 가져옵니다.
Last Active별로 user 목록을 정렬하려면 열 이름을 클릭합니다.
user의 마지막 활동에 대한 세부 정보를 보려면 user의 Last Active 필드 위에 마우스를 가져갑니다. user가 추가된 시기와 user가 총 며칠 동안 활성 상태였는지 보여주는 툴팁이 나타납니다.
다음과 같은 경우 user는 active 상태입니다.
W&B에 로그인합니다.
W&B App에서 페이지를 봅니다.
Runs를 로그합니다.
SDK를 사용하여 experiment를 추적합니다.
어떤 방식으로든 W&B Server와 상호 작용합니다.
시간 경과에 따른 활성 user 보기
Activity 탭의 플롯을 사용하여 시간 경과에 따라 얼마나 많은 user가 활성 상태였는지에 대한 집계 보기를 얻을 수 있습니다.
Activity 탭을 클릭합니다.
Total active users 플롯은 특정 기간 동안 얼마나 많은 user가 활성 상태였는지 보여줍니다 (기본값은 3개월).
Users active over time 플롯은 특정 기간 동안 활성 user의 변동을 보여줍니다 (기본값은 6개월). 해당 날짜의 user 수를 보려면 포인트 위에 마우스를 가져갑니다.
플롯의 기간을 변경하려면 드롭다운을 사용합니다. 다음을 선택할 수 있습니다.
Last 30 days
Last 3 months
Last 6 months
Last 12 months
All time
6 - Configure SMTP
W&B server에서 인스턴스 또는 팀에 사용자를 추가하면 이메일 초대가 트리거됩니다. 이러한 이메일 초대를 보내기 위해 W&B는 타사 메일 서버를 사용합니다. 경우에 따라 조직은 회사 네트워크를 떠나는 트래픽에 대해 엄격한 정책을 적용하여 이러한 이메일 초대가 최종 사용자에게 전송되지 않을 수 있습니다. W&B server는 내부 SMTP 서버를 통해 이러한 초대 이메일을 보내도록 구성하는 옵션을 제공합니다.
구성하려면 다음 단계를 따르세요.
docker 컨테이너 또는 Kubernetes 배포에서 GORILLA_EMAIL_SINK 환경 변수를 smtp://<user:password>@smtp.host.com:<port>로 설정합니다.
username 및 password는 선택 사항입니다.
인증되지 않도록 설계된 SMTP 서버를 사용하는 경우 GORILLA_EMAIL_SINK=smtp://smtp.host.com:<port>와 같이 환경 변수의 값을 설정하기만 하면 됩니다.
SMTP에 일반적으로 사용되는 포트 번호는 587, 465 및 25 포트입니다. 이는 사용 중인 메일 서버의 유형에 따라 다를 수 있습니다.
SMTP의 기본 발신자 이메일 어드레스를 구성하려면(초기에는 noreply@wandb.com으로 설정됨) 서버에서 GORILLA_EMAIL_FROM_ADDRESS 환경 변수를 원하는 발신자 이메일 어드레스로 업데이트하면 됩니다.
7 - Configure environment variables
W&B 서버 설치를 구성하는 방법
System Settings 관리자 UI를 통해 인스턴스 수준 설정을 구성하는 것 외에도, W&B는 환경 변수를 사용하여 코드를 통해 이러한 값들을 구성하는 방법을 제공합니다. 또한, IAM 고급 설정을 참조하세요.
환경 변수 참조
환경 변수
설명
LICENSE
wandb/local 라이선스
MYSQL
MySQL 연결 문자열
BUCKET
데이터 저장용 S3 / GCS 버킷
BUCKET_QUEUE
오브젝트 생성 이벤트를 위한 SQS / Google PubSub 대기열
NOTIFICATIONS_QUEUE
run 이벤트를 게시할 SQS 대기열
AWS_REGION
버킷이 있는 AWS 리전
HOST
인스턴스의 FQD, 즉 https://my.domain.net
OIDC_ISSUER
Open ID Connect ID 공급자의 URL, 즉 https://cognito-idp.us-east-1.amazonaws.com/us-east-1_uiIFNdacd
OIDC_CLIENT_ID
ID 공급자 애플리케이션의 Client ID
OIDC_AUTH_METHOD
Implicit (기본값) 또는 pkce, 자세한 내용은 아래 참조
SLACK_CLIENT_ID
알림에 사용할 Slack 애플리케이션의 client ID
SLACK_SECRET
알림에 사용할 Slack 애플리케이션의 secret
LOCAL_RESTORE
인스턴스에 엑세스할 수 없는 경우 임시로 true로 설정할 수 있습니다. 임시 자격 증명에 대한 컨테이너의 로그를 확인하십시오.
REDIS
W&B와 함께 외부 REDIS 인스턴스를 설정하는 데 사용할 수 있습니다.
LOGGING_ENABLED
true로 설정하면 엑세스 로그가 stdout으로 스트리밍됩니다. 이 변수를 설정하지 않고도 사이드카 컨테이너를 마운트하고 /var/log/gorilla.log를 tail할 수도 있습니다.
GORILLA_ALLOW_USER_TEAM_CREATION
true로 설정하면 관리자가 아닌 사용자가 새 팀을 만들 수 있습니다. 기본값은 False입니다.
GORILLA_DATA_RETENTION_PERIOD
삭제된 run의 데이터를 보관하는 기간(시간)입니다. 삭제된 run 데이터는 복구할 수 없습니다. 입력 값에 h를 추가하십시오. 예를 들어, "24h"입니다.
ENABLE_REGISTRY_UI
true로 설정하면 새로운 W&B Registry UI가 활성화됩니다.
GORILLA_DATA_RETENTION_PERIOD 환경 변수를 사용할 때는 주의하십시오. 환경 변수가 설정되면 데이터가 즉시 제거됩니다. 이 플래그를 활성화하기 전에 데이터베이스와 스토리지 버킷을 모두 백업하는 것이 좋습니다.
고급 안정성 설정
Redis
외부 Redis 서버 구성은 선택 사항이지만 프로덕션 시스템에는 권장됩니다. Redis는 서비스 안정성을 향상시키고 특히 대규모 Projects에서 로드 시간을 줄이기 위해 캐싱을 활성화하는 데 도움이 됩니다. 고가용성(HA) 및 다음 사양을 갖춘 ElastiCache와 같은 관리형 Redis 서비스를 사용하십시오.
최소 4GB 메모리, 8GB 권장
Redis 버전 6.x
전송 중 암호화
인증 활성화
W&B로 Redis 인스턴스를 구성하려면 http(s)://YOUR-W&B-SERVER-HOST/system-admin의 W&B 설정 페이지로 이동하십시오. “외부 Redis 인스턴스 사용” 옵션을 활성화하고 다음 형식으로 Redis 연결 문자열을 입력하십시오.
컨테이너 또는 Kubernetes 배포에서 환경 변수 REDIS를 사용하여 Redis를 구성할 수도 있습니다. 또는 REDIS를 Kubernetes secret으로 설정할 수도 있습니다.
이 페이지에서는 Redis 인스턴스가 기본 포트 6379에서 실행 중이라고 가정합니다. 다른 포트를 구성하고 인증을 설정하고 redis 인스턴스에서 TLS를 활성화하려면 연결 문자열 형식이 redis://$USER:$PASSWORD@$HOST:$PORT?tls=true와 같이 표시됩니다.
8 - Release process for W&B Server
W&B 서버 릴리스 프로세스
빈도 및 배포 유형
W&B Server 릴리스는 전용 클라우드 및 자체 관리 배포에 적용됩니다. 서버 릴리스에는 세 가지 종류가 있습니다.
릴리스 유형
설명
월별
월별 릴리스에는 새로운 기능, 개선 사항, 중간 및 낮은 심각도의 버그 수정이 포함됩니다.
패치
패치 릴리스에는 중요 및 높은 심각도의 버그 수정이 포함됩니다. 패치는 필요에 따라 드물게 릴리스됩니다.
기능
기능 릴리스는 새로운 제품 기능에 대한 특정 릴리스 날짜를 대상으로 하며, 이는 표준 월별 릴리스보다 간혹 먼저 발생합니다.
모든 릴리스는 인수 테스트 단계가 완료되는 즉시 모든 전용 클라우드 인스턴스에 즉시 배포됩니다. 이렇게 하면 관리되는 인스턴스가 완전히 업데이트되어 최신 기능 및 수정 사항을 관련 고객에게 제공할 수 있습니다. 자체 관리 인스턴스를 사용하는 고객은 자체 일정에 따라 업데이트 프로세스를 수행해야 하며, 여기서 최신 Docker 이미지를 사용할 수 있습니다. 릴리스 지원 및 수명 종료를 참조하십시오.
일부 고급 기능은 엔터프라이즈 라이선스에서만 사용할 수 있습니다. 따라서 최신 Docker 이미지를 얻더라도 엔터프라이즈 라이선스가 없으면 관련 고급 기능을 활용할 수 없습니다.
일부 새로운 기능은 비공개 미리보기로 시작됩니다. 즉, 디자인 파트너 또는 얼리 어답터만 사용할 수 있습니다. 인스턴스에서 비공개 미리보기 기능을 사용하려면 W&B 팀에서 활성화해야 합니다.
릴리스 정보
모든 릴리스에 대한 릴리스 정보는 GitHub의 W&B Server Releases에서 확인할 수 있습니다. Slack을 사용하는 고객은 W&B Slack 채널에서 자동 릴리스 알림을 받을 수 있습니다. W&B 팀에 문의하여 이러한 업데이트를 활성화하십시오.
릴리스 업데이트 및 가동 중지 시간
일반적으로 서버 릴리스는 전용 클라우드 인스턴스 및 적절한 롤링 업데이트 프로세스를 구현한 자체 관리 배포 고객에게 인스턴스 가동 중지 시간을 요구하지 않습니다.
다음 시나리오에서는 가동 중지 시간이 발생할 수 있습니다.
새로운 기능 또는 개선 사항으로 인해 컴퓨팅, 스토리지 또는 네트워크와 같은 기본 인프라를 변경해야 합니다. W&B는 관련 사전 알림을 전용 클라우드 고객에게 보내려고 노력합니다.
보안 패치 또는 특정 버전에 대한 ‘수명 종료 지원’을 피하기 위한 인프라 변경. 긴급한 변경의 경우 전용 클라우드 고객은 사전 알림을 받지 못할 수 있습니다. 여기서 우선 순위는 fleet을 안전하게 유지하고 완전히 지원하는 것입니다.
두 경우 모두 업데이트는 예외 없이 모든 전용 클라우드 인스턴스에 롤아웃됩니다. 자체 관리 인스턴스를 사용하는 고객은 자체 일정에 따라 이러한 업데이트를 관리해야 합니다. 릴리스 지원 및 수명 종료를 참조하십시오.
릴리스 지원 및 수명 종료 정책
W&B는 릴리스 날짜로부터 6개월 동안 모든 서버 릴리스를 지원합니다. 전용 클라우드 인스턴스는 자동으로 업데이트됩니다. 자체 관리 인스턴스를 사용하는 고객은 지원 정책을 준수하기 위해 제때 배포를 업데이트해야 합니다. W&B의 지원을 크게 제한할 수 있으므로 6개월 이상 된 버전을 사용하지 마십시오.
W&B는 자체 관리 인스턴스를 사용하는 고객에게 최소한 분기마다 최신 릴리스로 배포를 업데이트할 것을 강력히 권장합니다. 이렇게 하면 최신의 가장 훌륭한 기능을 사용하는 동시에 릴리스 수명 종료를 훨씬 앞서 유지할 수 있습니다.