Trình quản lý bí mật PHP

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 Manager

Giá 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

  1. Lưu trữ bí mật mới
  2. Chọn loại bí mật, một trong số AWS được quản lý hoặc loại khác
  3. Nhập Khóa/Giá trị, KEY phải khớp với biến env
  4. Đặt cho nó một tên bí mật và mô tả
  5. 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 test
0 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 test
0, 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 7

Wordpress 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 test
0

  • 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ầu

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

2. Cài đặt PHP DotEnv

php artisan config:cache
2

3. 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
9

Bước cuối cùng là cập nhật

composer test
0 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 đây

1. Tải PHP dotenv vào wp-config. php

Bạn cần đặt đoạn mã sau vào đầu

composer test
0 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
4

Ví 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
5

Tậ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
6

Ghi 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 test
0. 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

Trình quản lý bí mật được sử dụng để làm gì?

Secret Manager là hệ thống lưu trữ an toàn và thuận tiện cho các khóa API, mật khẩu, chứng chỉ và dữ liệu nhạy cảm khác . Secret Manager cung cấp một vị trí trung tâm và nguồn thông tin xác thực duy nhất để quản lý, truy cập và kiểm tra các bí mật trên Google Cloud.

Sự khác biệt giữa KMS và trình quản lý bí mật là gì?

Secret Manager hoạt động tốt để lưu trữ thông tin cấu hình như mật khẩu cơ sở dữ liệu, khóa API hoặc chứng chỉ TLS mà ứng dụng cần khi chạy. Một hệ thống quản lý khóa, chẳng hạn như Cloud KMS, cho phép bạn quản lý các khóa mật mã và sử dụng chúng để mã hóa hoặc giải mã dữ liệu

Secret manager có phải xuyên vùng không?

Có thể sử dụng một bí mật trên nhiều Khu vực mà không cần sao chép nó bằng cách gọi điểm cuối Trình quản lý bí mật ở Khu vực lưu trữ bí mật.

Trình quản lý bí mật có trong VPC không?

AWS Secrets Manager hiện tương thích với các chính sách điểm cuối VPC, điều này giúp khách hàng dễ dàng hạn chế các bí mật từ Amazon VPC của họ thoát ra ngoài

Chủ Đề