How to Give AI Agents Safe Database Access
ਇੱਕ AI agent ਨੂੰ ਆਪਣੇ production database ਤੱਕ ਪਹੁੰਚ ਦੇਣਾ ਇੱਕ ਬਹੁਤ ਵੱਡਾ ਜੋਖਮ ਹੈ। ਸਿਰਫ਼ read-only user ਹੋਣਾ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ। ਇੱਕ agent ਇਰਾਦੇ ਜਾਂ ਡੇਟਾ ਦੀ ਸੰਵੇਦਨਸ਼ੀਲਤਾ ਦਾ ਅੰਦਾਜ਼ਾ ਨਹੀਂ ਲਗਾ ਸਕਦਾ। ਜੇਕਰ ਤੁਸੀਂ write access ਦਿੰਦੇ ਹੋ, ਤਾਂ ਇੱਕ prompt injection ਇੱਕ ਮਦਦਗਾਰ agent ਨੂੰ ਵਿਨਾਸ਼ਕਾਰੀ ਬਣਾ ਸਕਦਾ ਹੈ।
ਆਪਣੇ ਡੇਟਾ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਲਈ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਆ ਦੀ ਦੋ ਪਰਤਾਂ (layers) ਦੀ ਲੋੜ ਹੈ।
Layer 1: Static Database Controls ਇਹ ਤੁਹਾਡੇ database engine ਦੇ ਅੰਦਰ ਮੌਜੂਦ ਬੁਨਿਆਦੀ ਸੈਟਿੰਗਾਂ ਹਨ। ਪਹਿਲਾਂ ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ:
- Least-privilege roles: Agent ਲਈ ਇੱਕ ਖਾਸ role ਬਣਾਓ। ਕਦੇ ਵੀ admin accounts ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ।
- Read replicas: Analytics agents ਨੂੰ ਇੱਕ replica 'ਤੇ ਭੇਜੋ ਤਾਂ ਜੋ ਉਹ production ਨੂੰ ਹੌਲੀ ਨਾ ਕਰਨ।
- Row-level security: ਇਹ ਸੀਮਤ ਕਰਨ ਲਈ policies ਦੀ ਵਰਤੋਂ ਕਰੋ ਕਿ ਇੱਕ agent ਕਿਹੜਾ ਡੇਟਾ ਦੇਖ ਸਕਦਾ ਹੈ।
- Statement timeouts: ਬੇਕਾਬੂ queries ਨੂੰ ਤੁਹਾਡੇ server ਨੂੰ ਕ੍ਰੈਸ਼ ਕਰਨ ਤੋਂ ਰੋਕੋ।
- Allowlists: ਕੁਝ ਖਾਸ hosts ਤੱਕ ਹੀ connections ਨੂੰ ਸੀਮਤ ਰੱਖੋ।
Layer 2: The Runtime Control Plane Static controls ਸਿਰਫ਼ ਪਛਾਣ (identity) ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਨ। ਉਹ ਇੱਕ agent ਨੂੰ ਡੇਟਾ ਚੋਰੀ ਕਰਨ (exfiltrating data) ਜਾਂ ਕਿਸੇ ਮਾੜੇ ਨਿਰਦੇਸ਼ ਦੀ ਪਾਲਣਾ ਕਰਨ ਤੋਂ ਨਹੀਂ ਰੋਕ ਸਕਦੇ। ਤੁਹਾਨੂੰ ਇੱਕ control plane ਦੀ ਲੋੜ ਹੈ ਜੋ agent ਅਤੇ database ਦੇ ਵਿਚਕਾਰ ਹੋਵੇ।
ਇਸ ਪਰਤ (layer) ਨੂੰ ਚਾਰ ਕੰਮ ਕਰਨੇ ਚਾਹੀਦੇ ਹਨ:
- Classify: ਹਰ query ਨੂੰ read, write, ਜਾਂ schema change ਵਜੋਂ ਲੇਬਲ ਕਰੋ।
- Enforce default-deny: ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦੇ, ਸਭ ਕੁਝ ਬਲੌਕ ਕਰੋ।
- Gate risky actions: Bulk deletes ਜਾਂ schema changes ਲਈ ਕਿਸੇ ਇਨਸਾਨ ਦੀ ਮਨਜ਼ੂਰੀ ਲਾਜ਼ਮੀ ਕਰੋ।
- Record everything: ਹਰ ਕਾਰਵਾਈ ਅਤੇ ਹਰ ਮਨਜ਼ੂਰੀ ਦਾ ਇੱਕ ਅਟੁੱਟ (immutable) log ਰੱਖੋ।
Why this matters: ਜੇਕਰ ਤੁਸੀਂ prompt ਵਿੱਚ ਨਿਯਮ ਲਗਾਉਂਦੇ ਹੋ, ਤਾਂ agent ਉਹਨਾਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਸਕਦਾ ਹੈ। ਇੱਕ control plane agent ਦੇ context ਤੋਂ ਬਾਹਰ ਹੁੰਦਾ ਹੈ। ਇਹ ਅਸਲ query ਨੂੰ ਦੇਖਦਾ ਹੈ, agent ਦੀ ਯੋਜਨਾ ਨੂੰ ਨਹੀਂ। ਇਹ ਤੁਹਾਨੂੰ prompt injection ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ।
ਸੁਰੱਖਿਅਤ access ਲਈ ਇਸ checklist ਦੀ ਵਰਤੋਂ ਕਰੋ:
- ਹਰੇਕ agent ਲਈ ਵੱਖਰਾ (dedicated) role।
- Exploration ਲਈ read replicas ਦੀ ਵਰਤੋਂ ਕਰੋ।
- Row-level security ਲਾਗੂ ਕਰੋ।
- Statement timeouts ਸੈੱਟ ਕਰੋ।
- ਸਾਰਾ traffic ਇੱਕ control plane ਰਾਹੀਂ ਭੇਜੋ।
- Default-deny policy ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਉੱਚ-ਜੋਖਮ ਵਾਲੇ ਕੰਮਾਂ ਲਈ ਮਨੁੱਖੀ ਮਨਜ਼ੂਰੀ ਦੀ ਲੋੜ ਹੈ।
- ਇੱਕ ਅਟੁੱਟ (immutable) audit log ਰੱਖੋ।
Static controls ਆਪਣਾ ਕੰਮ ਕਰਦੇ ਹਨ। Control plane ਬਾਕੀ ਦਾ ਕੰਮ ਕਰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਦੋਵਾਂ ਦੀ ਲੋੜ ਹੈ।
Optional learning community: https://t.me/GyaanSetuAi
