Phần 1 trong 3
Trong năm 2011, Amazon đã công bố sự sẵn có của AWS Identity & Access Management (IAM) hỗ trợ cho CloudFront. IAM đã được đưa ra vào năm 2010 và bao gồm hỗ trợ S3. AWS Identity & Access Management (IAM) cho phép bạn có nhiều người dùng trong một tài khoản AWS. Nếu bạn đã sử dụng Amazon Web Services (AWS), bạn biết rằng cách duy nhất để quản lý nội dung trong AWS liên quan đến việc đưa ra tên người dùng và mật khẩu hoặc các khóa truy cập của bạn.
Đây là một mối quan tâm an ninh thực sự đối với hầu hết chúng ta. IAM loại bỏ sự cần thiết phải chia sẻ mật khẩu và các khóa truy cập.
Liên tục thay đổi mật khẩu AWS chính của chúng tôi hoặc tạo khóa mới chỉ là một giải pháp lộn xộn khi một nhân viên rời khỏi nhóm của chúng tôi. AWS Identity & Access Management (IAM) là một khởi đầu tốt cho phép các tài khoản người dùng cá nhân với các khóa riêng lẻ. Tuy nhiên, chúng tôi là một người dùng S3 / CloudFront nên chúng tôi đã xem CloudFront được thêm vào IAM mà cuối cùng đã xảy ra.
Tôi tìm thấy tài liệu về dịch vụ này để có một chút phân tán. Có một số sản phẩm của bên thứ ba cung cấp một loạt hỗ trợ cho Quản lý danh tính và truy cập (IAM). Nhưng các nhà phát triển thường tiết kiệm nên tôi đã tìm kiếm một giải pháp miễn phí để quản lý IAM với dịch vụ Amazon S3 của chúng tôi.
Bài viết này đi qua quá trình thiết lập Giao diện dòng lệnh hỗ trợ IAM và thiết lập một nhóm / người dùng có quyền truy cập S3. Bạn cần phải có một thiết lập tài khoản Amazon AWS S3 trước khi bạn bắt đầu cấu hình Identity & Access Management (IAM).
Bài viết của tôi, Sử dụng Amazon Simple Storage Service (S3), sẽ hướng dẫn bạn qua quá trình thiết lập tài khoản AWS S3.
Dưới đây là các bước liên quan đến việc thiết lập và triển khai người dùng trong IAM. Điều này được viết cho Windows nhưng bạn có thể tinh chỉnh để sử dụng trong Linux, UNIX và / hoặc Mac OSX.
- Cài đặt và cấu hình giao diện dòng lệnh (CLI)
- Tạo một nhóm
- Cấp quyền truy cập nhóm cho nhóm S3 và CloudFront
- Tạo người dùng và thêm vào nhóm
- Tạo hồ sơ đăng nhập và tạo khóa
- Kiểm tra quyền truy cập
Cài đặt và cấu hình giao diện dòng lệnh (CLI)
Bộ công cụ dòng lệnh IAM là một chương trình Java có sẵn trong các Công cụ phát triển AWS của Amazon. Công cụ này cho phép bạn thực thi các lệnh IAM API từ một tiện ích shell (DOS cho Windows).
- Bạn cần chạy Java 1.6 trở lên. Bạn có thể tải xuống phiên bản mới nhất từ Java.com. Để xem phiên bản nào được cài đặt trên hệ thống Windows của bạn, hãy mở Command Prompt và nhập vào java -version. Điều này giả định rằng java.exe nằm trong PATH của bạn.
- Tải xuống bộ công cụ IAM CLI và giải nén một nơi nào đó trên ổ đĩa cục bộ của bạn.
- Có 2 tệp trong thư mục gốc của bộ công cụ CLI mà bạn cần cập nhật.
- aws-credential.template: Tệp này chứa thông tin đăng nhập AWS của bạn. Thêm AWSAccessKeyId và AWSSecretKey của bạn, lưu và đóng tệp.
- client-config.template : Bạn chỉ cần cập nhật tệp này nếu bạn yêu cầu máy chủ proxy. Loại bỏ # dấu hiệu và cập nhật ClientProxyHost, ClientProxyPort, ClientProxyUsername và ClientProxyPassword. Lưu và đóng tập tin.
- Bước tiếp theo liên quan đến việc thêm Biến môi trường. Chuyển đến Bảng điều khiển | Thuộc tính hệ thống | Cài đặt hệ thống nâng cao | Biến môi trường. Thêm các biến sau:
- AWS_IAM_HOME : Đặt biến này vào thư mục nơi bạn giải nén bộ công cụ CLI. Nếu bạn đang chạy Windows và giải nén nó ở thư mục gốc của ổ C, biến đó sẽ là C: \ IAMCli-1.2.0.
- JAVA_HOME : Đặt biến này vào thư mục nơi Java được cài đặt. Đây sẽ là vị trí của tệp java.exe. Trong một cài đặt Java Windows 7 bình thường, đây sẽ là một cái gì đó giống như C: \ Program Files (x86) \ Java \ jre6.
- AWS_CREDENTIAL_FILE : Đặt biến này thành đường dẫn và tên tệp của aws-credential.template mà bạn đã cập nhật ở trên. Nếu bạn đang chạy Windows và giải nén nó ở thư mục gốc của ổ C, biến sẽ là C: \ IAMCli-1.2.0 \ aws-credential.template.
- CLIENT_CONFIG_FILE : Bạn chỉ cần thêm biến môi trường này nếu bạn yêu cầu một máy chủ proxy. Nếu bạn đang chạy Windows và giải nén nó ở thư mục gốc của ổ C, biến sẽ là C: \ IAMCli-1.2.0 \ client-config.template. Không thêm biến này trừ khi bạn cần.
- Kiểm tra cài đặt bằng cách vào Command Prompt và nhập iam-userlistbypath. Miễn là bạn không nhận được một lỗi, bạn nên được tốt để đi.
Tất cả các lệnh IAM có thể được chạy từ Command Prompt. Tất cả các lệnh bắt đầu bằng "iam-".
Tạo một nhóm
Có tối đa 100 nhóm có thể được tạo cho mỗi tài khoản AWS. Mặc dù bạn có thể đặt quyền trong IAM ở cấp người dùng, việc sử dụng nhóm sẽ là phương pháp hay nhất. Đây là quá trình tạo nhóm trong IAM.
- Cú pháp để tạo nhóm là iam-groupcreate -g GROUPNAME [-p PATH] [-v] trong đó các tùy chọn -p và -v là tùy chọn. Tài liệu đầy đủ về Giao diện dòng lệnh có sẵn trên Tài liệu AWS.
- Nếu bạn muốn tạo một nhóm được gọi là "awesomeusers", bạn sẽ nhập, iam-groupcreate -g awesomeusers tại Command Prompt.
- Bạn có thể kiểm tra xem nhóm đã được tạo đúng chưa bằng cách nhập iam-grouplistbypath vào Command Prompt. Nếu bạn chỉ tạo nhóm này, đầu ra sẽ giống như "arn: aws: iam :: 123456789012: group / awesomeusers", trong đó số là số tài khoản AWS của bạn.
Cấp quyền truy cập nhóm cho nhóm S3 và CloudFront
Các chính sách kiểm soát những gì nhóm của bạn có thể thực hiện trong S3 hoặc CloudFront. Theo mặc định, nhóm của bạn sẽ không có quyền truy cập vào bất kỳ thứ gì trong AWS. Tôi đã tìm thấy tài liệu về các chính sách được chấp nhận nhưng trong việc tạo ra một số chính sách, tôi đã thực hiện một chút thử nghiệm và lỗi để làm cho mọi thứ hoạt động theo cách tôi muốn họ làm việc.
Bạn có một vài tùy chọn để tạo chính sách.
Một lựa chọn là bạn có thể nhập chúng trực tiếp vào Command Prompt. Vì bạn có thể đang tạo một chính sách và tinh chỉnh nó, cho tôi có vẻ dễ dàng hơn để thêm chính sách vào một tệp văn bản và sau đó tải tệp văn bản dưới dạng tham số bằng lệnh iam-groupuploadpolicy. Đây là quá trình sử dụng một tập tin văn bản và tải lên IAM.
- Sử dụng một cái gì đó như Notepad và nhập văn bản sau đây và lưu tệp:
{
"Tuyên bố":[{
"Hiệu ứng": "Cho phép",
"Hành động": "s3: *",
"Nguồn":[
"arn: aws: s3 ::: BUCKETNAME",
"arn: aws: s3 ::: BUCKETNAME / *"]
},
{
"Hiệu ứng": "Cho phép",
"Hành động": "s3: ListAllMyBuckets",
"Tài nguyên": "arn: aws: s3 ::: *"
},
{
"Hiệu ứng": "Cho phép",
"Hành động": ["cloudfront: *"],
"Nguồn":"*"
}
]
} - Có 3 phần cho chính sách này. Hiệu ứng được sử dụng để Cho phép hoặc Từ chối một số loại quyền truy cập. Hành động là những điều cụ thể mà nhóm có thể làm. Tài nguyên sẽ được sử dụng để cấp quyền truy cập vào các nhóm riêng lẻ.
- Bạn có thể giới hạn Tác vụ riêng lẻ. Trong ví dụ này, "Hành động": ["s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion"], nhóm sẽ có thể liệt kê nội dung của một nhóm và tải xuống các đối tượng.
- Phần đầu tiên "Cho phép" nhóm thực hiện tất cả các hành động S3 cho nhóm "BUCKETNAME".
- Phần thứ hai "Cho phép" nhóm liệt kê tất cả các nhóm trong S3. Bạn cần điều này để bạn có thể thực sự thấy danh sách các nhóm nếu bạn sử dụng một cái gì đó giống như AWS Console.
- Phần thứ ba cho phép nhóm truy cập đầy đủ vào CloudFront.
Có rất nhiều tùy chọn khi đến với các chính sách IAM. Amazon có một công cụ thực sự tuyệt vời có tên là AWS Policy Generator. Công cụ này cung cấp một GUI nơi bạn có thể tạo các chính sách của mình và tạo ra mã thực tế mà bạn cần để thực hiện chính sách. Bạn cũng có thể xem phần Ngôn ngữ chính sách truy cập của tài liệu trực tuyến Sử dụng nhận dạng AWS và Quản lý truy cập.
Tạo người dùng và thêm vào nhóm
Quá trình tạo người dùng mới và thêm vào nhóm để cung cấp cho họ quyền truy cập liên quan đến một vài bước.
- Cú pháp để tạo người dùng là iam-usercreate -u USERNAME [-p PATH] [-g GROUPS ...] [-k] [-v] trong đó các tùy chọn -p, -g, -k và -v là các tùy chọn. Tài liệu đầy đủ về Giao diện dòng lệnh có sẵn trên Tài liệu AWS.
- Nếu bạn muốn tạo một người dùng "bob", bạn sẽ nhập, iam-usercreate -u bob -g awesomeusers tại Command Prompt.
- Bạn có thể kiểm tra xem người dùng đã được tạo đúng chưa bằng cách nhập iam-grouplistusers -g awesomeusers vào Command Prompt. Nếu bạn chỉ tạo người dùng này, đầu ra sẽ có dạng như "arn: aws: iam :: 123456789012: user / bob", trong đó số là số tài khoản AWS của bạn.
Tạo hồ sơ đăng nhập và tạo khóa
Tại thời điểm này, bạn đã tạo ra một người dùng nhưng bạn cần phải cung cấp cho họ một cách để thực sự thêm và loại bỏ các đối tượng khỏi S3.
Có 2 tùy chọn có sẵn để cung cấp cho người dùng của bạn quyền truy cập S3 bằng IAM. Bạn có thể tạo Hồ sơ đăng nhập và cung cấp cho người dùng mật khẩu. Họ có thể sử dụng thông tin đăng nhập của họ để đăng nhập vào Amazon AWS Console. Tùy chọn khác là cung cấp cho người dùng của bạn một khóa truy cập và một khóa bí mật. Họ có thể sử dụng các khóa này trong các công cụ của bên thứ 3 như S3 Fox, CloudBerry S3 Explorer hoặc S3 Browser.
Tạo hồ sơ đăng nhập
Tạo một hồ sơ đăng nhập cho người dùng S3 của bạn cung cấp cho họ một tên người dùng và mật khẩu mà họ có thể sử dụng để đăng nhập vào Amazon AWS Console.
- Cú pháp để tạo hồ sơ đăng nhập là iam-useraddloginprofile -u USERNAME -p PASSWORD. Tài liệu đầy đủ về Giao diện dòng lệnh có sẵn trên Tài liệu AWS.
- Nếu bạn muốn tạo hồ sơ đăng nhập cho người dùng "bob", bạn sẽ nhập, iam-useraddloginprofile -u bob -p PASSWORD tại Dấu nhắc Lệnh.
- Bạn có thể kiểm tra xem cấu hình đăng nhập đã được tạo đúng chưa bằng cách nhập iam-usergetloginprofile -u bob vào Dấu nhắc Lệnh. Nếu bạn đã tạo hồ sơ đăng nhập cho bob, đầu ra sẽ giống như "Hồ sơ đăng nhập tồn tại cho người dùng bob".
Tạo khóa
Tạo khóa truy cập bí mật AWS và ID khóa truy cập AWS tương ứng sẽ cho phép người dùng của bạn sử dụng phần mềm của bên thứ 3 như phần mềm được đề cập trước đây. Hãy nhớ rằng như một biện pháp bảo mật, bạn chỉ có thể nhận được các khóa này trong quá trình thêm hồ sơ người dùng. Hãy chắc chắn rằng bạn sao chép và dán đầu ra từ Dấu nhắc Lệnh và lưu vào một tệp văn bản. Bạn có thể gửi tệp cho người dùng của mình.
- Cú pháp để thêm khoá cho người dùng là iam-useraddkey [-u USERNAME]. Tài liệu đầy đủ về Giao diện dòng lệnh có sẵn trên Tài liệu AWS.
- Nếu bạn muốn tạo khóa cho người dùng "bob", bạn sẽ nhập iam-useraddkey -u bob vào Dấu nhắc Lệnh.
- Lệnh sẽ xuất ra các phím sẽ trông giống như sau:
AKIACOOB5BQVEXAMPLE
BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
Dòng đầu tiên là ID khóa truy cập và dòng thứ hai là Khóa truy cập bí mật. Bạn cần cả hai cho phần mềm của bên thứ 3.
Kiểm tra quyền truy cập
Bây giờ bạn đã tạo nhóm / người dùng IAM và cho phép các nhóm truy cập bằng chính sách, bạn cần kiểm tra quyền truy cập.
Truy cập bảng điều khiển
Người dùng của bạn có thể sử dụng tên người dùng và mật khẩu của họ để đăng nhập vào Bảng điều khiển AWS. Tuy nhiên, đây không phải là trang đăng nhập bảng điều khiển thông thường được sử dụng cho tài khoản AWS chính.
Có một URL đặc biệt mà bạn có thể sử dụng sẽ chỉ cung cấp một mẫu đăng nhập cho tài khoản Amazon AWS của bạn. Đây là URL để đăng nhập vào S3 cho người dùng IAM của bạn.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER là số tài khoản AWS thông thường của bạn. Bạn có thể nhận được điều này bằng cách đăng nhập vào biểu mẫu đăng nhập dịch vụ web của Amazon. Đăng nhập và nhấp vào Tài khoản | Hoạt động tài khoản. Số tài khoản của bạn ở góc trên bên phải. Đảm bảo bạn xóa dấu gạch ngang. URL sẽ trông giống như https://123456789012.signin.aws.amazon.com/console/s3.
Sử dụng phím truy cập
Bạn có thể tải xuống và cài đặt bất kỳ công cụ của bên thứ ba nào đã được đề cập trong bài viết này. Nhập ID khóa truy cập của bạn và Khóa truy cập bí mật trên tài liệu công cụ của bên thứ ba.
Tôi khuyên bạn nên tạo một người dùng ban đầu và yêu cầu người dùng kiểm tra đầy đủ rằng họ có thể làm mọi thứ họ cần làm trong S3. Sau khi bạn xác minh một trong những người dùng của mình, bạn có thể tiến hành thiết lập tất cả người dùng S3 của mình.
Tài nguyên
Dưới đây là một số tài nguyên giúp bạn hiểu rõ hơn về Quản lý nhận dạng và truy cập (IAM).
- Bắt đầu với IAM
- Bộ công cụ dòng lệnh IAM
- Amazon AWS Console
- Trình tạo chính sách AWS
- Sử dụng AWS Identity và Access Management
- Ghi chú phát hành IAM
- Diễn đàn thảo luận IAM
- Câu hỏi thường gặp về IAM