Cấu hình sai lệch trên Amazon S3 là nguyên nhân hàng đầu dẫn đến rò rỉ dữ liệu. Bài viết này sẽ hướng dẫn bạn xây dựng một S3 Security Scanner thông minh bằng Cursor AI. Công cụ không chỉ giúp phát hiện lỗ hổng thần tốc mà còn tự động sửa lỗi thông qua giao tiếp ngôn ngữ tự nhiên.

Công cụ sử dụng:

  • Cursor (IDE tích hợp AI)
  • AWS MCP Server
  • Python + boto3
  • uv (package manager)

Kết quả đạt được:

  • Quét tài nguyên s3 trên AWS mà không cần vào Console
  • Phát hiện lỗi bảo mật
  • AI tự động sửa lỗi

Bước 1: Cài đặt môi trường

Cài đặt các công cụ cần thiết:

  • Python
  • AWS CLI
  • boto3

Kiểm tra boto3 đã cài chưa:

pip install boto3

Kết quả: tôi có được phiên bản boto3: 1.42.35

Nếu chưa cài boto3 có thể dùng lệnh sau:

pip install boto3
  • uv

Bước 2: Xây dựng S3 Security Scanner

Scanner hoạt động theo 3 bước:

  1. Load AWS SDK (boto3)
  2. Gọi API lấy danh sách tất cả S3 bucket
  3. Kiểm tra cấu hình public access của từng bucket

Lưu ý quan trọng: Dùng try/except để:

  • Xử lý lỗi từng bucket riêng
  • Tiếp tục quét nếu một bucket bị lỗi
import boto3
from botocore.exceptions import ClientError


# Sử dụng profile từ ~/.aws/credentials
session = boto3.Session(profile_name='YOUR-PROFILE')


def scan_s3_buckets():
    """Scan all S3 buckets for public access misconfigurations"""
    s3 = session.client('s3')
    findings = []


    print("Scanning S3 buckets for public access...\n")


    buckets = s3.list_buckets()
    print(f"Found {len(buckets['Buckets'])} buckets to scan\n")


    for bucket in buckets['Buckets']:
        bucket_name = bucket['Name']


        try:
            public_block = s3.get_public_access_block(Bucket=bucket_name)
            config = public_block['PublicAccessBlockConfiguration']


            if not all([
                config.get('BlockPublicAcls'),
                config.get('BlockPublicPolicy'),
                config.get('IgnorePublicAcls'),
                config.get('RestrictPublicBuckets')
            ]):
                findings.append({
                    'bucket': bucket_name,
                    'issue': 'Public access not fully blocked',
                    'severity': 'CRITICAL'
                })
                print(f"WARNING: [{bucket_name}] Public access not fully blocked")


        except ClientError as e:
            if e.response['Error']['Code'] == 'NoSuchPublicAccessBlockConfiguration':
                findings.append({
                    'bucket': bucket_name,
                    'issue': 'No public access block configured',
                    'severity': 'CRITICAL'
                })
                print(f"CRITICAL: [{bucket_name}] No public access block configured")
            else:
                print(f"ERROR: Could not scan {bucket_name}: {str(e)}")


        except Exception as e:
            print(f"ERROR: Could not scan {bucket_name}: {str(e)}")


    print(f"\nScan complete. Found {len(findings)} issues.\n")
    return findings


if __name__ == "__main__":
    scan_s3_buckets()

Bước 3: Kết nối Cursor với AWS qua MCP

Mục đích của MCP:

  • Cho phép AI tương tác trực tiếp với AWS
  • Quét, phân tích và sửa lỗi mà không cần vào AWS Console
  • Không cần gõ lệnh CLI thủ công

Cách kết nối

  1. Thêm AWS MCP script vào Cursor trên WINDOW 11

C:\Users\YOUR-USER\.cursor\mcp.json

{
  "mcpServers": {
    "aws-mcp": {
      "command": "C:\\Users\\YOUR-USER\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python313\\Scripts\\uv.exe",
      "args": [
        "tool",
        "run",
        "mcp-proxy-for-aws@latest",
        "https://aws-mcp.us-east-1.api.aws/mcp",
        "--metadata", "AWS_REGION=ap-northeast-1"
      ],
      "env": {
        "AWS_PROFILE": "YOUR-PROFILE",
        "AWS_REGION": "YOUR-REGION"
      }
    }
  }
}

2. Kiểm tra trạng thái MCP trong Cursor

Bước 4: Test Scanner

Chạy scanner

python scanner.py

Kết quả: Scanner phát hiện bucket không an toàn và báo cáo CRITICAL security issue.

Bước 5: AI tự động sửa lỗi

Dùng Cursor với AWS MCP bằng giao tiếp tự nhiên theo các bước sau:

  • Yêu cầu AI kiểm tra và sửa lỗi bảo mật
  • AI tự động xác định bucket bị lỗi
  • AI áp dụng cấu hình bảo mật mới
  • Public access sẽ bị chặn – không cần thao tác thủ công

Ví dụ một trường hợp giao tiếp tự nhiên với AI và nói AI tự động sửa lỗi:

Chạy lại scanner

Sau khi AI sửa xong, chạy lại scanner → Cho đến khi không còn lỗi bảo mật nào.

Kết Luận

Đây là bước đầu để xây dựng các hệ thống security automation phức tạp hơn trong tương lai. Hy vọng bài viết có ích và cảm ơn độc giả!

Tham khảo thêm các bài viết về Giải pháp & Kiến thức công nghệ chuyên sâu tại Sunny Cloud Vietnam