Các phương pháp hay nhất về bảo mật API

Bắt buộc phải có khóa API cho các ứng dụng và dự án sử dụng API và API Nền tảng Google Maps. Để bảo mật tối đa và giảm thiểu công sức, hãy bảo mật khoá API khi bạn tạo.

Mặc dù bạn có thể bảo mật các khoá API sau khi được tạo và sử dụng, nhưng có thể có các giới hạn khác nhau tuỳ theo cách sử dụng khoá. Việc cập nhật hoặc thay thế khoá trong ứng dụng dành cho thiết bị di động (Android và iOS) là phức tạp nhất vì không thể thay thế tất cả các khoá cho đến khi khách hàng cập nhật ứng dụng. Việc cập nhật hoặc thay thế khoá trong các ứng dụng JavaScript hoặc Dịch vụ web khá đơn giản hơn. Tuy nhiên, việc cập nhật hoặc thay thế các khoá này vẫn có thể đòi hỏi phải lập kế hoạch cẩn thận và phải thực hiện nhanh chóng.

Các biện pháp bảo mật áp dụng cho từng sản phẩm trên Nền tảng Google Maps, chẳng hạn như API JavaScript cho Maps, được liệt kê trong mục Thông tin chi tiết.

Hạn chế khoá API

Khi bạn tạo khoá API lần đầu, hãy hạn chế các khoá đó bằng một quy định hạn chế của ứng dụng và một hoặc nhiều hạn chế API.

  • Hạn chế ứng dụng giới hạn việc sử dụng khoá API ở một nền tảng cụ thể (Android hoặc iOS) hoặc các trang web cụ thể (địa chỉ IP và trang web công khai). Chỉ có thể thêm một loại hạn chế ứng dụng vào bất kỳ khoá API riêng lẻ nào.

  • Hạn chế API giới hạn việc sử dụng khoá API ở một hoặc nhiều SDK hoặc API Nền tảng Google Maps. Chỉ yêu cầu sử dụng API hoặc SDK liên kết với khoá API mới được xử lý. Đối với bất kỳ khoá API nào, bạn có thể chỉ định bao nhiêu quy tắc hạn chế API tùy ý.

Nếu bạn không bảo mật khoá API khi tạo khoá, hãy tạo các khoá API bổ sung và hạn chế các khoá đó, sau đó cập nhật tất cả ứng dụng bằng khoá API mới. Mặc dù khoá cho mỗi ứng dụng sẽ lý tưởng cho mục đích bảo mật, nhưng bạn có thể sử dụng các khoá bị hạn chế trên nhiều ứng dụng, miễn là các loại hạn chế của ứng dụng đó sẽ không gây ra vấn đề không tương thích với các ứng dụng dùng chung khoá.

Nếu bạn đang hạn chế các khoá API sau khi tạo, hãy kiểm tra việc sử dụng khoá API để đảm bảo rằng các hạn chế đó sẽ không làm hỏng bất kỳ ứng dụng hiện có nào.

  1. Truy cập vào trang Chỉ số của Google Cloud Console.

  2. Chọn Hiển thị bộ lọc.

  3. Trong mục Nhóm theo, hãy chọn Thông tin đăng nhập. Bạn sẽ thấy khoá API nào được dùng với các dịch vụ nào của Google.

  4. Nhấp vào Thông tin xác thực.

  5. Bỏ chọn tất cả thông tin đăng nhập.

  6. Đối với mỗi khóa được hiển thị, hãy chọn khóa đó và nhấp vào Ok.

  7. Trong mục Nhóm theo, hãy chọn API. Bạn sẽ thấy các quy định hạn chế API để áp dụng cho khoá này.

    Việc chọn phương thức API từ Nhóm theo có thể cung cấp cho bạn gợi ý về loại hạn chế ứng dụng nào phù hợp nhất với khoá.

Đặt hạn chế ứng dụng cho khoá API

  1. Chuyển đến trang Thông tin xác thực.
  2. Chọn khoá API mà bạn muốn đặt hạn chế. Trang thuộc tính khoá API sẽ xuất hiện.

  3. Trong mục Key restrictions (Hạn chế cho khoá), chọn Application restrictions (Hạn chế cho ứng dụng).

    Chọn một trong các loại hạn chế và cung cấp thông tin được yêu cầu sau danh sách hạn chế.

    Loại quy định hạn chế Nội dung mô tả
    Tham chiếu HTTP Chỉ định một hoặc nhiều trang web giới thiệu. Các ký tự đại diện được chấp nhận để cho phép mọi miền con (ví dụ: *.google.com chấp nhận mọi trang web kết thúc bằng .google.com). Chỉ định https://http:// nguyên trạng. Bạn phải dùng một phương thức biểu thị đặc biệt cho các loại giao thức URL tham chiếu khác. Ví dụ: định dạng file:///path/to/__file_url__//path/to/*. Sau khi bật tính năng giới thiệu, hãy đảm bảo rằng bạn đã theo dõi mức sử dụng của mình sao cho phù hợp với kỳ vọng của bạn. Các giao thức tham chiếu sau đây được hỗ trợ: about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://.
    địa chỉ IP Hãy chỉ định một địa chỉ IPv4 hoặc IPv6 hoặc một mạng con bằng cách dùng ký hiệu CIDR. Vì yêu cầu dịch vụ web của dịch vụ web kiểm tra và so sánh địa chỉ IP bên ngoài với hạn chế về khoá API, hãy dùng địa chỉ IP công khai của máy chủ.
    Ứng dụng Android Thêm tệp tham chiếu chứng chỉ ký SHA-1 và tên gói Android của bạn từ tệp AndroidManifest.xml.
    Ứng dụng iOS Bên dưới các loại, hãy chọn giá trị nhận dạng gói iOS phù hợp trong danh sách.
  4. Chọn Lưu.

Đặt quy tắc hạn chế API cho khoá API

  1. Truy cập vào trang thông tin xác thực.

  2. Chọn khoá API mà bạn muốn hạn chế. Trang Hạn chế và đổi tên khóa API xuất hiện.

  3. Trong phần Giới hạn của API:

    • Nhấp vào Hạn chế khoá.

    • Nhấp vào trình đơn thả xuống Chọn API rồi chọn API hoặc SDK mà bạn muốn ứng dụng của mình truy cập bằng cách sử dụng khóa API.

      (Nếu API hoặc SDK không có trong danh sách, bạn cần bật API hoặc SDK đó.)

  4. Nhấp vào Lưu.

    Quy định hạn chế này sẽ trở thành một phần của định nghĩa khoá API sau bước này. Nếu bạn không cung cấp các thông tin chi tiết phù hợp hoặc không nhấp vào “Lưu”, thì khoá API sẽ không bị hạn chế. (Để biết thêm thông tin, hãy xem hướng dẫn Nhận khoá API cho API hoặc SDK cụ thể mà bạn quan tâm.)

Xoá khoá API không dùng đến

Trước khi xoá khoá API, hãy đảm bảo rằng khoá đó không được dùng trong phiên bản chính thức. Nếu không có lưu lượng truy cập thành công, bạn có thể xoá khoá này.

Cách xoá khoá API:

  1. Chuyển đến trang Thông tin xác thực.

  2. Chọn khoá API mà bạn muốn xoá.

  3. Chọn nút Xoá ở gần đầu trang.

  4. Khi hộp thoại Xóa thông tin xác thực xuất hiện, hãy chọn Xóa.

    Xóa khóa API sẽ mất vài phút để có hiệu lực. Sau khi truyền, lưu lượng truy cập sử dụng khoá API đã xoá sẽ bị từ chối.

Các cách khác để bảo mật API của bạn

Hãy cẩn thận khi tạo lại khóa API

Việc tạo lại khoá API sẽ tạo khoá mới có tất cả hạn chế của khoá cũ. Thao tác này cũng bắt đầu một bộ tính giờ 24 giờ để huỷ kích hoạt khoá API cũ.

Trong khoảng thời gian này, cả khoá cũ và khoá mới đều được chấp nhận. Điều này giúp bạn có thể di chuyển các ứng dụng của mình để sử dụng khoá mới. Tuy nhiên, mọi ứng dụng vẫn sử dụng khoá API cũ sẽ ngừng hoạt động sau khoảng thời gian này.

  1. Truy cập vào trang khoá API.

  2. Chọn Trở về phím trước.

  3. Trong hộp thoại Hoàn nguyên, hãy nhấp vào Hoàn nguyên phím.

Sau khi khôi phục, phiên bản cũ "new" của khoá sẽ trở thành phiên bản trước đó và đồng hồ hẹn giờ huỷ kích hoạt 24 giờ mới sẽ được thiết lập. Bạn có thể hủy bỏ hai giá trị khoá này cho đến khi tạo lại khoá.

Hoạt động tái tạo thứ hai này sẽ ghi đè giá trị khoá không hoạt động cũ.

Theo dõi việc sử dụng API

Cách kiểm tra việc sử dụng khoá API:

  1. Truy cập vào trang Chỉ số.

  2. Nhấp vào Hiển thị bộ lọc.

  3. Trong mục Nhóm theo, hãy chọn Phương thức API.

  4. Trong Mã phản hồi, hãy chọn 2xx để xem mọi yêu cầu thành công đối với khoá này.

Nếu bạn phát hiện hành vi sử dụng trái phép, hãy làm như sau:

  1. Hạn chế khoá của bạn.

    Nếu sử dụng cùng một khoá trong nhiều ứng dụng, hãy chuyển sang nhiều khoá API, tốt nhất là bạn nên sử dụng các khoá API riêng cho từng ứng dụng.

  2. Nếu việc sử dụng trái phép vẫn tiếp diễn, hãy tạo lại hoặc xoá các khoá bị ảnh hưởng.

  3. Liên hệ với bộ phận hỗ trợ.

Sử dụng các khóa API riêng biệt cho từng ứng dụng

Việc này giới hạn phạm vi của mỗi phím. Nếu khoá API bị xâm phạm, bạn có thể xoá hoặc tạo lại khoá bị ảnh hưởng mà không cần cập nhật các khoá API khác.

Di chuyển sang nhiều khoá API

Để chuyển từ sử dụng một khoá API cho nhiều ứng dụng sang một khoá API duy nhất cho từng ứng dụng, hãy làm như sau:

  1. Xác định những ứng dụng sẽ cần khoá mới.

    • Ứng dụng web là cách dễ cập nhật nhất vì bạn kiểm soát tất cả mã. Lập kế hoạch cập nhật tất cả khoá của ứng dụng dựa trên nền tảng web\39;.
    • Ứng dụng dành cho thiết bị di động khó hơn nhiều vì khách hàng của bạn phải cập nhật ứng dụng thì mới có thể sử dụng khoá mới.
  2. Tạo và hạn chế các khoá mới.

    • Thêm cả một hạn chế về ứng dụng và ít nhất một hạn chế API.
  3. Thêm khoá mới vào các ứng dụng.

    • Đối với các ứng dụng dành cho thiết bị di động, quá trình này có thể mất nhiều tháng để tất cả người dùng của bạn cập nhật lên ứng dụng mới nhất bằng khoá API mới.

Các phương thức bảo vệ ứng dụng API dịch vụ web Maps hoặc API web tĩnh

  • Lưu trữ khoá API và khoá bí mật bên ngoài mã nguồn của ứng dụng. Nếu bạn đặt khoá API hoặc bất kỳ thông tin riêng tư nào khác trong các biến môi trường hoặc bao gồm các tệp được lưu trữ riêng biệt rồi chia sẻ mã của bạn, các khoá hoặc mã thông báo bí mật của API sẽ không được đưa vào các tệp được chia sẻ.

  • Lưu trữ khoá API hoặc bí mật ký trong các tệp bên ngoài cây nguồn của ứng dụng. Nếu bạn lưu trữ khoá API hoặc bất kỳ thông tin riêng tư nào khác trong các tệp, hãy giữ các tệp bên ngoài cây nguồn của ứng dụng để tránh bị khoá khỏi hệ thống kiểm soát mã nguồn. Điều này đặc biệt quan trọng nếu bạn sử dụng một hệ thống quản lý mã nguồn công khai, chẳng hạn như GitHub.

API dịch vụ web hoặc phương pháp bảo vệ ứng dụng dành cho thiết bị di động API web tĩnh

Thông tin khác

Các bảng này liệt kê các quy tắc hạn chế thích hợp cho khoá API và các phương pháp hay nhất về bảo mật API cho từng API, SDK hoặc dịch vụ Nền tảng Google Maps.

Trang web có API Maps, Nhúng hoặc API tĩnh

API/SDK/Dịch vụ Hạn chế ứng dụng (1) Hạn chế API (1) Các phương pháp hay nhất
API JavaScript cho Maps (2) Hạn chế tham chiếu HTTP API JavaScript cho Maps
Dịch vụ chỉ đường, API Maps JavaScript Hạn chế tham chiếu HTTP API chỉ đường, API Maps JavaScript
Dịch vụ ma trận khoảng cách, API Maps JavaScript Hạn chế tham chiếu HTTP API ma trận khoảng cách, API Maps JavaScript
Dịch vụ dữ liệu độ cao, API Maps JavaScript Hạn chế tham chiếu HTTP API Độ cao, API Maps JavaScript
Dịch vụ mã hóa địa lý, API Maps JavaScript Hạn chế tham chiếu HTTP API mã hóa địa lý, Maps JavaScript API
Thư viện địa điểm, API JavaScript cho Maps Hạn chế tham chiếu HTTP API Địa điểm, API JavaScript cho Maps
API nhúng của Maps Hạn chế tham chiếu HTTP API nhúng cho Maps
API tĩnh của Maps Hạn chế tham chiếu HTTP API tĩnh cho Maps
API tĩnh của Chế độ xem phố Hạn chế tham chiếu HTTP Street View Static API

Ứng dụng và máy chủ sử dụng dịch vụ web

API/SDK/Dịch vụ Hạn chế ứng dụng (1) Hạn chế API (1) Các phương pháp hay nhất
API Đường đi Hạn chế địa chỉ IP(4) Directions API
API Ma trận khoảng cách Hạn chế địa chỉ IP(4) Distance Matrix API
API Độ cao Hạn chế địa chỉ IP(4) Elevation API
API mã hóa địa lý Hạn chế địa chỉ IP(4) Geocoding API
API vị trí địa lý Hạn chế địa chỉ IP(4) Geolocation API
API Địa điểm (5) Hạn chế địa chỉ IP(4) Places API
API đường Hạn chế địa chỉ IP(4) Roads API
API múi giờ Hạn chế địa chỉ IP(4) Time Zone API

Ứng dụng Android

API/SDK/Dịch vụ Hạn chế ứng dụng (1) Hạn chế API (1) Các phương pháp hay nhất
SDK Maps dành cho Android Hạn chế trên Android SDK Maps dành cho Android
SDK Địa điểm dành cho Android Hạn chế trên Android Places API

Ứng dụng iOS

API/SDK/Dịch vụ Hạn chế ứng dụng (1) Hạn chế API (1) Các phương pháp hay nhất
SDK Maps dành cho iOS Hạn chế trên iOS SDK Maps dành cho iOS
SDK Địa điểm dành cho iOS Hạn chế trên iOS Places API

1 Bạn có thể sử dụng khoá API không hạn chế với API hoặc SDK Nền tảng Google Maps bất kỳ. Tuy nhiên, bạn nên hạn chế các khoá API, đặc biệt là trong các trường hợp sau:

  • Môi trường thử nghiệm sẽ xuất hiện công khai hoặc xuất hiện công khai.

  • Ứng dụng sử dụng khoá API đã sẵn sàng để sử dụng trong môi trường phát hành chính thức.

2 Đối với ứng dụng dành cho thiết bị di động, hãy cân nhắc sử dụng SDK Maps dành cho AndroidSDK Maps dành cho iOS.

3 Đối với API tĩnh của Maps và API tĩnh của Chế độ xem phố, ngoài khoá API, bạn cần cung cấp một chữ ký số để vượt quá định mức 25.000 lượt tải bản đồ hằng ngày.

Nếu bạn ký yêu cầu, hãy xem số lượng yêu cầu chưa ký mà bạn muốn cho phép mỗi ngày và điều chỉnh hạn mức yêu cầu chưa ký cho phù hợp.

4 Các quy định hạn chế về IP có thể không thiết thực trong một số trường hợp, chẳng hạn như trong ứng dụng dành cho thiết bị di động và môi trường đám mây dựa vào địa chỉ IP động. Khi sử dụng API Dịch vụ web Maps trong những trường hợp này, hãy bảo mật ứng dụng bằng máy chủ proxy hoặc làm rối mã nguồn.

5 Đối với ứng dụng dành cho thiết bị di động, hãy cân nhắc sử dụng SDK địa điểm cho AndroidSDK địa điểm cho iOS.