October 22, 2021

Hướng dẫn sử dụng service account của Google Cloud Platform trong ứng dụng.

Như các bạn biết Google cung cấp cho chúng ta 4 loại account để quản lý, sử dụng các nguồn tài nguyên của GCP:

  • Google account (abc@gmail.com)
  • G Suite account (abc@companyname.com)
  • Group account (abc@googlegroups.com)
  • Service account (abc@cloud-service.gserviceaccount.com)

Trong bài viết này mình sẽ hướng dẫn các bạn tạo service account, sử dụng chúng trong ứng dụng demo để thao tác với Cloud Storage (một sản phẩm dùng để lưu trữ của GCP). Để xây dựng một ứng dụng demo này các bạn cần chuẩn bị trước những bước dưới :

  • Tạo tài khoản GCP, các bạn tham khảo đây.
  • Tạo 3 bucket trong Cloud Storage có tên là bucket-khanh-1, bucket-khanh-2, bucket-khanh-3. Các bạn tham khảo ở đây
  • Cài Google Cloud SDK và Python, các bạn tham khảo ở đây.

Kết quả trên GCP console phần Storage có 3 bucket như bên dưới. Demo của chúng ta sẽ lấy ra tên 3 bucket đó.

Trước tiên ta tạo service account: Trên màn hình GCP console ở menu bên trái, click IAM & admin, click service accounts, click tiếp CREATE SERVICE ACCOUNT như hình dưới.

Ở màn hình tiếp theo chúng ta sẽ điền tên service account là: bucket rồi click Create.

Màn hình tiếp theo sẽ phần quyền cho service account này, chúng tao chọn Project Owner.

Màn hình tiếp theo sẽ click vào CREATE KEY, chọn key type là JSON rồi click CREATE. (tham khảo hình dưới)

Một file json được download xuống máy của chúng ta. Màn hình tiếp theo các bạn chỉ cần click DONE. Vậy chúng ta đã thao tác xong trên GCP console. Bây giờ chúng ta chỉ thao tác trên máy PC mà thôi. Các bạn hãy copy file json đó tới folder dự định đặt source code. Mở terminal lên, truy cập vào folder source code, các bạn kiểm tra bằng lện ls -l sẽ có kết quả như hình dưới (trong folder chứa file json)

Ở màn hình terminal các bạn chạy lệnh sau: export GOOGLE_APPLICATION_CREDENTIALS=”file-key.json” trong đó file-key.json chính là file json vừa download từ GCP console xuống PC. Tiếp theo bạn tạo một file 1.py với nội dung code như bên dưới.

def explicit():
    from google.cloud import storage

    # Trong đó file-key.json là file vừa download từ GCP console xuống PC
    storage_client = storage.Client.from_service_account_json('file-key.json')

    # Make an authenticated API request
    buckets = list(storage_client.list_buckets())
    print(buckets)
explicit()

Chạy lệnh python 1.py để kiểm tra xem ứng dụng demo này có lấy được tên 3 bucket đang tồn tại trên GCP Storage không nhé.

Khi thực hành có chỗ nào chưa hiểu, cần support, các bạn hãy liên hệ với các chuyên gia – Cloud Ace Việt Nam – để được hỗ trợ tốt hơn.