Quản lý hoạt động trên S3 Bucket bằng aws-cli từ phiên bản EC2

theanh

Administrator
Nhân viên
Chúng ta có thể tạo và quản lý thùng S3 bằng bảng điều khiển AWS. Đôi khi có thể có nhu cầu chúng ta muốn tạo và thực hiện các thao tác trên Thùng S3 từ dòng lệnh. Nếu bạn không biết về bucket S3 và muốn tìm hiểu về nó, hãy nhấp vào đây, bạn có thể tìm thấy bài viết về bucket S3 do tôi viết.

Trước khi chúng ta tiếp tục với bài viết này, tôi cho rằng bạn đã quen thuộc với bucket S3.

Trong bài viết này, chúng ta sẽ xem các bước và lệnh để tạo bucket S3 từ dòng lệnh và thực hiện các thao tác cơ bản trên đó như sao chép tệp, đồng bộ hóa tệp, v.v.

Điều kiện tiên quyết​

  1. Tài khoản AWS (Tạo nếu bạn chưa có).
  2. Hiểu biết cơ bản về Bucket S3 (Nhấp vào đây để tìm hiểu thêm về Bucket S3).
  3. Ubuntu 20.04 EC2 Instance (Nhấp vào đây để tìm hiểu về instance EC2 và các bước để tạo nó từ AWS Console. Bạn có thể chọn AMI của Ubuntu 20.04 thay vì 18.04).
  4. IAM Role có S3FullAccess Policy được đính kèm (Nhấp vào đây để tìm hiểu cách tạo IAM Role).

Chúng ta sẽ làm gì?​

  1. Đăng nhập vào Tài khoản AWS.
  2. Cài đặt aws-cli.
  3. Gắn IAM Role vào phiên bản EC2.
  4. Tạo Bucket bằng aws-cli.
  5. Thực hiện thao tác cơ bản trên S3 Bucket bằng aws-cli.

Đăng nhập vào AWS​

Trước khi tiến hành cài đặt lệnh aws-cli trên phiên bản EC2, trước tiên hãy đăng nhập vào tài khoản của chúng ta.

Nhấp vào đây để đến Trang đăng nhập AWS.

Khi nhấp vào liên kết trên, bạn sẽ thấy trang đăng nhập như sau.



Sau khi đăng nhập thành công vào trang web của mình, bạn sẽ thấy bảng điều khiển AWS chính như sau.


Cài đặt aws-cli​

Kết nối với AWS2Instance của bạn.

Trước tiên, hãy cập nhật kho lưu trữ.
Mã:
sudo apt-get update
Cài đặt lệnh aws-cli bằng lệnh sau trên Ubuntuserver.
Mã:
sudo apt install awscli
Lấy phiên bản lệnh aws-cli.
Mã:
aws --version
Cho đến thời điểm này, chúng ta chỉ có một EC2instance mà không có bất kỳ IAMRole nào được đính kèm vào.

Bây giờ, nếu chúng ta thử kiểm tra danh tính bằng lệnh sau, chúng ta sẽ được yêu cầu cấu hình thông tin xác thực để sử dụng để thực hiện bất kỳ thao tác nào.
Mã:
aws sts get-caller-identity

Gắn một Vai trò IAM vào phiên bản EC2.​

Truy cập bảng điều khiển AM trong tài khoản AWS của bạn và kiểm tra xem quy tắc có chính sách bắt buộc được đính kèm vào hay không.

Tại đây, bạn có thể thấy vai trò có chính sách AmazonS3FullAccess được đính kèm vào.



Bây giờ, hãy truy cập bảng điều khiển EC2 và chọn phiên bản mà bạn đang sử dụng để thực hiện các thao tác trên thùng S3.

Tại đây, hãy nhấp vào onActions --> Security --> Sửa đổi vai trò IAM để đính kèm một quy tắc vào phiên bản.



Bạn sẽ thấy màn hình nơi bạn có thể chọn một quy tắc để đính kèm từ danh sách thả xuống. Nhấp vào lưu để tiếp tục.




Thực hiện thao tác cơ bản trên S3 Bucket bằng aws-cli​

Quay lại thiết bị đầu cuối EC2 và thực hiện lệnh sau.
Mã:
aws sts get-caller-identity


Vì chúng ta đã đính kèm quy tắc bắt buộc vào phiên bản, khi thực hiện lệnh trên để kiểm tra danh tính của vai trò đang được sử dụng để thực hiện các thao tác từ thiết bị đầu cuối, chúng ta có thể thấy ID người dùng, Tài khoản và ARN của nó trong phản hồi. Điều này có nghĩa là chúng ta đã xác thực thành công phiên bản EC2 của mình. Bây giờ chúng ta đã sẵn sàng thực hiện các thao tác từ thiết bị đầu cuối bằng cách sử dụng vai trò được gắn vào phiên bản EC2.



Để kiểm tra các Bucket S3 hiện có trong Tài khoản AWS, hãy thực hiện lệnh sau
Mã:
aws s3 ls
Hãy tạo một bucket mới có tên là "rahul-new-bucket-dec-2020". Đảm bảo tên thùng phải là duy nhất toàn cục.
Mã:
aws s3 mb s3://rahul-new-bucket-dec-2020
Bây giờ, một lần nữa nếu chúng ta liệt kê các thùng, chúng ta có thể thấy một thùng mới đã được tạo thành công và có sẵn trong danh sách các thùng hiện có.
Mã:
aws s3 ls
Hãy tạo một tệp mới trên máy cục bộ của chúng ta
Mã:
touch file-for-s3
Chúng ta có thể sao chép các tệp từ máy cục bộ của mình vào thùng S3
Mã:
aws s3 cp file-for-s3 s3://rahul-new-bucket-dec-2020
Chúng ta thậm chí có thể liệt kê nội dung của thùng S3
Mã:
aws s3 ls s3://rahul-new-bucket-dec-2020
Cách chúng ta sao chép các tệp từ máy cục bộ vào thùng S3, chúng ta cũng có thể đồng bộ hóa thư mục cục bộ với thùng.

Sync không sao chép các tệp và thư mục hiện có từ máy cục bộ vào thùng. Nó chỉ sao chép các tệp mới được tạo hoặc sửa đổi

Hãy tạo một tệp mới gọi là máy cục bộ của chúng ta
Mã:
touch new-file
Lần này chúng ta sẽ sử dụng sync.
Mã:
aws s3 sync . s3://rahul-new-bucket-dec-2020
Bây giờ chúng ta lại tạo một tệp mới
Mã:
touch file-after-sync
Bây giờ bạn có thể thấy rằng nếu chúng ta đồng bộ lại, chỉ những tệp mới tạo mới được sao chép. Các tệp đã được sao chép vào thùng sẽ không được sao chép.
Mã:
aws s3 sync . s3://rahul-new-bucket-dec-2020
Nhưng đây không phải là trường hợp của tùy chọn sao chép. Nó sao chép tất cả các tệp bất kể tệp nào có sẵn trên S3.
Mã:
aws s3 cp . s3://rahul-new-bucket-dec-2020 --recursive
Tham khảo ảnh chụp màn hình sau để hiểu các lệnh chúng ta vừa thử.



Hãy kiểm tra những tệp nào có sẵn trong thùng S3 của chúng ta.
Mã:
aws s3 ls s3://rahul-new-bucket-dec-2020
Chúng ta có thể xóa một tệp cụ thể khỏi Thùng S3 bằng lệnh phụ "rm".
Mã:
aws s3 rm s3://rahul-new-bucket-dec-2020/new-file
Kiểm tra xem tệp đã bị xóa khỏi thùng hay chưa
Mã:
aws s3 ls s3://rahul-new-bucket-dec-2020
Chúng ta thậm chí có thể xóa tất cả các đối tượng khỏi thùng bằng tùy chọn --recursive
Mã:
aws s3 rm s3://rahul-new-bucket-dec-2020 --recursive
Kiểm tra xem các đối tượng đã bị xóa khỏi bucket hay chưa
Mã:
aws s3 ls s3://rahul-new-bucket-dec-2020
Tham khảo ảnh chụp màn hình sau để hiểu các thao tác chúng ta vừa thực hiện.



Cách chúng ta có thể xóa các đối tượng khỏi bucket là chúng ta cũng có thể xóa chính bucket đó

Đầu tiên, hãy liệt kê tất cả các bucket có trong tài khoản.
Mã:
aws s3 ls
Xóa Bucket cần thiết bằng lệnh phụ "rb".
Mã:
aws s3 rb s3://rahul-new-bucket-dec-2020
Chúng ta có thể thấy rằng bucket đã chỉ định đã bị xóa khỏi số lượng hiện tại

aws s3 ls



Chúng ta có thể xóa quy tắc đã đính kèm vào phiên bản để phiên bản không thể tự ủy quyền cho chính nó nữa.

Để xóa attachedRole, hãy đến phiên bản EC2, nhấp vào Actions --> Security --> Modify IAM role và xóa quy tắc đã đính kèm và lưu cấu hình.



Xác nhận thao tác của bạn.



Lần này, nếu chúng ta thực thi lệnh "awss3 ls", chúng ta sẽ không thể liệt kê các thùng từ tài khoản. Chúng ta sẽ không thể thực hiện bất kỳ thao tác nào từ EC2Instance.


Kết luận​

Cách chúng ta quản lý thùng AWS S3 từ bảng điều khiển AWS, chúng ta cũng có thể quản lý nó từ CLI. Chúng ta đã thấy các bước để cài đặt tiện ích dòng lệnh aws-cli. Chúng tôi cũng đã thấy các bước để gắn và tách I amRole khỏi phiên bản EC2. Chúng tôi đã thực hiện một số thao tác cơ bản trên thùng S3 bằng tiện ích dòng lệnh aws-cli.
 
Back
Bên trên