Hướng Dẫn AWS Console Web Application Baseline Manual
Sách hướng dẫn này khởi tạo hạ tầng AWS chuẩn cho một ứng dụng web trên AWS Console. Region: ap-northeast-1 (Asia Pacific - Tokyo).
Kiến Trúc Mục Tiêu
Hạ tầng chuẩn cho một ứng dụng web chạy trên AWS Console.
| Thành phần | Cấu hình |
|---|---|
| Region | ap-northeast-1 (Asia Pacific - Tokyo) |
| Máy chủ (Compute) | Một EC2 instance Ubuntu Server 24.04 LTS trong public subnet |
| Truy cập công cộng | Elastic IP gắn trực tiếp vào EC2; Cho phép TCP 22, 80 và 443 inbound |
| Cơ sở dữ liệu | Amazon RDS for PostgreSQL 16 truy cập công cộng trong public subnets; PostgreSQL mở cổng TCP 5432 |
| Lưu trữ đối tượng | Một S3 bucket; chỉ public/* được phép đọc ẩn danh |
| Dịch vụ Email | Tên miền/Email xác thực trên Amazon SES và thông số SMTP |
| Cân bằng tải (ALB) | Không thuộc hạ tầng cơ bản này. Chỉ thêm ALB khi cần nhiều instance hoặc quản lý TLS termination. |
Các Thông Số Cần Quyết Định Trước Khi Bắt Đầu
Sử dụng một tiền tố ứng dụng đồng nhất, ví dụ: myapp-prod.
| Thông số | Ví dụ / Giá trị yêu cầu |
|---|---|
| Tiền tố ứng dụng (Application prefix) | <APP> |
| VPC CIDR | <VPC_CIDR> |
| Public subnet CIDRs | <PUBLIC_SUBNET_A_CIDR> , <PUBLIC_SUBNET_C_CIDR> |
| Loại EC2 (EC2 instance type) | <EC2_INSTANCE_TYPE> |
| Dung lượng đĩa gốc EBS | <EBS_GIB> GiB |
| Cấu hình & Dung lượng RDS | <DB_INSTANCE_CLASS>, <DB_STORAGE_GIB> GiB initial, <DB_MAX_STORAGE_GIB> GiB maximum |
| Tên cơ sở dữ liệu (Database name) | <DB_NAME> |
| Dải IP truy cập SSH | <SSH_SOURCE_CIDR> ; 0.0.0.0/0 |
| Tên S3 bucket duy nhất | <GLOBALLY_UNIQUE_BUCKET_NAME> |
| Tên miền/Email gửi qua SES | <SENDING_IDENTITY> |
Quyền Quản Trị Console Bắt Buộc
Cấp cho IAM user thực hiện 3 chính sách inline dưới đây trước khi bắt đầu. Chúng bao gồm mọi hành động khởi tạo và cấu hình trong tài liệu này, cộng với các quyền đọc để AWS Console hiển thị giao diện. Tạo từng chính sách tại IAM > Users > user khởi tạo > Add permissions > Create inline policy > JSON, đặt tên lần lượt là <APP>-infrastructure-provisioning, <APP>-iam-provisioning, và <APP>-ses-support-provisioning. Hãy thay thế <ACCOUNT_ID>, <APP>, <PROVISIONING_IAM_USER>, và <GLOBALLY_UNIQUE_BUCKET_NAME> trước.
Đây là các chính sách dành cho việc khởi tạo hạ tầng, không phải chính sách ứng dụng. Chúng chỉ cho phép tạo tài nguyên tại ap-northeast-1, ngoại trừ các dịch vụ toàn cầu như IAM và S3. Một số hành động tạo tài nguyên không hỗ trợ phân quyền theo resource, vì vậy trường resource của chúng phải giữ nguyên là *. Xóa các chính sách hoặc user khởi tạo này sau khi hoàn tất bàn giao.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "cloudwatch:GetMetricData",
"Resource": "*",
"Condition": {
"StringEquals": { "aws:RequestedRegion": "ap-northeast-1" }
}
},
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:GetConsole*",
"rds:Describe*",
"rds:ListTagsForResource"
],
"Resource": "*",
"Condition": {
"StringEquals": { "aws:RequestedRegion": "ap-northeast-1" }
}
},
{
"Effect": "Allow",
"Action": [
"s3:GetAccountPublicAccessBlock",
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucket*",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::<GLOBALLY_UNIQUE_BUCKET_NAME>"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::<GLOBALLY_UNIQUE_BUCKET_NAME>/*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateVpc",
"ec2:ModifyVpcAttribute",
"ec2:CreateSubnet",
"ec2:ModifySubnetAttribute",
"ec2:CreateInternetGateway",
"ec2:AttachInternetGateway",
"ec2:CreateRouteTable",
"ec2:AssociateRouteTable",
"ec2:CreateRoute",
"ec2:CreateSecurityGroup",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:CreateTags"
],
"Resource": "*",
"Condition": {
"StringEquals": { "aws:RequestedRegion": "ap-northeast-1" }
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateKeyPair",
"ec2:RunInstances",
"ec2:AllocateAddress",
"ec2:AssociateAddress",
"ec2:ModifyVolume",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:RebootInstances",
"ec2:CreateTags"
],
"Resource": "*",
"Condition": {
"StringEquals": { "aws:RequestedRegion": "ap-northeast-1" }
}
},
{
"Effect": "Allow",
"Action": [
"kms:DescribeKey",
"kms:ListAliases"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "kms:CreateGrant",
"Resource": "arn:aws:kms:ap-northeast-1:<ACCOUNT_ID>:key/*",
"Condition": {
"ForAnyValue:StringEquals": {
"kms:ViaService": [
"ec2.ap-northeast-1.amazonaws.com",
"rds.ap-northeast-1.amazonaws.com"
]
},
"Bool": { "kms:GrantIsForAWSResource": "true" }
}
},
{
"Effect": "Allow",
"Action": [
"kms:DescribeKey",
"kms:GenerateDataKeyWithoutPlaintext"
],
"Resource": "arn:aws:kms:ap-northeast-1:<ACCOUNT_ID>:key/*",
"Condition": {
"ForAnyValue:StringEquals": {
"kms:ViaService": [
"ec2.ap-northeast-1.amazonaws.com",
"rds.ap-northeast-1.amazonaws.com"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"rds:CreateDBSubnetGroup",
"rds:CreateDBParameterGroup",
"rds:CreateDBInstance",
"rds:ModifyDBParameterGroup",
"rds:ModifyDBInstance",
"rds:StartDBInstance",
"rds:StopDBInstance",
"rds:RebootDBInstance",
"rds:AddTagsToResource"
],
"Resource": "*",
"Condition": {
"StringEquals": { "aws:RequestedRegion": "ap-northeast-1" }
}
},
{
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:PutBucketOwnershipControls",
"s3:PutBucketVersioning",
"s3:PutEncryptionConfiguration",
"s3:PutBucketPublicAccessBlock",
"s3:PutBucketPolicy",
"s3:PutBucketCors"
],
"Resource": [
"arn:aws:s3:::<GLOBALLY_UNIQUE_BUCKET_NAME>",
"arn:aws:s3:::<GLOBALLY_UNIQUE_BUCKET_NAME>/*"
]
}
]
}Giải Pháp Thay Thế Bằng AWS Managed Policy
Sử dụng các inline policy ở trên cho người dùng khởi tạo. Nếu việc duy trì chúng quá phức tạp cho thiết lập một lần này, bạn có thể tạm thời đính kèm các AWS Managed Policy sau:
| Quy trình thủ công | AWS Managed Policy tương ứng |
|---|---|
| VPC, subnet, route table và security group | AmazonVPCFullAccess |
| Key pair, EC2 instance, EBS và Elastic IP | AmazonEC2FullAccess |
| RDS subnet group, parameter group và cơ sở dữ liệu | AmazonRDSFullAccess |
| S3 bucket, chính sách, mã hóa, versioning, CORS và quản lý đối tượng (object) | AmazonS3FullAccess |
| IAM user/access key ứng dụng và IAM user cho SES SMTP | IAMFullAccess |
| Kiểm tra chính sách bằng IAM Access Analyzer | IAMAccessAnalyzerFullAccess |
| Metric của RDS trên Console | CloudWatchReadOnlyAccess |
| SES identity và yêu cầu quyền production access | AmazonSESFullAccess |
| Tăng hạn ngạch SES Quota và gửi ticket hỗ trợ AWS Support | ServiceQuotasFullAccess , AWSSupportAccess |
AdministratorAccess là giải pháp thay thế đơn giản nhất nhưng có quyền hạn rộng hơn tất cả các policy trên cộng lại. KHÔNG đính kèm policy này cho ứng dụng đang chạy và phải gỡ bỏ khỏi user khởi tạo sau khi bàn giao. IAM user của ứng dụng được tạo sau này sẽ chỉ nhận được duy nhất policy S3 được hướng dẫn bên dưới.
Các quyền KMS trong inline policy cố tình không được thay thế bằng AWS managed policy. Nếu tài khoản yêu cầu KMS key do khách hàng quản lý (customer-managed) thay vì key mặc định của EBS và RDS, quản trị viên KMS cũng phải cấp quyền cho user này trong KMS key policy. KHÔNG bù đắp bằng cách đính kèm một KMS managed policy quá rộng.
Nếu bật Enhanced Monitoring khi tạo RDS, chọn Create new role và đặt tên là `rds-monitoring-role`. Trusted entity của nó phải là `monitoring.rds.amazonaws.com`, và phải sử dụng `AmazonRDSEnhancedMonitoringRole`. IAM provisioning policy chỉ cho phép tạo, đọc, và truyền tải (pass) đúng role có tên đó và chỉ được đính kèm đúng AWS managed policy đó.
Bảng Phân Quyền Chi Tiết (Permission Mapping)
| Thao tác thủ công | Tập quyền Create/Configure tương ứng |
|---|---|
| VPC, subnet, internet gateway, route table và security group | ec2:CreateVpc , CreateSubnet , CreateInternetGateway , AttachInternetGateway , CreateRouteTable , AssociateRouteTable , CreateRoute , CreateSecurityGroup , ủy quyền ingress/egress, cùng các thay đổi VPC/subnet và tag bắt buộc |
| SSH key pair, EC2 instance/EBS, Elastic IP | ec2:CreateKeyPair , RunInstances , AllocateAddress , AssociateAddress , ModifyVolume để thay đổi kích thước EBS, StartInstances , StopInstances , RebootInstances , và gán tag |
| Tài nguyên EBS và RDS được mã hóa | Khám phá các key mặc định trên Console; cấp quyền grant và sử dụng data-key chỉ thông qua EC2 hoặc RDS tại Tokyo |
| RDS subnet group, parameter group và cơ sở dữ liệu | Tạo subnet group, parameter group và DB instance; chỉnh sửa bao gồm dung lượng lưu trữ; khởi động, dừng, khởi động lại; thêm tag tài nguyên; và chỉ tạo RDS service-linked role khi chưa tồn tại |
| S3 bucket, chính sách public-prefix, CORS và quản lý đối tượng (object) | s3:CreateBucket , ownership controls, versioning, mã hóa, public-access block, bucket policy, CORS, và s3:GetObject , s3:PutObject , s3:DeleteObject |
| IAM user/access key S3 ứng dụng và IAM user SES SMTP | Tạo S3/SMTP users và access keys; tạo và đính kèm duy nhất <APP>-s3-bucket-access cho <APP>-s3-user; tạo và cấu hình duy nhất AWSSESSendingGroupDoNotRename; chỉ thêm các SMTP user được tạo vào group đó |
| Role tùy chọn cho RDS Enhanced Monitoring | Tạo, liệt kê IAM users/groups/roles và managed policies; đọc và truyền (pass) duy nhất rds-monitoring-role; và chỉ đính kèm AmazonRDSEnhancedMonitoringRole |
| Metric của RDS trên Console | cloudwatch:GetMetricData tại Tokyo |
| SES configuration set, identity, DKIM và quyền production access | ses:CreateConfigurationSet , CreateEmailIdentity , PutEmailIdentityDkimAttributes , và PutAccountDetails |
| Tăng hạn ngạch SES Quota và gửi ticket Support | Các thao tác đọc/yêu cầu trên Service Quotas; tạo, đọc và phản hồi các case trên AWS Support |
1. Khởi Tạo Mạng (Create The Network)
- Mở VPC tại ap-northeast-1 và chọn Your VPCs > Create VPC.
- Chọn VPC and more và cài đặt các thông số sau:
| Setting | Value |
|---|---|
| Name tag auto-generation | <APP> |
| IPv4 CIDR block | <VPC_CIDR> |
| Number of Availability Zones | 2 |
| Number of public subnets | 2 |
| Public subnet CIDRs | <PUBLIC_SUBNET_A_CIDR> , <PUBLIC_SUBNET_C_CIDR> |
| Number of private subnets | 0 |
| NAT gateways | None |
| VPC endpoints | None (do not create an S3 endpoint) |
| DNS options | Keep Enable DNS hostnames and Enable DNS resolution selected |
- Tạo VPC. Máy chủ EC2 và RDS công cộng sẽ sử dụng 2 public subnets này. Đảm bảo mỗi public route table đều có route 0.0.0.0/0 hướng tới Internet Gateway.
- Trong Subnets, đổi tên 2 public subnets thành <APP>-public-a và <APP>-public-c.
- Xác minh cả 2 public subnets đều đã bật Auto-assign public IPv4 address và có route tới Internet Gateway.
Tạo Security Groups
- Mở EC2 > Security Groups > Create security group.
- Tạo <APP>-ec2-sg trong <APP>-vpc với các quy tắc Inbound sau:
| Type | Protocol | Port | Source |
|---|---|---|---|
| SSH | TCP | 22 | <SSH_SOURCE_CIDR> |
| HTTP | TCP | 80 | 0.0.0.0/0 and ::/0 |
| HTTPS | TCP | 443 | 0.0.0.0/0 and ::/0 |
- Giữ nguyên quy tắc Outbound mặc định cho phép toàn bộ lưu lượng ra ngoài.
- Tạo <APP>-rds-sg trong cùng VPC. Thêm 1 quy tắc Inbound: PostgreSQL, TCP 5432, nguồn 0.0.0.0/0. Giữ quy tắc Outbound mặc định.
Ghi lại VPC ID, Public Subnet IDs, và cả 2 Security Group IDs.
2. Tạo SSH Key Pair
- Trong EC2 > Key Pairs, chọn Create key pair.
- Đặt tên là <APP>-ec2-key, chọn ED25519 và định dạng .pem, sau đó bấm tạo.
- Tải file private key về máy ngay lập tức và lưu trữ tại secret store an toàn cùng thông tin chủ sở hữu và phục hồi. AWS sẽ không cho phép tải lại lần thứ hai.
Ghi lại tên Key Pair và đường dẫn lưu file .pem an toàn. Không commit key vào Git repository hoặc lưu trữ ở nơi chia sẻ chung.
3. Khởi Chạy EC2 & Gán Elastic IP
- Trong EC2 > Instances, chọn Launch instances.
- Đặt tên instance là <APP>-web-1.
- Tại mục Application and OS Images, chọn Ubuntu Server 24.04 LTS từ Canonical.
- Chọn loại EC2 <EC2_INSTANCE_TYPE>, Key Pair <APP>-ec2-key, và VPC <APP>-vpc.
- Chọn 1 public subnet, bật tự động cấp IP công cộng và chọn security group <APP>-ec2-sg.
- Cài đặt ổ đĩa root EBS là <EBS_GIB> GiB, loại gp3, bật mã hóa đĩa. Bấm Launch instance.
- Chờ đến khi cả 2 status check của instance đều pass. Ghi lại Instance ID.
- Mở EC2 > Elastic IP addresses > Allocate Elastic IP address và khởi tạo 1 IP tĩnh.
- Chọn IP mới tạo, bấm Actions > Associate Elastic IP address, chọn instance <APP>-web-1 và hoàn tất gán IP.
Ghi lại Instance ID, Availability Zone, Elastic IP allocation ID, và địa chỉ Elastic IP.
4. Khởi Tạo PostgreSQL 16 Trên RDS
Tạo DB Subnet Group
- Mở RDS > Subnet groups > Create DB subnet group.
- Đặt tên <APP>-db-subnets, chọn VPC <APP>-vpc, và thêm <APP>-public-a, <APP>-public-c ở 2 Availability Zone khác nhau.
- Tạo subnet group.
Tạo Parameter Group
- Mở RDS > Parameter groups > Create parameter group.
- Chọn PostgreSQL, family postgres16, loại DB Parameter Group, đặt tên <APP>-postgres16-parameters.
- Tạo parameter group.
- Chọn group mới tạo > Edit, đổi rds.force_ssl thành 0 và lưu. PostgreSQL 16 mặc định tham số này là 1; đổi thành 0 để cho phép kết nối không cần SSL.
Tạo Database
- Mở RDS > Databases > Create database.
- Chọn Standard create, PostgreSQL, và phiên bản PostgreSQL 16.
- Chọn template phù hợp với môi trường. Với môi trường production, chỉ bật Multi-AZ nếu yêu cầu về độ sẵn sàng và ngân sách cho phép.
- Đặt DB instance identifier thành <APP>-postgres16 và master username thành <DB_MASTER_USERNAME>. Chọn Auto generate a password, sau đó copy mật khẩu master vừa tạo vào kho lưu trữ bí mật (secret store) được phê duyệt khi RDS hiển thị. Không lưu mật khẩu vào tài liệu này hoặc source control.
- Đặt DB instance class thành <DB_INSTANCE_CLASS>. Ở phần Storage, chọn General Purpose SSD (gp3), đặt Allocated storage là <DB_STORAGE_GIB> GiB, và bật mã hóa đĩa (storage encryption). Bật storage autoscaling và đặt Maximum storage threshold là <DB_MAX_STORAGE_GIB> GiB, tùy theo mức độ tăng trưởng dự kiến và ngân sách.
- Trong mục Connectivity, chọn <APP>-vpc, <APP>-db-subnets, Public access: Yes, và chọn security group <APP>-rds-sg đã có. Xóa security group mặc định (default) nếu nó tự động được thêm vào.
- Mở rộng phần Additional configuration, sau đó chọn <APP>-postgres16-parameters làm DB parameter group. Đặt initial database name là <DB_NAME> nếu ứng dụng yêu cầu.
- Bật automated backups và deletion protection cho môi trường production. Kiểm tra lại chi phí dự tính và bấm create the database.
- Đợi quá trình tạo hoàn tất và trạng thái DB instance chuyển sang Available. Ở trang hoàn thành, chọn View connection details và ghi lại endpoint và port. Nếu bạn lỡ đóng trang hoàn thành, hãy mở chi tiết DB instance và sử dụng tab Connectivity & security để thay thế.
Ghi lại DB identifier, endpoint hostname, port 5432, database name, master username, parameter-group name, và tham chiếu kho lưu trữ bí mật (secret-store reference) cho mật khẩu.
Nếu RDS báo lỗi Unable to create the resource. Verify that you have permission to create service linked role, IAM policy của bạn phải cho phép quyền iam:CreateServiceLinkedRole cho AWSServiceRoleForRDS, như đã cấu hình ở trên. Nếu role đó vừa mới được tạo, hãy đợi vài phút để IAM đồng bộ và thử lại. Lưu ý rằng service control policy của AWS Organizations, permissions boundary hoặc session policy vẫn có thể chặn hành động này.
5. Tạo S3 Bucket & Quyền Ứng Dụng
Tạo S3 Bucket
- Mở S3 > Buckets > Create bucket.
- Đặt tên <GLOBALLY_UNIQUE_BUCKET_NAME> tại ap-northeast-1.
- Giữ Object Ownership ở mức ACLs disabled (recommended).
- Bật versioning nếu cần khôi phục file upload. Bật mã hóa mặc định.
- Mục Block Public Access settings, BỎ CHỌN 2 cài đặt cho phép Public Bucket Policy: Block public access to buckets and objects granted through new public bucket or access point policies và Block public and cross-account access to buckets and objects through any public bucket or access point policies.
- Xác nhận đối tượng trong public/ sẽ là công khai và tiến hành tạo bucket. Nếu cài đặt Block Public Access ở cấp tài khoản ngăn cản thao tác này, quản trị viên tài khoản phải thay đổi cài đặt đó hoặc sử dụng giải pháp thay thế riêng tư.
Thêm Public-Prefix Bucket Policy
- Mở tab Permissions > Bucket policy > Edit của bucket.
- Thay thế <GLOBALLY_UNIQUE_BUCKET_NAME> và lưu policy này:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadOnlyForPublicPrefix",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<GLOBALLY_UNIQUE_BUCKET_NAME>/public/*"
}
]
}Cấu Hình CORS Cho Phép Truy Cập Cross-Origin
- Mở tab Permissions > Cross-origin resource sharing (CORS) > Edit của bucket.
- Lưu cấu hình này:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]Tạo IAM User Cho Ứng Dụng
- Mở IAM > Users > Create user và đặt tên <APP>-s3-user.
- Không bật AWS Management Console access.
- Mở IAM > Policies > Create policy > JSON.
- Thay tên bucket và tạo customer-managed policy với tên <APP>-s3-bucket-access:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListThisBucketOnly",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::<GLOBALLY_UNIQUE_BUCKET_NAME>"
},
{
"Sid": "ManageObjectsInThisBucketOnly",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::<GLOBALLY_UNIQUE_BUCKET_NAME>/*"
}
]
}- Quay lại <APP>-s3-user, chọn Add permissions > Attach policies directly, chọn <APP>-s3-bucket-access và thêm quyền.
- Mở tab Security credentials > Create access key. Chọn Application running outside AWS nếu được hỏi, xác nhận acknowledgement và tạo key.
- Tải file CSV hoặc lưu Access Key ID & Secret Access Key vào secret store an toàn. Secret access key chỉ được hiển thị một lần duy nhất.
Ghi lại Bucket Name, Bucket ARN, User ARN, Access Key ID và tham chiếu cất giữ Secret Key. Không bao giờ ghi lại hoặc truyền tải Secret Key qua ticket, chat, hoặc source control.
6. Cấu Hình Amazon SES
- Mở Amazon SES tại ap-northeast-1 > Configuration > Verified identities > Create identity.
- Chọn Domain và nhập <SENDING_IDENTITY>. Thêm các bản ghi DNS verification được SES hiển thị vào DNS provider của domain. Bật DKIM và thêm tất cả DKIM CNAME record.
- Chờ đến khi trạng thái identity chuyển sang Verified. Identity dạng email address chỉ chấp nhận khi không thể xác thực được sending domain.
- Trong SES, mở Account dashboard và chọn Request production access. Cung cấp thông tin use case gửi email thực tế, website, loại thư, lưu lượng dự kiến, xử lý bounce/complaint, và quy trình opt-out. Chờ phê duyệt trước khi gửi đến người nhận chưa được xác thực.
- Mở SMTP settings > Create SMTP credentials. Đặt tên IAM user là <APP>-ses-smtp, tạo và tải về SMTP username và password.
Ghi lại verified identity, trạng thái hoàn thành DNS record, trạng thái SES production access, SMTP endpoint (ap-northeast-1), SMTP username, và tham chiếu kho lưu trữ bí mật cho SMTP password.
Nên submit yêu cầu production access bằng tiếng Anh khi có thể để AWS Support có thể xem xét use case một cách rõ ràng. Việc phê duyệt phụ thuộc vào chất lượng và tính hợp lệ của thông tin use case gửi đi, compliance, và xử lý bounce/complaint, chứ không chỉ dựa vào ngôn ngữ của yêu cầu. SMTP credentials đặc thù theo region; hãy giữ riêng biệt với S3 IAM access key và thay mới khi một người có quyền truy cập rời dự án.
Danh Mục Kiểm Tra Bàn Giao Cuối Cùng (Final Handoff Checklist)
Xác minh tương tác đầy đủ trước khi nghiệm thu bàn giao hạ tầng
Bạn Cần Tư Vấn Thiết Kế & Tự Động Hóa Hạ Tầng AWS?
Đội ngũ Chuyên gia Cloud & DevOps Senior của AIPRO sẵn sàng tư vấn, xây dựng hạ tầng tối ưu chi phí, hiệu năng cao và bảo mật toàn diện.
