Điều kiện tiên quyết
- Tài khoản Heroku thuộc các app, team và pipeline bạn muốn điều tra.
- Tùy chọn: Heroku CLI, đăng nhập bằng tài khoản đó với
heroku login. Bạn cũng có thể dùng Heroku Dashboard. - Vai trò Admin trong workspace CloudThinker, cần để thêm và sửa kết nối. Xem Vai trò.
Thiết lập
1
Tạo API token
Đăng nhập bằng tài khoản mà CloudThinker sẽ dùng, rồi chọn một cách:
-
CLI: chạy lệnh sau.
2592000giây là 30 ngày. Không có--expires-in, token không bao giờ hết hạn. -
Dashboard: vào Account settings → Applications → Authorizations và nhấn Create authorization. Nhập
cloudthinkerlàm mô tả, đặt thời hạn và tạo.
Token: của kết quả. Token bắt đầu bằng HRKU-. Giữ scope global; xem Quyền yêu cầu để biết lý do.Để thu hồi token sau này, chạy heroku authorizations để tìm id, rồi heroku authorizations:revoke <id>.2
Thêm kết nối trong CloudThinker
Trong thanh bên, nhấn More → Workspace settings → Connections. Ở tab Builtin Connections, tìm Heroku, dán token vào API token và nhấn Connect.Trạng thái thành công: thẻ Heroku hiển thị Connected.
3
Chạy prompt xác minh
Chạy prompt xác minh để xác nhận token đọc được tài khoản của bạn.Trạng thái thành công: CloudThinker trả về các app cùng dyno formation.
Chi tiết kết nối
Quyền yêu cầu
Token Heroku không thể giới hạn trong một số app. Token tiếp cận được mọi thứ mà người dùng sở hữu token tiếp cận được, nên quyền tối thiểu phụ thuộc vào tài khoản bạn dùng để tạo token.- Dùng scope
global. Heroku CLI mà agent dùng sẽ xác định tài khoản của chính token trước khi liệt kê app hoặc pipeline. Scopeidentitycủa Heroku là chỉ đọc nhưng chỉ bao phủ thông tin tài khoản, còn các scoperead,write,read-protectedvàwrite-protectedloại trừ thông tin tài khoản. Không có scope hẹp hơn nào bao phủ cả hai, nên token với một trong các scope đó sẽ thất bại khi liệt kê app và pipeline. - Dùng tài khoản riêng. Chỉ thêm tài khoản vào các team và app mà CloudThinker cần.
- Nếu bạn đăng nhập bằng SSO, hãy tạo token từ một người dùng riêng không dùng SSO cho việc tích hợp.
Khả năng của agent
Agent không bao giờ đọc config var, giá trị môi trường hay thông tin xác thực cơ sở dữ liệu. Để truy vấn cơ sở dữ liệu Heroku Postgres, hãy thêm một kết nối PostgreSQL riêng.
Xác minh kết nối
Ví dụ prompt
Khắc phục sự cố
403 Forbidden trên một app hoặc team
403 Forbidden trên một app hoặc team
Tài khoản của token không phải thành viên của app hoặc team đó. Thêm tài khoản trong Heroku, rồi hỏi lại.
404 Couldn't find that user
404 Couldn't find that user
Token không đọc được chính tài khoản sở hữu token, đây là dấu hiệu của scope quá hẹp. Add-on và team vẫn liệt kê được, nhưng app và pipeline thất bại. Tạo authorization mới với scope mặc định
global và thay vào kết nối. Xem Xoay vòng thông tin xác thực.404 cho một app, add-on hoặc pipeline được nêu tên
404 cho một app, add-on hoặc pipeline được nêu tên
Tên sai, hoặc thuộc về một tài khoản mà token không thấy được. Yêu cầu CloudThinker liệt kê app hoặc pipeline, rồi dùng tên từ danh sách đó.
429 Too Many Requests
429 Too Many Requests
Heroku đã giới hạn tốc độ tài khoản. Chờ vài phút, rồi hỏi về từng app một để mỗi lượt chạy thực hiện ít lệnh gọi hơn.
Không có private space nào được liệt kê
Không có private space nào được liệt kê
Private space là tính năng của Heroku Enterprise. Nếu tài khoản không có, danh sách trống là câu trả lời đúng.
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.
- Heroku không có token chỉ đọc: lời khuyên về chỉ đọc ở trên không áp dụng tại đây. Kết nối cần token
global, vốn luôn có toàn quyền ghi trên Heroku, và scope hẹp hơn sẽ làm kết nối hỏng. Bản thân CloudThinker chỉ đọc, nên hãy giảm rủi ro bằng tài khoản riêng ít quyền và thời hạn ngắn. - Lên kế hoạch xoay vòng: truyền
--expires-inkhi tạo token. Khi không còn cần, tìm id bằngheroku authorizationsvà chạyheroku authorizations:revoke <id>. - Coi log là dữ liệu nhạy cảm: app có thể in secret vào log của chính nó. CloudThinker tránh trích dẫn các dòng trông giống token hoặc mật khẩu, nhưng đừng chỉ dựa vào điều đó.
Liên quan
Kết nối PostgreSQL
Truy vấn cơ sở dữ liệu Heroku Postgres bằng thông tin xác thực riêng
Tổng quan kết nối
Xem mọi nền tảng bạn có thể kết nối và cách xoay vòng thông tin xác thực