Milvus 에 대한 세분화된 접근 제어 활성화

watsonx.data ( Milvus )에서 사용자 액세스를 관리하려면 이 절차를 따르십시오. 이를 통해 각 사용자는 관리자가 승인한 데이터베이스나 컬렉션만 조회하거나 쿼리할 수 있습니다. Milvus 사용자가 볼 수 있거나 쿼리할 수 있는 항목을 정의하는 정책을 통해 세분화된 권한 설정을 지원하므로, 데이터베이스 및 컬렉션 수준 모두에서 액세스를 제어할 수 있습니다.

권한을 의도적으로 할당함으로써 기업 거버넌스를 지원하고, 최소 권한 접근을 시행하며, 팀이나 워크로드 전반에 걸쳐 민감한 벡터 데이터를 보호합니다. 이 접근 방식은 다중 테넌트 환경에서 안전한 운영을 유지하는 데 도움이 되며, 조직 및 규정 준수 요구 사항과 부합하는 예측 가능한 보안 모델을 구축합니다.

시작하기 전에

참고:

세분화된 액세스 제어에 대한 다음 전제 조건은 온프레미스 배포 환경에서만 지원됩니다.

다음 필수 조건을 완료하여 환경을 준비하십시오:

  • IBM Cloud Pak for Data 클러스터에 cpadmin 계정으로 로그인해야 합니다.

  • IBM Cloud Pak for Data 클러스터에 watsonx.data 인스턴스가 설치되어 있습니다.

  • watsonx.data 인스턴스에 Milvus 서비스가 생성되었습니다.

  • IBM Cloud Pak for Data 클러스터에 필요한 사용자가 존재합니다.

LDAP(Lightweight Directory Access Protocol, LDAP )을 통해 사용자를 추가하려면 ‘ID 공급자 연결’을 참조하십시오.

  • 사용자 목록을 확인하려면:

    1. 클러스터 홈 페이지로 이동하십시오.

    2. 사용자 관리를 클릭하세요.

    3. 사용자 목록을 검토하십시오.

watsonx.data 인스턴스에 사용자 추가하기

watsonx.data 인스턴스에 사용자를 추가하여, 사용자가 구성한 권한에 따라 레이크하우스 서비스에 액세스하고, 리소스를 관리하며, Milvus 서비스를 이용할 수 있도록 합니다.

  1. 클러스터 홈 페이지로 이동하여 '내 인스턴스'를 클릭하세요.

  2. “내 인스턴스”에서 “ watsonx.data ” 인스턴스를 선택하십시오.

  3. 인스턴스 세부 정보 페이지에서 오버플로 메뉴(⋮)를 열고 '접근 관리'를 선택하세요.

  4. 사용자 추가를 클릭한 후, 해당 인스턴스에 대해 권한을 부여할 사용자를 선택하십시오.

정책 및 규칙 작성

정책은 사용자가 어떤 Milvus 리소스에 접근할 수 있는지, 그리고 어떤 작업을 수행할 수 있는지를 정의합니다. 이러한 정책은 watsonx.data 콘솔을 통해 관리합니다.

정책 관리 콘솔에 액세스하려면:

  1. ‘내 인스턴스’로 이동하여 ‘ watsonx.data ’ 인스턴스를 엽니다.

  2. 인스턴스 페이지에서 '열기'를 클릭하세요.

  3. 콘솔에서 탐색 창에서 액세스 제어를 선택하십시오.

  4. 정책 탭에서 정책 추가를 선택하여 액세스 규칙 생성을 시작하세요.

컬렉션 수준 정책 생성

이 정책 유형을 사용하여 데이터베이스 내 단일 컬렉션에 대한 가시성을 제한하십시오.

  1. 정책 탭에서 정책 추가 > 세부 정보를 클릭합니다.

  2. 정책 이름 에 정책 이름을 입력한 후 다음을 클릭하십시오.

  3. 데이터 객체 페이지에서:

    • Milvus 서비스를 시작하려면 '리소스 선택' 드롭다운에서 선택하세요.

    • 관심사 컬렉션이 포함된 데이터베이스를 선택하십시오.

    • 컬렉션을 선택하세요.

    • 다음 을 클릭하십시오.

  4. 규칙 추가를 클릭한 후 관리 대상 객체관리 대상 데이터 옵션 모두에 대해 모두 선택을 선택합니다.

  5. 추가 > 사용자 선택을 클릭하세요.

  6. 검토 > 생성 클릭.

  7. 옵션(⋮)에서 활성화를 선택하여 정책을 적용하십시오.

  8. 다음 단계를 사용하여 액세스를 확인하십시오.

Python 에서 컬렉션 수준 액세스 권한 확인

Milvus 사용자가 특정 컬렉션에 대한 접근 권한이 있는지 확인하려면 다음 단계를 따르십시오. 테스트하려는 사용자 이름과 비밀번호로 MilvusClient 세션을 생성하세요.


from pymilvus import MilvusClient
client = MilvusClient(
    uri="<your milvus service URI>", # your Milvus service URI, for example, http://localhost:19530
    user="<your username>",
    password="<your password>",
    server_pem_path="./milvus_onprem_tls.crt" # path to your SSL certificate
)

1단계: 제한된 작업이 실패하는지 확인

컬렉션 수준 권한을 가진 사용자는 모든 데이터베이스 또는 컬렉션을 열거할 수 없어야 합니다. 다음 명령어들은 예상대로 권한 오류가 발생합니다:

client.list_databases() client.list_collections()

2단계: 허용된 컬렉션에 대한 접근 권한 검증

적절한 정책을 가진 사용자는 허용된 컬렉션에 대한 정보를 여전히 검색할 수 있습니다. 이 명령어는 사용자가 권한을 부여받은 경우에 작동합니다:

client.describe_collection("<allowed_collection_name>")

출력 예

사용자가 접근 권한이 있는 컬렉션에서 ` Milvus `를 describe_collection() 실행하면 다음과 유사한 컬렉션 메타데이터를 반환합니다:


{
  "collection_name": "assistant_builder_docs_en_slate_30m_v2",
  "auto_id": true,
  "num_shards": 1,
  "description": "",
  "fields": [
    {
      "field_id": 100,
      "name": "text",
      "description": "",
      "type": "<DataType.VARCHAR: 21>",
      "params": { "max_length": 65535 }
    }
  ]
}

데이터베이스 수준 정책 생성

사용자에게 list_databases() 실행 권한을 부여하려면 다음 단계를 따르십시오.

  1. 정책 에서, 세부 정보 로 이동하세요.

  2. 정책 이름 에 정책 이름을 입력하고 다음을 클릭하십시오.

  3. 데이터 객체에서 Milvus 서비스를 선택하고 데이터베이스는 선택하지 마십시오.

  4. 규칙 추가를 클릭하고 를 선택하십시오 ListDatabases.

  5. 추가 > 사용자 선택을 클릭하세요.

  6. 정책을 활성화하려면 검토 > 생성 > 활성화를 클릭하세요.

  7. 다음 명령어를 사용하여 권한을 ListDatabases 확인하십시오:

client.list_databases()

컬렉션 수준 정책 생성

사용자가 list_collections()를 실행할 수 있도록 하려면 다음 단계를 따르십시오.

  1. 정책 에서 세부 정보를 엽니다.

  2. 정책 이름 에 정책 이름을 입력하고 다음을 클릭하십시오.

  3. 데이터 객체에서 Milvus 서비스를 선택한 후 데이터베이스(예: default)를 선택하고 컬렉션은 선택하지 마십시오.

  4. 규칙 추가를 클릭 > 선택 ShowCollections > 추가를 클릭 > 사용자를 선택합니다.

  5. 정책을 활성화하려면 검토 > 생성 > 활성화를 클릭하세요.

  6. 다음 명령어를 사용하여 권한을 ShowCollections 확인하십시오:

client.using_database("<database_selected_for_policy>")
client.list_collections()

다음에 수행할 작업

이제 승인된 사용자 자격 증명을 사용하여 Milvus 을 다음 서비스와 통합할 수 있습니다:

이러한 도구를 사용하면 Milvus 에 안전하게 접근하고 구성한 인증 규칙을 따르는 에이전트를 쉽게 구축할 수 있습니다.