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
Mag-log in sa Settings → API
I-click "Create new API key"
Bigyan ito ng malinaw na pangalan (hal., "Production Web v2")
Kopyahin agad ang bagong key—ipapakita lang ito nang isang beses
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:
Tanggalin muna ang na-compromise na key sa Settings → API
Gumawa ng bagong kapalit na key
Mabilis na i-deploy ang bagong key sa lahat ng application
Tanggapin ang maikling downtime para maiwasan ang hindi awtorisadong pag-access
I-monitor ang mga usage log para sa anumang kahina-hinalang aktibidad
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