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.
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.
Trước tiên, hãy cập nhật kho lưu trữ.
Cài đặt lệnh aws-cli bằng lệnh sau trên Ubuntuserver.
Lấy phiên bản lệnh aws-cli.
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.
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.
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
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.
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ó.
Hãy tạo một tệp mới trên máy cục bộ của chúng ta
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
Chúng ta thậm chí có thể liệt kê nội dung của thùng S3
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
Lần này chúng ta sẽ sử dụng sync.
Bây giờ chúng ta lại tạo một tệp mới
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.
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.
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.
Chúng ta có thể xóa một tệp cụ thể khỏi Thùng S3 bằng lệnh phụ "rm".
Kiểm tra xem tệp đã bị xóa khỏi thùng hay chưa
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
Kiểm tra xem các đối tượng đã bị xóa khỏi bucket hay chưa
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.
Xóa Bucket cần thiết bằng lệnh phụ "rb".
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.
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
- Tài khoản AWS (Tạo nếu bạn chưa có).
- Hiểu biết cơ bản về Bucket S3 (Nhấp vào đây để tìm hiểu thêm về Bucket S3).
- 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).
- 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ì?
- Đăng nhập vào Tài khoản AWS.
- Cài đặt aws-cli.
- Gắn IAM Role vào phiên bản EC2.
- Tạo Bucket bằng aws-cli.
- 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
Mã:
sudo apt install awscli
Mã:
aws --version
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
Mã:
aws s3 mb s3://rahul-new-bucket-dec-2020
Mã:
aws s3 ls
Mã:
touch file-for-s3
Mã:
aws s3 cp file-for-s3 s3://rahul-new-bucket-dec-2020
Mã:
aws s3 ls s3://rahul-new-bucket-dec-2020
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
Mã:
aws s3 sync . s3://rahul-new-bucket-dec-2020
Mã:
touch file-after-sync
Mã:
aws s3 sync . s3://rahul-new-bucket-dec-2020
Mã:
aws s3 cp . s3://rahul-new-bucket-dec-2020 --recursive
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
Mã:
aws s3 rm s3://rahul-new-bucket-dec-2020/new-file
Mã:
aws s3 ls s3://rahul-new-bucket-dec-2020
Mã:
aws s3 rm s3://rahul-new-bucket-dec-2020 --recursive
Mã:
aws s3 ls s3://rahul-new-bucket-dec-2020
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
Mã:
aws s3 rb s3://rahul-new-bucket-dec-2020
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.