Tạo Amazon S3 bucket sử dụng AWS CDK

Tram Ho

s3-cdk

Hướng dẫn này sẽ giải thích những gì cần thiết để tạo một Amazon S3 bucket sử dụng AWS CDK Python.
Mã nguồn được cung cấp tại đây đi kèm với tất cả các bước cần thiết để chạy và triển khai mã AWS CDK trên AWS Cloud.

Đầu tiên, bạn cần [cài đặt AWS CDK] và IAM profile cho để có thể triển khai hệ thống bằng AWS CLI.
Sau khi học cách tổng hợp code từ AWS CDK để tạo ra Amazon S3 bucket construct, bạn có thể triển khai trên AWS Cloud và dọn dẹp tài nguyên sử dụng câu lệnh AWS CDK destroy.

Dưới đây là các bước cụ thể để cài đặt, triển khai một Amazon S3 bucket sử dụng AWS CDK:

Trước khi xây dựng Amazon S3 bucket construct, bạn cần hoàn thành các bước sau để có thể chạy AWS CDK với Python

  1. Cài đặt AWS CDK và Python
  2. Cài đặt AWS CLI và AWS profile
  3. Tạo một project AWS CDK với Python

Nếu bạn đã hoàn thành các bước này, bạn có thể bắt đầu làm từ bước số 4

1. Cài đặt AWS CDK

Cài đặt AWS CDK bằng npm package manager bằng câu lệnh dưới đây

Bạn cũng có thể tham khảo bài viết hướng dẫn chi tiết cài đặt AWS CDK

2. Cài đặt AWS CLI và cài đặt AWS profile

AWS CLI là một công cụ dòng lệnh (command line tool) cho phép bạn tương tác với các dịch vụ của AWS thông qua terminal của bạn.
Tuỳ thuộc vào hệ điều hành mà bạn đang sử dụng, cách cài đặt có thể sẽ khác

Để có thể truy cập vào AWS account của bạn từ AWS CLI, bạn cần thiết lập AWS Profile. Có 2 cách để bạn có thể làm điều đó:

  1. Access và secret key từ IAM User
  2. AWS Single Sign-on (SSO) user

Trong bài viết này, để có thể nhanh chóng thiết lập AWS Profile, chúng ta sẽ chọn cách số 1.

Đi tới IAM Users

  • Chọn IAM user, click Security credentials và tạo một credential mới

Chọn IAM user, click Security credentials và tạo một credential mới

  • Lưu lại access key và secret key (vì đây là lần duy nhất cũng là lần cuối bạn thấy nó)
  • Cài đặt AWS profile cho AWS CLI

  • Thông tin vể credential của bạn sẽ được lưu tại ~/.aws/credentials dưới profile tên [default], bạn có thể xác nhận bằng câu lệnh sau

3. Tạo một AWS CDK Python project

Sau khi cài đặt profile và các packages, bạn bắt đầu tạo project AWS CDK python để xây dựng Amazon S3 bucket construct.

  • Bạn có thể tạo một project AWS CDK python bằng cách chạy câu lệnh sau tại một directory trống

  • Chạy câu lệnh sau để tạo môi trường ảo và cài đặt các package cần thiết cho python

4. Tạo một Amazon S3 Bucket construct với AWS CDK

Sau khi init project, các các file sẽ được tạo ra dưới dạng sau

  • kms_key là AWS Key Management Service được tạo mới để mã hoá dữ liệu trên s3
  • object_ownership giúp bạn vô hiệu các access control list (ACLs)
    và người sở hữu bucket sẽ có tất cả các quyền với mọi object trong bucket này. ACLs sẽ không ảnh hưởng tới việc quản lý quyền nữa mà bucket sẽ sử dụng các policies để quản lý quyền truy cập.
    Điều này giúp đơn giản hoá cách bản quản lý và truy cập vào các objects được lưu trữ trong bucket của bạn.
  • block_public_access các object mới sẽ mặc định ở chế độ private và sẽ không cho phép truy cập công khai (public access)
  • encryption_key cho phép sử dụng một Customer managed keys để mã hoá các objects được lưu trên s3 bucket.
  • bucket.grant_read() cho phép người dùng có quền root của AWS account truy cập vào bucket được tạo

5. Tổng hợp lại Amazon S3 Bucket với AWS CDK

Amazon S3 bucket construct đã được tạo trong stack của AWS CDK app, bước tiếp theo sẽ là tổng hợp lại thành một CloudFormation template bằng cách chạy câu lệnh cho AWS CDK Synthesize

Sau khi chạy câu lệnh trên thì một CloudFormation dưới dạng YAML sẽ được in ra stdout. Ngoài ra, directory cdk.out cũng được tạo ra với các file templates dưới format JSON để có thể triển khai trên AWS Cloud thông qua CloudFormation.

6. Deploy Amazon S3 Bucket lên AWS Cloud sử dụng AWS CDK

Nếu đây là lần đầu tiên bạn chạy câu lệnh deploy, bạn cần phải bootstrap ứng dụng AWS CDK trước khi có thể deploy lên AWS[^1],
việc này giúp tạo các tài nguyên cần thiết để CDK toolkit có thể deploy ứng dụng của bạn, chúng bao gồm: S3 bucket, IAM roles, SSM Parameter,…

Để triển khai S3 bucket trên AWS, chúng ta chạy câu lệnh sau

Bạn có thể kiểm tra KMS key và S3 vừa được tạo trên AWS console

Bạn có thể kiểm tra KMS key và S3 vừa được tạo trên AWS console

7. Dọn dẹp tài nguyên

Để dọn dẹp tài nguyên đã được tạo, sử dụng destroy command

Tổng kết

Chúng ta đã tạo thành công một Amazon S3 Bucket sử dụng AWS CDK cùng Python với một số thuộc tính giúp tăng tính bảo mật bucket đó.
Các bạn có thể tham khảo những bài viết, hướng dẫn về AWS CDK tại series này

Bài viết gốc trên VNTechies Dev Blog

https://dev.vntechies.com/blog/aws/cdk/tao-s3-bucket-voi-aws-cdk

References

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo