Admin SDK로 API 키 관리하기

Admin SDK로 API 키 관리하기

조직 및 프로젝트 스코프의 API 키를 프로비저닝(provision)하고 회전(rotate)할 수 있어요.

출처: 문서

본문

개요 (Overview)

API 키는 Confident AI 요청을 인증하며, 두 가지 스코프로 나뉘어요:

  • 조직 API 키(Organization API keys) 는 조직 수준에서 인증해요. 계정 전체 관리에 사용되며, 이 SDK의 모든 관리 메서드가 여기에 해당해요.
  • 프로젝트 API 키(Project API keys) 는 단일 프로젝트에 스코프돼요. 앱이 그 프로젝트에 트레이스를 보내고 평가를 실행할 때 사용하는 키예요.

Admin SDK를 사용하면 두 스코프 모두에서 키를 조회, 생성, 활성화, 비활성화, 삭제할 수 있어요.

%%{init: {'flowchart': {'nodeSpacing': 55, 'rankSpacing': 90}}}%%
flowchart LR
    OK["Organization API Key"] -->|authenticates| Admin["Account-wide management<br/>(this SDK)"]
    PK["Project API Key"] -->|authenticates| Ingest["Traces & evaluations<br/>in one project"]

API 키의 전체 시크릿 value는 생성 시에만 반환돼요. 이후 읽기는 마스킹된 값을 반환하므로, 생성할 때 시크릿을 안전하게 보관해야 해요.

이 페이지의 모든 메서드는 조직 API 키가 필요해요. 클라이언트 생성은 퀵스타트를 참고해요.

API 키 목록 조회 (List API Keys)

조직 또는 프로젝트 수준의 모든 API 키를 나열할 수 있어요. 시크릿 값은 마스킹돼요.

Python

from confidentai import ConfidentAI

client = ConfidentAI()

org = client.organization()
project = client.project("clq9z3x1k0001la08f7t3g5p2")

api_keys = org.api_keys.list()
project_api_keys = project.api_keys.list()

TypeScript

import { ConfidentAI } from "confidentai";

const client = new ConfidentAI();

const org = client.organization();
const project = client.project("clq9z3x1k0001la08f7t3g5p2");

const apiKeys = await org.apiKeys.list();
const projectApiKeys = await project.apiKeys.list();

API 키 조회 (Get an API Key)

api_key_id로 단일 API 키를 조회할 수 있어요. 시크릿 값은 마스킹돼요.

Python

org = client.organization()
project = client.project("clq9z3x1k0001la08f7t3g5p2")

api_key = org.api_keys.get(7)
project_api_key = project.api_keys.get(7)

TypeScript

const org = client.organization();
const project = client.project("clq9z3x1k0001la08f7t3g5p2");

const apiKey = await org.apiKeys.get(7);
const projectApiKey = await project.apiKeys.get(7);

API 키 생성 (Create an API Key)

조직 또는 프로젝트 수준에서 새 키를 만들 수 있어요. 반환된 객체의 value가 전체 시크릿이므로, 생성 시 안전하게 보관해요.

Python

org = client.organization()
project = client.project("clq9z3x1k0001la08f7t3g5p2")

api_key = org.api_keys.create("ci-pipeline")
print(api_key.value)  # e.g. "confident_us_org_...", shown only once

project_api_key = project.api_keys.create("ci-pipeline")
print(project_api_key.value)  # e.g. "confident_us_proj_..."

TypeScript

const org = client.organization();
const project = client.project("clq9z3x1k0001la08f7t3g5p2");

const apiKey = await org.apiKeys.create({ name: "ci-pipeline" });
console.log(apiKey.value); // e.g. "confident_us_org_...", shown only once

const projectApiKey = await project.apiKeys.create({ name: "ci-pipeline" });
console.log(projectApiKey.value); // e.g. "confident_us_proj_..."

API 키 활성화/비활성화 (Enable or Disable an API Key)

valid를 false로 설정하면 키를 삭제하지 않고 폐지할 수 있고, 다시 true로 되돌리면 재활성화할 수 있어요.

Python

org = client.organization()
project = client.project("clq9z3x1k0001la08f7t3g5p2")

api_key = org.api_keys.update(7, valid=False)
project_api_key = project.api_keys.update(7, valid=False)

TypeScript

const org = client.organization();
const project = client.project("clq9z3x1k0001la08f7t3g5p2");

const apiKey = await org.apiKeys.update(7, { valid: false });
const projectApiKey = await project.apiKeys.update(7, { valid: false });

API 키 삭제 (Delete an API Key)

api_key_id로 API 키를 영구 삭제할 수 있어요. 삭제 즉시 폐지돼요.

Python

org = client.organization()
project = client.project("clq9z3x1k0001la08f7t3g5p2")

org.api_keys.delete(7)
project.api_keys.delete(7)

TypeScript

const org = client.organization();
const project = client.project("clq9z3x1k0001la08f7t3g5p2");

await org.apiKeys.delete(7);
await project.apiKeys.delete(7);

다음 단계 (Next Steps)

키를 사용해서 플랫폼과 SDK의 나머지를 인증해요:

인증 (Authentication)

조직/프로젝트 수준 인증이 어떻게 동작하는지 배워요.

프로젝트 (Projects)

키가 스코프된 프로젝트를 관리해요.

더 알아보기