> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akria.net/llms.txt
> Use this file to discover all available pages before exploring further.

# API Key 管理

> 多组 API Key 管理与安全指南

## 🎯 概述

Core API 支持多组 API Key 管理，可以为不同的团队、项目或环境设置独立的 API Key。

<CardGroup cols={3}>
  <Card title="多组支持" icon="users-gear">
    为不同团队或环境设置独立 Key，实现精细化权限控制。
  </Card>

  <Card title="使用追踪" icon="chart-line">
    实时记录每个 Key 的调用次数和最后使用时间。
  </Card>

  <Card title="动态管理" icon="bolt">
    支持动态添加、禁用或删除 Key，无需重启服务。
  </Card>
</CardGroup>

***

## 📋 获取 API Key

<Steps>
  <Step title="联系管理员" icon="user-shield">
    联系 API 管理员获取你所在组的 API Key。
  </Step>

  <Step title="使用管理脚本" icon="terminal">
    如果你有数据库访问权限，可以使用管理脚本在本地创建：

    ```bash theme={null}
    cd services/core-api-v1
    python scripts/manage_api_keys.py create \
      --group dev-team-1 \
      --name "Dev Team 1 - Main Key"
    ```
  </Step>
</Steps>

***

## 🔍 查看与管理

### 统计查询

<Tabs>
  <Tab title="管理脚本">
    ```bash theme={null}
    # 查看所有 Key 的使用情况
    python scripts/manage_api_keys.py list
    ```
  </Tab>

  <Tab title="SQL 查询">
    ```sql theme={null}
    SELECT group_name, SUM(usage_count) as total_usage
    FROM api_keys GROUP BY group_name;
    ```
  </Tab>

  <Tab title="Kubernetes">
    ```bash theme={null}
    kubectl exec -it postgres-dev-0 -n insight-dev -- psql -U postgres -d core_api_dev -c "SELECT id, key_name, usage_count FROM api_keys;"
    ```
  </Tab>
</Tabs>

***

## 🔒 安全建议

<Warning>
  **安全第一**：API Key 具有完全访问权限，请务必妥善保管。
</Warning>

<Steps>
  <Step title="存储哈希值" icon="lock">
    数据库中仅存储 SHA-256 哈希值，即使泄露也无法还原明文。
  </Step>

  <Step title="定期轮换" icon="arrows-rotate">
    建议每 3-6 个月更换一次 Key，降低泄露风险。
  </Step>

  <Step title="及时禁用" icon="power-off">
    发现异常使用或成员变动时，应立即禁用对应 Key。
  </Step>
</Steps>

***

## ❓ 常见问题

<AccordionGroup>
  <Accordion title="如何知道我的 Key 属于哪个组？">
    联系管理员查询，或使用管理脚本查看：

    ```bash theme={null}
    python scripts/manage_api_keys.py list
    ```
  </Accordion>

  <Accordion title="Key 过期了怎么办？">
    联系管理员创建新的 Key，或使用管理脚本创建。
  </Accordion>

  <Accordion title="Key 泄露了怎么办？">
    1. 立即禁用泄露的 Key
    2. 创建新 Key 并更新应用配置
    3. 确认无误后删除旧 Key
  </Accordion>
</AccordionGroup>
