Paano ko i-rotate ang isang API key?

Huling na-update: 3 buwan ang nakalipas

Ang regular na pag-rotate ng mga API key ay isang mahalagang kasanayan sa seguridad. Narito kung paano ligtas na i-rotate ang iyong mga key nang hindi naaabala ang iyong serbisyo.

Bakit i-rotate ang mga API key?

  • Pinakamahusay na kasanayan sa seguridad: Nililimitahan ang pagkakalantad kung sakaling ma-compromise ang isang key

  • Mga pagbabago sa miyembro ng team: Kapag umalis ang mga developer o nagbago ng tungkulin

  • Pinaghihinalaang pag-compromise: Kung naniniwala kang maaaring nalantad ang isang key

  • Pagsunod (Compliance): Ang ilang patakaran sa seguridad ay nangangailangan ng pana-panahong pag-rotate ng key

  • Mga pagbabago sa environment: Kapag nagmi-migrate ng imprastraktura o nagre-refactor

Karaniwang proseso ng pag-rotate (zero downtime)

Hakbang 1: Gumawa ng bagong key

  1. Mag-log in sa Settings → API

  2. I-click "Create new API key"

  3. Bigyan ito ng malinaw na pangalan (hal., "Production Web v2")

  4. Kopyahin agad ang bagong key—ipapakita lang ito nang isang beses

  5. I-store ito nang ligtas

Hakbang 2: I-update ang iyong application

  • I-deploy ang bagong key sa iyong application (environment variables, secrets manager, atbp.)

  • I-restart ang iyong application para ma-load ang bagong key

  • I-verify na gumagana nang tama ang bagong key

  • Mag-monitor para sa anumang error

Hakbang 3: I-monitor ang paglipat

  • Panatilihing aktibo muna ang parehong key

  • Tingnan Settings → API para makita ang mga petsa ng "Last used"

  • Maghintay hanggang ang lumang key ay walang kamakailang aktibidad

  • Siguraduhing lahat ng instance/serbisyo ay lumipat na sa bagong key

Hakbang 4: Tanggalin ang lumang key

  • Kapag nakumpirma na ang lumang key ay hindi na ginagamit

  • Tanggalin o i-deactivate ang lumang key sa Settings → API

  • I-document ang pag-rotate para sa iyong mga tala

Mabilis na proseso ng pag-rotate (kung na-compromise)

Kung ang isang key ay tiyak na na-compromise at kailangan mong kumilos agad:

  1. Tanggalin muna ang na-compromise na key sa Settings → API

  2. Gumawa ng bagong kapalit na key

  3. Mabilis na i-deploy ang bagong key sa lahat ng application

  4. Tanggapin ang maikling downtime para maiwasan ang hindi awtorisadong pag-access

  5. I-monitor ang mga usage log para sa anumang kahina-hinalang aktibidad

  6. Makipag-ugnayan sa support kung kailangan

Istratehiya sa pag-rotate sa maraming environment

Para sa mga production system, gumamit ng phased approach:

Linggo 1: Development

  • Gumawa at i-deploy ang bagong key sa dev environment

  • Subukan nang masinsinan

Linggo 2: Staging

  • I-deploy ang bagong key sa staging

  • Patakbuhin ang integration tests

  • Mag-monitor para sa mga isyu

Linggo 3: Production

  • I-deploy ang bagong key sa production sa panahon ng mababang trapiko

  • Mag-monitor nang mabuti

  • Panatilihing aktibo ang lumang key sa loob ng 24-48 oras bilang fallback

Linggo 4: Cleanup

  • I-verify na walang aktibidad ang lumang key

  • Tanggalin ang lumang key

  • I-update ang dokumentasyon

Halimbawa ng automation

Script para makatulong na i-verify na kumpleto ang pag-rotate ng key:

#!/bin/bash
# check-api-key.sh
OLD_KEY="sk_live_OLD123..."
NEW_KEY="sk_live_NEW789..."
echo "Testing old key..."
OLD_RESPONSE=$(curl -s -w "%{http_code}" -X POST https://api.cathopic.com/resources \
  -H "x-api-key: $OLD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"test","page":1,"page_size":1}')
echo "Testing new key..."
NEW_RESPONSE=$(curl -s -w "%{http_code}" -X POST https://api.cathopic.com/resources \
  -H "x-api-key: $NEW_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"test","page":1,"page_size":1}')
echo "Old key status: ${OLD_RESPONSE: -3}"
echo "New key status: ${NEW_RESPONSE: -3}"
if [ "${NEW_RESPONSE: -3}" == "200" ]; then
  echo "✅ New key is working!"
else
  echo "❌ New key failed!"
fi

Mga best practices

  • Mag-rotate nang regular: Bawat 90 araw para sa mga production key

  • I-document ang mga pag-rotate: Magtago ng tala kung kailan na-rotate ang mga key at kung bakit

  • Subukan bago tanggalin: Palaging i-verify na gumagana ang bagong key bago alisin ang lumang key

  • Gumamit ng maraming key: Paghiwalayin ang mga key per environment para mas madaling mag-rotate

  • I-automate kung posible: Gumamit ng mga tool sa secrets management na sumusuporta sa automatic rotation

Checklist pagkatapos ng pag-rotate

I-verify ang mga item na ito pagkatapos mag-rotate:

  • ✅ Lahat ng production instances na gumagamit ng bagong key

  • ✅ Lahat ng staging/dev environments na na-update (kung gumagamit ng parehong key)

  • ✅ Na-update ang mga environment variables

  • ✅ Na-update ang CI/CD secrets

  • ✅ Na-update ang dokumentasyon

  • ✅ Naabisuhan ang mga miyembro ng team

  • ✅ Tanggal ang lumang key

  • ✅ Na-log ang pag-rotate para sa audit purposes

Nakatulong ba ang artikulong ito?