Cập nhật lần cuối: 2024/08/30 08:49:28
CMC cung cấp dịch vụ CMC S3, là dịch vụ lưu trữ dữ liệu dạng đối tượng, cung cấp khả năng lưu trữ không giới hạn và có thể truy xuất ở bất kỳ đâu thông qua Internet.
Bước 1 : Tạo file s3.tf với các thông tin sau
terraform { required_providers { aws = { source = "hashicorp/aws" version = "5.52.0" } } }
provider "aws"{ region = "us-east-1" s3_us_east_1_regional_endpoint = "s3.hn-1.cloud.cmctelecom.vn" s3_use_path_style = true access_key = "" // access key của user, lấy thông tin trên Portal secret_key = "" // Secret key của user, lấy trên Portal endpoints { s3 = "https://s3.hn-1.cloud.cmctelecom.vn" // endpoint của s3 }
skip_credentials_validation = true skip_requesting_account_id = true skip_metadata_api_check = true } |
Bước 2 : Chọn bucket policy muốn áp dụng cho bucket sẽ tạo. Ví dụ có thể tạo file policy1.tf với các thông tin sau
{ "Statement": [ { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Effect": "Allow", "Principal": "*", "Resource": [ "arn:aws:s3:::bucket1/*" ], "Sid": "PublicReadGetObject" } ], "Version": "2012-10-17" } |
Bước 3 : Tạo file bucket1.tf với các thông tin sau
resource "aws_s3_bucket" "bucket1" { bucket = "bucket1" // tên bucket force_destroy = true }
resource "aws_s3_bucket_acl" "bucket1" { bucket = aws_s3_bucket.bucket1.id acl = "public-read"// chọn acl } # Enable enable static web cho S3 bucket resource "aws_s3_bucket_website_configuration" "bucket1" { bucket = aws_s3_bucket.bucket1.bucket
index_document { suffix = "index.html" }
error_document { key = "error.html" } }
resource "aws_s3_bucket_policy" "public" { bucket = aws_s3_bucket.bucket1.id policy = file("policy1.json") // chọn bucket policy } # Enable versioning cho S3 bucket resource "aws_s3_bucket_versioning" "versioning" { bucket = aws_s3_bucket.bucket1.id
versioning_configuration { status = "Enabled" } } # Configure CORS cho S3 bucket resource "aws_s3_bucket_cors_configuration" "cors" { bucket = aws_s3_bucket.bucket1.id cors_rule { allowed_headers = ["*"] allowed_methods = ["GET", "PUT", "POST", "DELETE", "HEAD"] allowed_origins = ["*"] expose_headers = ["ETag"] max_age_seconds = 3000 } } # Setup lifecycle policy cho S3 bucket resource "aws_s3_bucket_lifecycle_configuration" "delete" { bucket = aws_s3_bucket.bucket1.id
rule { id = "rule1" // tên rule filter { prefix = "/log" // chọn prefix }
# Transition rule // transition { // days = 30 # Chọn thời gian sẽ chuyển storage class // storage_class = "COLD" // }
# Expiration rule expiration { days = 60 # chọn thời gian hết hạn }
# Status status = "Enabled" } } # Upload file lên bucket resource "aws_s3_object" "file1" { bucket = aws_s3_bucket.bucket1.bucket key = "index.html" # chọn tên file sẽ hiển thị sau khi upload lên bucket source = "/usr/src/s3/index.html" # đường dẫn của file muốn upload acl = "public-read" # public file sau khi upload } |
Bước 4: Kiểm tra bucket đã tạo
Truy cập Portalv2 , trên thanh công cụ , chọn dịch vụ Simple Storage Service, sau đó tại mục Buckets, click vào bucket đã tạo. Tại đây sẽ hiển thị thông tin chi tiết bucket đã tạo.
Điều khoản & Chính sách