Gói này sẽ thử và tải các bí mật từ AWS Secrets manager trong bất kỳ môi trường nào nằm trong mảng cấu hình
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
7. Bạn nên kích hoạt bộ nhớ đệm để giảm các chuyến đi khứ hồi tới AWS Secrets ManagerGiá trị env có sẵn
AWS_DEFAULT_REGION AWS_SECRETS_TAG_NAME=stage AWS_SECRETS_TAG_VALUE=production
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
8 và AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
9 được sử dụng để kéo xuống tất cả các bí mật khớp với khóa/giá trị thẻThiết lập Bí mật AWS
- Lưu trữ bí mật mới
- Chọn loại bí mật, một trong số AWS được quản lý hoặc loại khác
- Nhập Khóa/Giá trị, KEY phải khớp với biến env
- Đặt cho nó một tên bí mật và mô tả
- Thêm khóa/giá trị thẻ [giai đoạn => sản xuất] là một ví dụ nếu bạn muốn kéo xuống tất cả các bí mật sản xuất
Lưu trữ cấu hình
php artisan config:cache
Thông tin đăng nhập AWS
Vì gói này sử dụng PHP AWS SDK nên như sau. giá trị env được sử dụng hoặc thông tin xác thực được đặt ~/. aws/thông tin đăng nhập
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
https. // tài liệu. aws. amazon. com/sdk-for-php/v3/developer-guide/guide_credentials. html
thử nghiệm
composer test
Nhật ký thay đổi
Vui lòng xem CHANGELOG để biết thêm thông tin về những thay đổi gần đây
Đóng góp
Vui lòng xem ĐÓNG GÓP để biết chi tiết
Bảo vệ
Nếu bạn phát hiện ra bất kỳ vấn đề nào liên quan đến bảo mật, vui lòng gửi email tới security@tappnetwork. com thay vì sử dụng trình theo dõi vấn đề
AWS Secrets Manager cho phép bạn bảo vệ thông tin quan trọng cho các ứng dụng của mình, chẳng hạn như mật khẩu, khóa bí mật và muối. Thay vì lưu trữ cục bộ những thứ này trên phiên bản EC2 [hoặc tệ hơn], đưa chúng vào mã của bạn có nguy cơ khiến chúng bị rò rỉ trên các kho lưu trữ công khai, giờ đây bạn có thể sử dụng API AWS Secrets Manager. Trên thực tế, bạn có thể sử dụng nó để cất giữ bất cứ thứ gì mà bạn muốn tránh xa những con mắt tò mò. Khi tìm hiểu thêm về AWS Secrets Manager, suy nghĩ đầu tiên của tôi là làm thế nào để sử dụng cái này với Wordpress
Tệp
composer test0 trong Wordpress chứa chìa khóa của vương quốc. Với hầu hết các triển khai, tệp này chứa tên máy chủ cơ sở dữ liệu, tên người dùng, mật khẩu, muối và hàm băm. Nếu tin tặc giành được quyền truy cập vào tệp này, trò chơi sẽ kết thúc. Một phương pháp hay nhất là đặt tệp cấu hình Wordpress lên một cấp để không thể truy cập trực tiếp tệp này bằng trình duyệt. Nhưng điều đó không phải lúc nào cũng giữ an toàn cho nội dung của tệp. Nếu vì lý do nào đó, PHP bị lỗi trên máy chủ lưu trữ web, chẳng hạn như bản vá lỗi hoặc bản nâng cấp bị lỗi, thì có khả năng các tệp PHP được hiển thị dưới dạng văn bản
Mối quan tâm chính là các lỗ hổng với plugin Wordpress. Ví dụ: vào năm 2015, một lỗ hổng đã được tìm thấy trong plugin Slider Revolution [revslider], cho phép kẻ tấn công truy cập vào
composer test0, trong số các tệp quan trọng khác trên máy chủ web, bằng cách thao túng URL [
cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
0] để có quyền truy cập. Nhân tiện, bạn cũng có thể bảo vệ đây bằng các quy tắc AWS Firewall Manager và AWS WAF. Vì vậy, mặc dù tệp được lưu trữ ở cấp độ cao hơn, nhưng lỗ hổng này cho phép kẻ tấn công truy cập đơn giản bằng cách thao túng URL. Tôi cung cấp hướng dẫn về cách làm cứng máy chủ Wordpress trong blog và sách điện tử trước đây của tôi về cách xây dựng máy chủ Wordpress an toàn với CentOS 7Wordpress trên Amazon EC2
Để thực hiện tích hợp AWS Secrets Manager với Wordpress, chúng tôi sẽ sử dụng phiên bản AWS EC2 chạy Amazon Linux 2 và tập lệnh bootstrap [Dữ liệu người dùng] để cài đặt Wordpress và các gói cần thiết để hỗ trợ cấu hình này
Điều kiện tiên quyết
Tất cả những gì bạn cần để bắt đầu là cài đặt và cấu hình Wordpress. Bạn có thể triển khai phiên bản EC2, kết nối Wordpress với Amazon RDS [MySQL] và thực hiện cài đặt cơ bản để thử nghiệm
Bạn có thể sử dụng tập lệnh sau để phiên bản Amazon Linux 2 chạy nhanh với Wordpress. Thao tác này sẽ cập nhật HĐH, tải xuống và cài đặt Wordpress [đến
cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
1], cài đặt PHP, MariaDB và đưa bạn đến trạng thái mà bạn có thể chạy các bước thiết lập ban đầu cho Wordpress#!/bin/bash
yum update -y
cd /tmp
wget //wordpress.org/latest.tar.gz
tar xvf latest.tar.gz
yum install -y httpd mariadb-server php-pecl-mcrypt php-pecl-imagick php-mbstring
amazon-linux-extras install -y php7.3
systemctl enable mariadb
systemctl start mariadb
systemctl enable httpd
systemctl start httpd
rsync -r /tmp/wordpress/. /var/www/html
chown -R apache:apache /var/www/
Bạn có thể giữ phiên bản này hoặc chấm dứt nó sau nếu bạn muốn. Phiên bản ban đầu này sẽ được sử dụng để thiết lập và thử nghiệm để cài đặt cơ sở dữ liệu Wordpress của chúng tôi. Khi bạn đã thiết lập và chạy Wordpress, bạn sẽ cần một số gói bổ sung để cho phép các biến môi trường [đọc từ AWS Secrets Manager] được diễn giải bởi tệp cấu hình
composer test0
- Composer là một trình quản lý gói PHP, được sử dụng để triển khai
- PHP dotenv của Vance Lucas
- jq là một công cụ dòng lệnh JSON được sử dụng để phân tích cú pháp và sao chép dữ liệu từ AWS Secrets Manager vào một tệp biến môi trường [‘. env’]
1. Cài đặt Trình soạn nhạc
Các bước sau đây sẽ tải trình cài đặt Composer xuống
cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
3, sau đó chuyển nó sang cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
4, sau đó tạo một liên kết tượng trưng từ cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
5. Điều này sẽ đảm bảo bạn có thể chạy lệnh cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
6 trên toàn cầucd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
2. Cài đặt PHP DotEnv
php artisan config:cache
23. Cài đặt jq
Truy xuất bí mật
Lệnh sau sẽ kết nối với AWS Secrets Manager, phân tích cú pháp dữ liệu và lưu trữ trong
cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
7, cao hơn thư mục trang web của bạn một cấp [cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
1]. Đảm bảo thay thế REGION bằng khu vực AWS của bạn và nhập Secret ID bạn đang sử dụng với AWS Secrets Manager. cd /tmp
curl -sS //getcomposer.org/installer | sudo php
mv composer.phar /usr/local/bin/composer
ln -s /usr/local/bin/composer /usr/bin/composer
9Bước cuối cùng là cập nhật
composer test0 với các biến môi trường mà PHP dotenv đã đọc từ tệp
php artisan config:cache
21 cục bộ trong [php artisan config:cache
22]. Vui lòng sử dụng wp-config của tôi. php, trên GitHub, nếu không, hãy chắc chắn bao gồm những điều sau đây1. Tải PHP dotenv vào wp-config. php
Bạn cần đặt đoạn mã sau vào đầu
composer test0 của mình. Nó sẽ xuất hiện ngay sau
trên dòng tiếp theo. Bởi vì composer test
0 nằm trong php artisan config:cache
22, điều này sẽ kiểm tra thư mục hiện tại. Nếu composer test
0 cư trú trong php artisan config:cache
27, điều này không được khuyến nghị, thì điều này sẽ cần phải được sửa đổi [E. g. php artisan config:cache
28 và php artisan config:cache
29]. Nếu composer test
0 trong php artisan config:cache
22 thì đoạn mã sau sẽ không thay đổi.
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
32], điều này có thể không được giải thích chính xác, vì vậy hãy sử dụng một chuỗi ký tự chữ hoa và chữ thường và số cho mỗi ký tựAWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
4Ví dụ [không sử dụng]
Đây là những gì bạn cần lưu trữ trong AWS Secrets Manager. Vui lòng tạo hàm băm của riêng bạn
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
5Tập lệnh dữ liệu người dùng [Tự động cài đặt Bootstrap]
Nếu bạn đang thiết lập phiên bản EC2 mới, bạn có thể sử dụng tập lệnh này để cài đặt mọi thứ từ đầu. Điều này lý tưởng nếu bạn muốn thiết lập nhóm Auto Scaling phía sau bộ cân bằng tải, kết nối với cơ sở dữ liệu Wordpress hiện có. Các tập lệnh được sử dụng trong bài đăng trên blog này cũng có thể được tải xuống từ repo GitHub của tôi. https. //github. com/rayheffer/wp-bí mật
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
6Ghi chú. Cài đặt Trình soạn thảo trong tập lệnh dữ liệu người dùng sử dụng Sudo. Thông thường các lệnh trong dữ liệu người dùng được chạy với quyền root, nhưng cài đặt Trình soạn thảo cần được chạy dưới dạng Sudo
Như bạn có thể thấy, sử dụng AWS Secrets Manager cung cấp một cách dễ dàng và hiệu quả để giữ thông tin xác thực cơ sở dữ liệu, khóa truy cập bí mật và muối của bạn ra khỏi tệp
composer test0. Một trong những lợi thế của việc này là nếu bạn muốn triển khai một phiên bản EC2 mới, bằng cách sử dụng tập lệnh tôi đã chia sẻ ở trên, bạn có thể triển khai một máy chủ web mới chỉ trong vài phút