iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
自我挑戰組

和AI學習gcp - 建立對話代理系列 第 24

Day24 建立服務邊界

  • 分享至 

  • xImage
  •  

今天要做的服務邊界, 目的是防止攻擊者取得機敏資料, 我們要做的就是對gcp的api除了檢查身份, 還檢查發起的位置, 如此就算攻擊者取得service account key, 因為不在邊界內發起, 所以也無法取得資料

┌──────────────────── Service Perimeter ─────────────────────┐
│                                                            │
│   Cloud Storage   Cloud SQL   Vertex AI   Secret Manager   │
│        (GCS)      (pgvector)  (AI Agent)  (credentials)    │
│                                                            │
│        ↑ 只允許邊界內部呼叫 ↑                                 │
└────────────────────────────────────────────────────────────┘
          外部呼叫 → Access Level 判斷 → 允許/拒絕

實務上會定義三個東西,對應三個 Terraform 資源:


1. Access Policy(整個組織只需要一個)

# 組織層級的總管理政策,是後面兩個東西的「容器」 google_access_context_manager_access_policy


2. Access Level(從外面進來的通行證條件)

`# 定義:哪些 IP 或 SA 可以從邊界外存取
google_access_context_manager_access_level

條件例如:

  • ip_subnetworks = ["你的開發機 IP/32"]
  • members = ["serviceAccount:bff-sa@..."]`

3. Service Perimeter(邊界本體,最核心)

`google_access_context_manager_service_perimeter

裡面要指定三件事:
├── resources → 哪個 GCP Project 在邊界內
├── restricted_services → 哪些 API 被保護
│ storage.googleapis.com
│ aiplatform.googleapis.com
│ sqladmin.googleapis.com
│ secretmanager.googleapis.com
└── access_levels → 引用上面定義的通行證`

不過當前我只有project層級權限 所以是無法設定組織層級的policy的


上一篇
Day23 Rate limit, Audit log
系列文
和AI學習gcp - 建立對話代理24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言