Có thể bạn cần xem:
- DevOps trend – 8 dự đoán trong nhiều năm tới
- DevOps là gì? Tìm hiểu về DevOps
- Bạn đang là kiểu lập trình viên nào?
Xem thêm việc làm DevOps Developer trên TopDev
Chào mừng bạn đến với ngày 3 trong 100 ngày của học DevOps , hãy kéo dài chuỗi hành trình theo dõi chúng ta hãy bắt đầu với Alerting for CloudTrail.
Đừng bỏ lỡ các Phần trước:
Các bạn có thể theo dõi 100 ngày Devops tại đây Link
Problem : Tất cả logs trong phần API của tài khoản AWS (bao gồm AWS Console, CLI và API / SDK)
Solution :
Bạn có thể thực hiện thông qua 3 cách dưới đây .
AWS CloudTrail là gì?
AWS CloudTrail là một dịch vụ cho phép thực hiện việc quản lý, tuân thủ, kiểm tra vận hành và đánh giá rủi ro cho tài khoản AWS của bạn. Với CloudTrail, bạn có thể ghi nhật ký, giám sát liên tục và duy trì hoạt động của tài khoản có liên quan đến các hoạt động diễn ra trên cơ sở hạ tầng AWS của bạn. CloudTrail cung cấp lịch sử sự kiện cho hoạt động tài khoản AWS của bạn, bao gồm cả những hoạt động được thực hiện qua Bảng điều khiển quản lý AWS, AWS SDK, công cụ dòng lệnh và dịch vụ AWS khác. Lịch sử sự kiện này đơn giản hóa phân tích bảo mật, theo dõi thay đổi tài nguyên và xử lý lỗi.
NOTE :
Để có activity và event trong tài khoản AWS của bạn, bạn hãy tạo 1 trail. và cầu hình nó cho phép gửi logs đến nhóm S3 và có thể là single region hoặc multi-region.
Create a trail :
Go to AWS Console --> Management & Governance --> CloudTrail --> Trails --> Create trail
Chú thích :
Trail name : Tên Trail bạn muốn đặt .
Apply trail to all regions : Một tùy chọn để bạn chọn tất cả các khu vực hoặc khu vực cụ thể nào đó .
Read/Write events : Lọc các Event
S3 : Bạn có thể ghi lại hoạt động API cấp đối tượng S3 (ví dụ: GetObject và PutObject) cho các nhóm riêng lẻ hoặc cho tất cả các nhóm hiện tại và tương lai trong tài khoản AWS của bạn
Storage Locations : Nơi lưu trữ Logs, bạn có thể tạo nhóm mới hoặc sử dụng nhóm hiện có
Encrypt log file with SSE-KMS : Mã hóa phía máy chủ SSE-S3 mặc định (AES-256) hoặc chúng ta có thể sử dụng KMS
NOTE :
Validating CloudTrail Log File Integrity
Nếu bạn muốn xác thực các bản ghi thì thực hiện trên Command line
aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-1:XXXXXXX:trail/mytestcloudtrail --start-time 2018-12-27T00:09:00Z --end-time 2018-12-27T00:10:00Z --verbose
Tiếp theo hãy quay trợ lại Trail để cấu hình . Trong CloudWatch logs, bạn sẽ thấy logs group mới được tạo
Giờ mình sẽ quay lại sử dụng AWS CLI để tạo . AWS CLI :
Create Trail ( Single Region )
aws cloudtrail create-trail --name my-test-cloudtrail --s3-bucket-name mytests3bucketforcloudtrail{"IncludeGlobalServiceEvents": true,"IsOrganizationTrail": false,"Name": "my-test-cloudtrail","TrailARN": "arn:aws:cloudtrail:us-west-2:XXXXXXXXX:trail/my-test-cloudtrail","LogFileValidationEnabled": false,"IsMultiRegionTrail": false,"S3BucketName": "mytests3bucketforcloudtrail"}
Create Trail ( multi-region)
aws cloudtrail create-trail --name my-test-cloudtrail-multiregion --s3-bucket-name mytests3bucketforcloudtrail --is-multi-region-trail{"IncludeGlobalServiceEvents": true,"IsOrganizationTrail": false,"Name": "my-test-cloudtrail-multiregion","TrailARN": "arn:aws:cloudtrail:us-west-2:XXXXXXXXX:trail/my-test-cloudtrail-multiregion","LogFileValidationEnabled": false,"IsMultiRegionTrail": true,"S3BucketName": "mytests3bucketforcloudtrail"}
Kiểm tra trạng thái và list all .
aws cloudtrail describe-trails{"trailList": [{"IncludeGlobalServiceEvents": true,"IsOrganizationTrail": false,"Name": "my-test-cloudtrail","TrailARN": "arn:aws:cloudtrail:us-west-2:XXXXXXXXXX:trail/my-test-cloudtrail","LogFileValidationEnabled": false,"IsMultiRegionTrail": false,"HasCustomEventSelectors": false,"S3BucketName": "mytests3bucketforcloudtrail","HomeRegion": "us-west-2"},{"IncludeGlobalServiceEvents": true,"IsOrganizationTrail": false,"Name": "my-test-cloudtrail-multiregion","TrailARN": "arn:aws:cloudtrail:us-west-2:XXXXXXXXXX:trail/my-test-cloudtrail-multiregion","LogFileValidationEnabled": false,"IsMultiRegionTrail": true,"HasCustomEventSelectors": false,"S3BucketName": "mytests3bucketforcloudtrail","HomeRegion": "us-west-2"}
Start logging for the trail
aws cloudtrail start-logging --name my-test-cloudtrail
To verify if logging is enable
aws cloudtrail get-trail-status --name my-test-cloudtrail{"LatestDeliveryTime": 1550014519.927,"LatestDeliveryAttemptTime": "2019-02-12T23:35:19Z","LatestNotificationAttemptSucceeded": "","LatestDeliveryAttemptSucceeded": "2019-02-12T23:35:19Z","IsLogging": true,"TimeLoggingStarted": "2019-02-12T23:34:58Z","StartLoggingTime": 1550014498.331,"LatestNotificationAttemptTime": "","TimeLoggingStopped": ""}
To enable log file validation
aws cloudtrail create-trail --name my-test-cloudtrail-multiregion-logging --s3-bucket-name mytests3bucketforcloudtrail --is-multi-region-trail --enable-log-file-validation{"IncludeGlobalServiceEvents": true,"IsOrganizationTrail": false,"Name": "my-test-cloudtrail-multiregion-logging","TrailARN": "arn:aws:cloudtrail:us-west-2:349934551430:trail/my-test-cloudtrail-multiregion-logging","LogFileValidationEnabled": true,"IsMultiRegionTrail": true,"S3BucketName": "mytests3bucketforcloudtrail"}
To delete a particular trail
aws cloudtrail delete-trail --name my-test-cloudtrail-multiregion-logging
List all Command :
Create Trail(Single Region)
aws cloudtrail create-trail --name my-test-cloudtrail --s3-bucket-name mytests3bucketforcloudtrail
Create Trail(That applies to multi-region)
aws cloudtrail create-trail --name my-test-cloudtrail-multiregion --s3-bucket-name mytests3bucketforcloudtrail --is-multi-region-trail
To get the status/list all the trails
aws cloudtrail describe-trails
Start logging for the trail
aws cloudtrail start-logging --name my-test-cloudtrail
To verify if logging is enabled
aws cloudtrail get-trail-status --name my-test-cloudtrail
To enable log file validation
aws cloudtrail create-trail --name my-test-cloudtrail-multiregion-logging --s3-bucket-name mytests3bucketforcloudtrail --is-multi-region-trail --enable-log-file-validation
To delete a particular trail
aws cloudtrail delete-trail --name my-test-cloudtrail-multiregion-logging
Sử dụng Terraform để tạo :
provider "aws" { region = "us-west-2" } resource "aws_cloudtrail" "my-demo-cloudtrail" { name = "my-demo-cloudtrail-terraform" s3_bucket_name = "${aws_s3_bucket.s3_bucket_name.id}" include_global_service_events = true is_multi_region_trail = true enable_log_file_validation = true } resource "aws_s3_bucket" "s3_bucket_name" { bucket = "s3-cloudtrail-bucket-with-terraform-code" policy = <<POLICY { "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::s3-cloudtrail-bucket-with-terraform-code" }, { "Sid": "AWSCloudTrailWrite", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::s3-cloudtrail-bucket-with-terraform-code/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] } POLICY }
Mình hy vọng các bạn tham gia hành trình này và dành tối thiểu một giờ mỗi ngày trong 100 ngày tiếp theo cho công việc DevOps . Chúc các bạn thành công!
Có thể bạn cần xem:
Xem thêm việc làm DevOps Developer trên TopDev
TopDev via Techzone