Lấy API key từ Anthropic Console

2 — Gọi Claude qua APICơ bản10 phút

Mỗi API key của Anthropic giống như một thẻ tín dụng không giới hạn hạn mức nối vào credit của bạn. Ai có key đó đều có thể:

Bạn sẽ học được
  • Tạo tài khoản Anthropic và lấy API key đầu tiên
  • Lưu trữ API key an toàn (không leak vào Git)
  • Thiết lập workspace và quản lý nhiều key cho dự án khác nhau
  • Nhận diện cảnh báo bảo mật quan trọng khi xử lý API key

Quy trình 5 bước lấy API key

Bước 1: Vào Anthropic Console

Mở trình duyệt, vào: console.anthropic.com

Nếu chưa có tài khoản:

Anthropic có thể yêu cầu số điện thoại để verify (giảm spam). Cung cấp số thật.

Bước 2: Nạp credit (nếu chưa có)

Để gọi API, tài khoản cần có credit. Trial có thể có $5 free, không thì:

Pro tip: Bật "Auto-reload" khi credit xuống < $10 để tránh bị ngắt giữa lúc đang code.

Bước 3: Navigate đến API Keys page

Trong console, từ menu bên trái:

Bước 4: Create Key

Click nút "Create Key" (góc trên phải). Form hiện ra:

Best practices khi đặt tên:

Workspace:

Bước 5: Copy key và lưu an toàn

Sau khi click Create, pop-up hiện key dạng:

CỰC KỲ QUAN TRỌNG:

Copy key và lưu vào file .env (xem section tiếp).

  • Click "Sign up"
  • Đăng nhập bằng Google / GitHub / email
  • Xác nhận email
  • Vào Settings → Billing
  • Thêm credit card (hoặc PayPal)
  • Nạp tối thiểu $5 — đủ cho toàn khóa này nếu dùng Sonnet/Haiku hợp lý
  • Click "API Keys"
  • Hoặc click nút "Get API Keys" ở dashboard chính (góc trên phải)
  • Nêu rõ mục đích: course-learning, prod-chatbot, dev-experimental
  • Tránh generic: key1, mykey, test
  • Một key/environment: prod-chatbot, staging-chatbot, dev-chatbot
  • Default — đủ cho cá nhân / học
  • Tạo workspace riêng khi bạn có team (tách billing, permission)
┌───────────────────────────────────────────────┐
│  ⚠️  Key CHỈ HIỂN THỊ 1 LẦN DUY NHẤT.         │
│                                               │
│  Nếu bạn đóng pop-up mà chưa copy:            │
│  → Phải XÓA key cũ và tạo key MỚI.            │
└───────────────────────────────────────────────┘
sk-ant-api03-ABCD1234...xyz

Lưu trữ API key an toàn

Quy tắc số 1: KHÔNG BAO GIỜ hard-code key trong source.

Setup chuẩn với .env

Trong thư mục project:

1. Tạo file .env:

# ❌ TUYỆT ĐỐI KHÔNG
client = Anthropic(api_key="sk-ant-api03-ABCD1234...")

# ✅ Dùng env var
from anthropic import Anthropic
client = Anthropic()  # tự đọc từ ANTHROPIC_API_KEY env var

Setup chuẩn với .env

2. Tạo / update file .gitignore:

# .env (đặt ở project root)
ANTHROPIC_API_KEY="sk-ant-api03-ABCD1234...xyz"

Lưu trữ API key an toàn (tiếp)

3. Kiểm tra .env ĐÃ ở trong .gitignore trước khi commit:

# .gitignore
.env
.env.local
.env.*.local
*.key
.venv/

Lưu trữ API key an toàn (tiếp)

4. Dùng python-dotenv để load:

git status
# Kết quả PHẢI KHÔNG có .env

Lưu trữ API key an toàn (tiếp)

Tạo file .env.example (best practice)

Commit file template để team khác biết cần những env var nào:

from dotenv import load_dotenv
load_dotenv()  # đọc .env vào os.environ

from anthropic import Anthropic
client = Anthropic()  # tự lấy ANTHROPIC_API_KEY

Tạo file .env.example (best practice)

Thành viên mới clone repo → copy .env.example thành .env → điền key của họ.

# .env.example (commit vào git)
ANTHROPIC_API_KEY=
DATABASE_URL=

Nhiều environment — nhiều key

Production app thường có 3 env:

Tại sao tách key? Vì:

Naming convention

  • Dev vs prod có traffic khác nhau → cần budget khác
  • Nếu dev key lộ → không ảnh hưởng prod
  • Audit log rõ ràng theo env
┌──────────────┬──────────────┬──────────────┐
│     DEV      │   STAGING    │     PROD     │
├──────────────┼──────────────┼──────────────┤
│  key riêng   │  key riêng   │  key riêng   │
│  budget nhỏ  │  budget vừa  │  budget lớn  │
│  Sonnet/Haiku│  Sonnet      │  Sonnet/Opus │
│  log verbose │  log normal  │  log minimal │
└──────────────┴──────────────┴──────────────┘
dev-chatbot-jimmy
staging-chatbot
prod-chatbot
prod-chatbot-rotated-2026-04  ← khi rotate định kỳ

Quản lý key qua thời gian

Rotate định kỳ (khuyến nghị 3-6 tháng)

Check usage định kỳ

Console → Usage — xem biểu đồ:

Alerts khuyến nghị:

Khi nào cần revoke ngay

Revoke qua: Console → API Keys → tick key → Disable. Không cần retrieve key để disable.

  • Tạo key mới với tên prod-chatbot-rotated-YYYY-MM
  • Update app config dùng key mới
  • Deploy + verify
  • Delete key cũ trên console
  • Request count / day
  • Token consumption / model
  • Cost / day
  • $50/ngày → email
  • $100/ngày → SMS
  • $200/ngày → page on-call
  • Key bị commit vào Git (kể cả private repo, vẫn nên revoke)
  • Laptop có key bị mất/trộm
  • Ex-employee từng access key
  • Bất kỳ nghi ngờ nào

Ví dụ thực chiến: Setup hoàn chỉnh cho course

Bước 1: Tạo project

Bước 2: Tạo .gitignore

mkdir claude-api-course
cd claude-api-course

Bước 2: Tạo .gitignore

Bước 3: Tạo .env

cat > .gitignore << 'EOF'
.env
.venv/
__pycache__/
*.ipynb_checkpoints
.DS_Store
EOF

Bước 3: Tạo .env

Edit .env và paste key thực.

Bước 4: Tạo .env.example

echo 'ANTHROPIC_API_KEY="sk-ant-api03-PASTE-YOUR-KEY-HERE"' > .env

Bước 4: Tạo .env.example

Bước 5: Setup venv + install

echo 'ANTHROPIC_API_KEY=' > .env.example

Bước 5: Setup venv + install

Bước 6: Test

Tạo test_key.py:

python3 -m venv .venv
source .venv/bin/activate
pip install anthropic python-dotenv jupyterlab

Bước 6: Test

Chạy:

from dotenv import load_dotenv
load_dotenv()

from anthropic import Anthropic
client = Anthropic()

msg = client.messages.create(
    model="claude-haiku-4-5",
    max_tokens=50,
    messages=[{"role": "user", "content": "Say 'key works!'"}]
)
print(msg.content[0].text)

Ví dụ thực chiến: Setup hoàn chỉnh cho course (tiếp)

Nếu in ra key works! — đã OK. Nếu lỗi, check:

Bước 7: Init git

  • .env có đúng path không
  • Key có đúng không (copy đầy đủ chưa)
  • Credit có đủ không
python test_key.py

Bước 7: Init git

git init
git add .
git status  # Verify .env KHÔNG trong list
git commit -m "Initial setup"

Case studies theo ngành

💻 Startup Tech — Multi-tenant SaaS

Setup: 1 key master cho billing + 1 workspace / customer enterprise.

Lý do: Mỗi customer lớn muốn audit riêng biệt. Workspace giúp tách analytics mà vẫn dùng 1 account.

📊 Data Team — Shared notebook

Problem: Team 5 người dùng chung Jupyter server, ai cũng cần gọi Claude.

Anti-solution: Hard-code 1 key chia sẻ → không biết ai dùng, ai tiêu tiền.

Solution:

⚖️ Legal / Enterprise — Compliance

Setup: Sử dụng Amazon Bedrock hoặc Google Vertex AI thay API trực tiếp → tuân thủ data residency, HIPAA, SOC2.

Key Anthropic không cần, dùng credentials AWS/GCP. (Xem bài 6.4 — Access patterns.)

  • Mỗi người 1 key riêng (tự tạo, self-service)
  • Jupyter load key từ ~/.env user-specific
  • Dashboard usage / user

Anti-patterns — Sai lầm bảo mật

❌ Commit .env vào Git

Hiểu hiện: git add . không check → .env push lên GitHub.

Hậu quả: Key lộ, bot quét trong 5 phút, bill $5000.

Fix:

❌ Share key qua Slack / email

Hiểu hiện: "Key của nhóm đây: sk-ant-..." trên kênh team Slack.

Hậu quả: Slack history vĩnh viễn, nếu Slack bị hack → key lộ.

Fix:

❌ Để key trong Docker image

Hiểu hiện: Dockerfile có ENV ANTHROPIC_API_KEY=sk-....

Hậu quả: Image push lên registry → ai pull cũng có key.

Fix: Inject qua runtime env var, không bake vào image:

  • Luôn có .env trong .gitignore TRƯỚC khi tạo file .env
  • Set up pre-commit hook check .env không được staged:
  • Mỗi dev tự tạo key riêng qua console (self-service)
  • Nếu PHẢI share: 1Password / Vaultwarden / HashiCorp Vault
  # .git/hooks/pre-commit
  if git diff --cached --name-only | grep -qE '\.env$|\.env\.[^e]'; then
    echo "Error: .env files should not be committed"
    exit 1
  fi

❌ Để key trong Docker image

Hoặc dùng secret manager (AWS Secrets Manager, K8s secrets).

❌ Log key vào log file

Hiểu hiện: Debug log in client.api_key → log file có key.

Fix: Config logger để filter key khỏi log:

docker run -e ANTHROPIC_API_KEY=sk-... myapp

❌ Log key vào log file

❌ 1 key cho tất cả

Hiểu hiện: Prod, staging, dev, everyone dùng chung 1 key.

Fix: Mỗi env + mỗi dev → key riêng. Dễ audit, dễ revoke.

import logging
class RedactKeyFilter(logging.Filter):
    def filter(self, record):
        if "sk-ant-" in record.msg:
            record.msg = record.msg.replace(
                record.msg[record.msg.find("sk-ant-"):record.msg.find("sk-ant-")+30],
                "sk-ant-[REDACTED]"
            )
        return True

Áp dụng ngay

Bài tập 1: Lấy API key và test (15 phút)

Checklist hoàn thành:

Bài tập 2: Tự audit security (10 phút)

Mở terminal, chạy:

Chỉ được có 1 match: trong .env. Nếu có ở file khác → di chuyển vào .env.

  • Vào console.anthropic.com
  • Tạo account, nạp $5
  • Tạo key tên anthropic-course-vi
  • Setup project theo section "Ví dụ thực chiến" trên
  • Chạy test_key.py thành công
  • [ ] Có key sk-ant-api03-... trong .env
  • [ ] .env trong .gitignore
  • [ ] python test_key.py in ra phản hồi của Claude
  • [ ] Console hiển thị có request trong Usage
  • [ ] git status KHÔNG liệt kê .env
# Check key không trong file nào:
grep -r "sk-ant" . --exclude-dir=.venv --exclude-dir=.git

Bài tập 2: Tự audit security (10 phút)

Phải trả về empty. Nếu có log → key đã từng bị commit → REVOKE key ngay và tạo mới.

# Check git tracking:
git log --all --full-history -- .env

Tóm tắt bài học

🎯 API key = thẻ tín dụng không giới hạn. Treat với sự cẩn trọng tương xứng.

🎯 5 bước lấy key: Console → Workspace → Create Key → Name → Copy ngay. Key chỉ hiện 1 lần duy nhất.

🎯 Setup .env + .gitignore là tiêu chuẩn. Dùng python-dotenv để load, Anthropic() tự đọc từ env var.

🎯 Không bao giờ commit key, share qua chat, bake vào Docker. Revoke ngay nếu nghi ngờ lộ.

🎯 Rotate định kỳ 3-6 tháng. Dashboard usage để phát hiện bất thường sớm.

Tài liệu tham khảo
  • Anthropic Console — API Keys
  • Best practices — API keys
  • python-dotenv docs
  • Git pre-commit hooks cho detect secrets
Nội dung này có hữu ích không?