사용자 및 역할 생성
Milvus는 RBAC을 통해 세분화된 접근 제어를 실현합니다. 먼저 사용자와 역할을 생성한 다음, 역할에 권한 또는 권한 그룹을 할당하고 마지막으로 사용자에게 역할을 부여하여 액세스 제어를 관리할 수 있습니다. 이 방법은 액세스 관리의 효율성과 보안을 보장합니다. 이 페이지에서는 Milvus에서 사용자 및 역할을 만드는 방법을 소개합니다.
사용자
Milvus 인스턴스를 초기화한 후, Milvus에 처음 접속할 때 인증을 위해 루트 사용자가 자동으로 생성됩니다. 루트 사용자의 사용자 이름은 root
이고 비밀번호는 Milvus
입니다. 루트 사용자의 기본 역할은 admin
이며 모든 리소스에 대한 액세스 권한이 있습니다. 데이터 보안을 위해 루트 사용자의 자격 증명을 안전하게 보관하여 무단 액세스를 방지하세요.
일상적인 작업의 경우 루트 사용자를 사용하는 대신 사용자를 만드는 것이 좋습니다.
사용자 만들기
다음 예는 사용자 아이디 user_1
와 비밀번호 P@ssw0rd
를 사용하여 사용자를 만드는 방법을 보여줍니다. 사용자의 사용자 아이디와 비밀번호는 다음 규칙을 따라야 합니다.
사용자 아이디: 문자로 시작해야 하며 대문자 또는 소문자, 숫자, 밑줄만 포함할 수 있습니다.
비밀번호: 8~64자 길이여야 하며 대문자, 소문자, 숫자, 특수 문자 중 세 가지를 포함해야 합니다.
from pymilvus import MilvusClient
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus"
)
client.create_user(user_name="user_1", password="P@ssw0rd")
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.rbac.request.CreateUserReq;
ConnectConfig connectConfig = ConnectConfig.builder()
.uri("http://localhost:19530")
.token("root:Milvus")
.build();
MilvusClientV2 client = new MilvusClientV2(connectConfig);
CreateUserReq createUserReq = CreateUserReq.builder()
.userName("user_1")
.password("P@ssw0rd")
.build();
client.createUser(createUserReq);
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});
await milvusClient.createUser({
username: 'user_1',
password: 'P@ssw0rd',
});
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"userName": "user_1",
"password": "P@ssw0rd"
}'
비밀번호 업데이트
사용자를 만든 후 비밀번호를 잊어버린 경우 비밀번호를 업데이트할 수 있습니다.
새 비밀번호는 다음 규칙을 따라야 합니다.
- 8~64자 길이여야 하며 대문자, 소문자, 숫자, 특수 문자 중 세 가지를 포함해야 합니다.
다음 예는 user_1
사용자의 비밀번호를 NewP@ssw0rd
으로 업데이트하는 방법을 보여줍니다.
from pymilvus import MilvusClient
client.update_password(
user_name="user_1",
old_password="P@ssw0rd",
new_password="NewP@ssw0rd"
)
import io.milvus.v2.service.rbac.request.UpdatePasswordReq;
UpdatePasswordReq updatePasswordReq = UpdatePasswordReq.builder()
.userName("user_1")
.password("P@ssw0rd")
.newPassword("NewP@ssw0rd")
.build();
client.updatePassword(updatePasswordReq);
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.updateUser({
username: 'user_1',
newPassword: 'P@ssw0rd',
oldPassword: 'NewP@ssw0rd',
});
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/update_password" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"newPassword": "P@ssw0rd!",
"userName": "user_1",
"password": "P@ssw0rd"
}'
사용자 나열하기
여러 사용자를 만든 후 기존 사용자를 모두 나열하고 볼 수 있습니다.
from pymilvus import MilvusClient
client.list_users()
List<String> resp = client.listUsers();
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.listUsers();
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/list" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{}'
아래는 출력 예시입니다. root
은 Milvus에서 자동으로 생성된 기본 사용자이고, user_1
은 방금 생성한 새 사용자입니다.
['root', 'user_1']
역할
Milvus는 모든 인스턴스의 리소스에 액세스할 수 있고 모든 작업에 대한 권한이 있는 관리자 역할인 admin
이라는 기본 제공 역할을 제공합니다. 보다 세분화된 액세스 관리와 향상된 데이터 보안을 위해 필요에 따라 사용자 지정 역할을 만드는 것이 좋습니다.
역할 만들기
다음 예에서는 role_a
라는 역할을 만드는 방법을 보여 줍니다.
역할 이름은 다음 규칙을 따라야 합니다.
- 문자로 시작해야 하며 대문자 또는 소문자, 숫자 및 밑줄만 포함할 수 있습니다."
from pymilvus import MilvusClient
client.create_role(role_name="role_a")
import io.milvus.v2.service.rbac.request.CreateRoleReq;
CreateRoleReq createRoleReq = CreateRoleReq.builder()
.roleName("role_a")
.build();
client.createRole(createRoleReq);
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.createRole({
roleName: 'role_a',
});
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"roleName": "role_a"
}'
역할 나열
여러 역할을 만든 후 기존의 모든 역할을 나열하고 볼 수 있습니다.
from pymilvus import MilvusClient
client.list_roles()
List<String> roles = client.listRoles();
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.listRoles(
includeUserInfo: True
);
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/list" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{}'
아래는 출력 예시입니다. admin
은 Milvus의 기본 역할이고 role_a
은 방금 생성한 새 역할입니다.
['admin', 'role_a']