사용자, 권한 및 역할
이 주제에서는 Milvus의 역할 기반 액세스 제어(RBAC)에 대한 개요를 제공하며 사용자, 역할, 개체 및 권한 간의 정의와 관계를 자세히 설명합니다.
다음 그림은 개체, 권한, 역할 및 사용자 간의 관계를 보여줍니다.
USERS_AND_ROOLS
주요 개념
Milvus 리소스에 대한 액세스 제어를 관리하려면 개체 유형, 개체 이름, 사용자, 역할 및 권한과 같은 RBAC의 주요 구성 요소를 이해하는 것이 중요합니다.
개체유형: 권한이 할당되는 개체의 범주입니다. 개체 유형은 다음과 같습니다:
Global
: 시스템 전체 개체로, 사용자가 모든 컬렉션, 사용자 또는 시스템 전체 설정에 영향을 주는 작업을 수행할 수 있습니다.Collection
: 컬렉션별 개체 - 사용자가 특정 컬렉션 내에서 인덱스 만들기, 데이터 로드, 데이터 삽입 또는 삭제, 데이터 쿼리 등의 작업을 수행할 수 있도록 허용하는 개체입니다.User
: 사용자 관리와 관련된 개체로, 사용자가 사용자 자격 증명 업데이트 또는 사용자 세부 정보 보기와 같은 데이터베이스 사용자의 자격 증명 및 역할을 관리할 수 있습니다.
개체 이름: 액세스를 제어할 개체의 특정 이름입니다. 예를 들어
- 개체 유형이
Global
인 경우 개체 이름은 와일드카드(*
)로 설정하여 지정된 유형의 모든 개체를 나타내야 합니다. - 개체 유형이
Collection
인 경우 개체 이름은 컬렉션의 이름입니다. - 개체 유형이
User
인 경우 개체 이름은 데이터베이스 사용자의 이름입니다.
- 개체 유형이
사용자: 사용자 이름과 해당 비밀번호로 구성된 Milvus와 상호 작용하는 사람 또는 애플리케이션입니다.
권한: 수행할 수 있는 작업과 액세스할 수 있는 리소스를 정의합니다. 권한은 사용자에게 직접 부여되지 않고 역할에 할당됩니다.
역할: 사용자가 특정 개체에 대해 갖는 권한 집합을 정의합니다. 역할이 사용자에게 바인딩되면 사용자는 해당 역할에 부여된 모든 권한을 상속받습니다.
예시: 권한 부여하기
다음 코드 스니펫은 특정 컬렉션의 역할에 CreateIndex
권한을 부여하는 방법을 보여줍니다:
milvusClient.grant_privilege(
role_name="CUSTOM_ROLE_NAME",
object_type="Collection", # Valid value: Global, Collection or User.
privilege="CreateIndex", # See the table below for valid privilege names and relevant API descriptions.
object_name="YOUR_COLLECTION_NAME" # The name of the collection to grant access to. Use "*" to grant access to all collections.
)
GrantPrivilegeReq grantPrivilegeReq = GrantPrivilegeReq.builder()
.roleName("roleName")
.objectName("CollectionName") // The name of the collection to grant access to. Use "*" to grant access to all collections.
.objectType("Collection") // Valid value: Global, Collection or User.
.privilege("CreateIndex") // See the table below for valid privilege names and relevant API descriptions.
.build();
client.grantPrivilege(grantPrivilegeReq);
milvusClient.grantPrivilege({
roleName: 'roleName',
object: 'Collection', // Valid value: Global, Collection or User.
objectName: 'CollectionName', // The name of the collection to grant access to. Use "*" to grant access to all collections.
privilegeName: 'CreateIndex' // See the table below for valid privilege names and relevant API descriptions.
})
권한 관련 API에 대한 자세한 내용은 grant_privilege 및 revoke_privilege를 참조하세요.
권한 관련 API에 대한 자세한 내용은 grantPrivilege 및 revokePrivilege를 참조하세요.
권한 관련 API에 대한 자세한 내용은 grantPrivilege 및 revokePrivilege를 참조하세요.
기본 사용자 및 역할
Milvus는 기본 비밀번호 Milvus
를 사용하여 root
사용자를 기본적으로 생성합니다. root
사용자에게는 admin
권한이 부여되며, 이는 이 root
사용자가 모든 리소스에 액세스하고 모든 작업을 수행할 수 있음을 의미합니다.
public
역할에 연결된 사용자에게는 다음과 같은 권한이 부여됩니다:
DescribeCollection
ShowCollections
IndexDetail
개체 유형 및 권한 목록
다음 표에는 RBAC를 사용 설정할 때 선택할 수 있는 값이 나열되어 있습니다.
개체 유형 | 권한 이름 | 클라이언트 측의 관련 API 설명 |
---|---|---|
Collection | CreateIndex | CreateIndex |
컬렉션 | DropIndex | DropIndex |
컬렉션 | IndexDetail | 색인 설명/색인 상태 가져오기/색인 빌드 진행률 가져오기 |
컬렉션 | Load | 로드 컬렉션/로드 진행률/로드 상태 가져오기 |
컬렉션 | GetLoadingProgress | GetLoadingProgress |
컬렉션 | GetLoadState | GetLoadState |
컬렉션 | Release | ReleaseCollection |
컬렉션 | Insert | 삽입 |
컬렉션 | 삭제 | 삭제 |
컬렉션 | Upsert | Upsert |
컬렉션 | 검색 | 검색 |
컬렉션 | Flush | 플러시/겟플러시 상태 |
컬렉션 | GetFlushState | GetFlushState |
컬렉션 | Query | Query |
Collection | GetStatistics | GetCollectionStatistics |
컬렉션 | 압축 | Compact |
Collection | Import | 대량 삽입/가져오기 |
Collection | LoadBalance | LoadBalance |
컬렉션 | CreatePartition | CreatePartition |
컬렉션 | DropPartition | 드롭 파티션 |
컬렉션 | 파티션 표시 | 파티션 표시 |
컬렉션 | HasPartition | HasPartition |
Global | All | 이 표의 모든 API 작업 권한 |
Global | CreateCollection | CreateCollection |
글로벌 | DropCollection | DropCollection |
글로벌 | 컬렉션 설명 | DescribeCollection |
글로벌 | 쇼 컬렉션 | 쇼 컬렉션 |
글로벌 | RenameCollection | RenameCollection |
Global | FlushAll | FlushAll |
Global | CreateOwnership | CreateUser CreateRole |
글로벌 | DropOwnership | 삭제 자격 증명 드롭 역할 |
글로벌 | SelectOwnership | SelectRole/SelectGrant |
글로벌 | ManageOwnership | 운영 사용자 역할 운영 권한 |
글로벌 | CreateResourceGroup | CreateResourceGroup |
글로벌 | DropResourceGroup | DropResourceGroup |
글로벌 | 자원 그룹 설명 | 자원 그룹 설명 |
Global | 리소스 그룹 목록 | 리소스 그룹 리스트 |
Global | 전송 노드 | 전송 노드 |
Global | TransferReplica | TransferReplica |
Global | CreateDatabase | CreateDatabase |
글로벌 | DropDatabase | DropDatabase |
글로벌 | 목록 데이터베이스 | 목록 데이터베이스 |
Global | 별칭 만들기 | 별칭 만들기 |
글로벌 | DropAlias | DropAlias |
Global | 별칭 설명 | 별칭 설명 |
Global | ListAliases | ListAliases |
User | UpdateUser | UpdateCredential |
사용자 | SelectUser | SelectUser |
다음 단계
- RBAC를 사용 설정하는 방법을 알아보세요.