Yêu cầu trước
- Quyền
ACCOUNTADMIN(hoặc tương đương) để tạo role, service user và token. - Một network policy để gắn vào user đó. Snowflake từ chối xác thực bằng token cho đến khi có network policy.
- Một warehouse mà role có thể dùng. Truy vấn metadata không cần compute, nên kiểm tra kết nối có thể thành công trong khi phân tích thật vẫn thất bại nếu thiếu warehouse.
Thiết lập
1
Tạo role chỉ đọc
Chạy với quyền
ACCOUNTADMIN. USAGE_VIEWER bao phủ metering và storage, OBJECT_VIEWER bao phủ danh mục đối tượng, và GOVERNANCE_VIEWER là thứ làm cho QUERY_HISTORY đọc được:2
Tạo service user
User kiểu
SERVICE không có mật khẩu, không MFA và không SSO, nên nó chỉ xác thực bằng token:3
Gắn network policy
Thu hẹp Bỏ qua bước này là lỗi thiết lập phổ biến nhất, và lỗi trả về (
ALLOWED_IP_LIST về dải IP egress của bạn cho mọi trường hợp ngoài tài khoản thử nghiệm:390403) không nhắc đến network policy.4
Tạo programmatic access token
DAYS_TO_EXPIRY là hạn cứng: đúng ngày đó kết nối bắt đầu lỗi 390318 và bạn phải tạo token mới.5
Thêm kết nối trong CloudThinker
Vào Connections → Snowflake và nhập:
- Account identifier:
MYORG-MYACCOUNT, tìm trong Snowsight → Account details. Không phải URL đầy đủ. - Programmatic access token: token từ bước trước. Không phải mật khẩu tài khoản.
- Role: tùy chọn; để trống để dùng role mặc định của user.
- Warehouse: tùy chọn; để trống để dùng warehouse mặc định của user.
Chi tiết kết nối
Quyền cần thiết
Chỉ đọc (mặc định)
GOVERNANCE_VIEWER rất dễ bỏ sót. Thiếu nó, câu trả lời về chi phí và lưu trữ vẫn chạy trong khi mọi câu trả lời về truy vấn chậm và lỗi đều thất bại trên QUERY_HISTORY.
Quyền ghi (chỉ khi bạn bật)
OPERATE trên đúng những warehouse mà agent được phép tác động, không bao giờ trên warehouse production dùng chung. Một warehouse riêng cho agent kèm resource monitor tạo trần cứng cho compute của nó mà không prompt nào nâng lên được.
Khả năng của agent
Sau khi kết nối, Tony có thể:Kiểm tra kết nối
Ví dụ prompt
Quyền ghi
Kết nối mặc định chỉ đọc, và quyền ghi là quyết định riêng của từng kết nối vì quyền truy cập đi theo credential. Một workspace có thể giữ đồng thời một token chỉ đọc và một token có quyền ghi.
Bật tại Connections → Snowflake → Tool permissions. Hai điều cần cân nhắc trước:
- Ghi ở đây nghĩa là đúng hai hành động, không phải SQL tùy ý. Nâng resource monitor, hạ
DATA_RETENTION_TIME_IN_DAYS, hay đổi kích thước warehouse vẫn được báo lại cho bạn dưới dạng câu lệnh để tự chạy trong Snowsight. - Grant mới là lớp kiểm soát mạnh hơn. Quyền công cụ quyết định CloudThinker có yêu cầu ghi hay không;
ROLE_RESTRICTIONcủa token và các grant của role quyết định Snowflake có cho phép ghi hay không.
Xử lý sự cố
Xác thực thất bại ngay lập tức (390403)
Xác thực thất bại ngay lập tức (390403)
User chưa có network policy. Snowflake từ chối xác thực bằng token cho đến khi có một cái được gắn:
ALTER USER SVC_CLOUDTHINKER SET NETWORK_POLICY = CT_POLICY;Hôm qua còn chạy, hôm nay lỗi (390318)
Hôm qua còn chạy, hôm nay lỗi (390318)
Token đã hết hạn hoặc bị thu hồi.
DAYS_TO_EXPIRY là hạn cứng. Tạo token mới và cập nhật kết nối.Đã Connected nhưng mọi truy vấn đều lỗi (090073)
Đã Connected nhưng mọi truy vấn đều lỗi (090073)
Một resource monitor đã vượt hạn mức, hoặc warehouse đang suspended và không resume được. Đây là vấn đề capacity của tài khoản, không phải quyền, nên không
GRANT nào sửa được. Account admin cần nâng hoặc reset resource monitor.Kết nối vẫn ở trạng thái Connected vì credential hợp lệ và bước kiểm tra không cần compute.No active warehouse selected (000606)
No active warehouse selected (000606)
Service user không có
DEFAULT_WAREHOUSE và cũng không cấu hình warehouse nào. Đặt Warehouse trên kết nối, hoặc gán mặc định cho user.Một mục trả về rỗng
Một mục trả về rỗng
Không phải lỗi.
ACCOUNT_USAGE trễ tới vài giờ và giữ một năm lịch sử, nên một khoảng thời gian hẹp trên tài khoản ít hoạt động sẽ không có dòng nào.Bảo mật
- Quyền tối thiểu — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
- Chỉ đọc theo mặc định — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
- Xoay vòng thông tin xác thực — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
- Thu hồi khi bàn giao — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.
- Service user riêng — user
TYPE = SERVICEkhông có mật khẩu, không MFA và không SSO, nên token là lối vào duy nhất và dấu vết kiểm toán vẫn dễ đọc. - Giới hạn và đặt hạn cho token —
ROLE_RESTRICTIONgiới hạn mọi thứ kết nối chạm tới được, vàDAYS_TO_EXPIRYbuộc bạn xoay vòng token thay vì quên mất.
Liên quan
Tony Agent
Agent tối ưu hóa tập trung vào cơ sở dữ liệu
Kết nối ClickHouse
Thiết lập tương tự cho cluster ClickHouse