Lab Introduction
- AWS experience: Beginner
- Time to complete: 35 minutes
- AWS Region: US East (N. Virginia) us-east-1
- Cost to complete: Free Tier
- Services used: Amazon Bedrock, Amazon VPC, Lambda, AWS PrivateLink, IAM
Amazon Bedrock và quyền riêng tư dữ liệu trong AI tạo sinh
Data Privacy
Trong bối cảnh phân tích dữ liệu và học máy, quyền riêng tư dữ liệu (Data Privacy) là yếu tố cực kỳ quan trọng, đặc biệt khi công nghệ AI tạo sinh (Generative AI) đang phát triển mạnh mẽ. Nếu không có biện pháp bảo mật đúng cách, các công cụ AI tạo sinh rất dễ bị đánh cắp dữ liệu, dẫn đến việc tiết lộ thông tin nhạy cảm hoặc vi phạm quyền riêng tư.
Amazon Bedrock là một dịch vụ được quản lý toàn diện, hỗ trợ bạn xây dựng ứng dụng AI tạo sinh mà vẫn đảm bảo tuân thủ các tiêu chuẩn bảo mật như GDPR và HIPAA.
Tính năng bảo mật chính của Amazon Bedrock
- Dữ liệu người dùng (nội dung) như prompt, dữ liệu tinh chỉnh, dữ liệu vector với RAG... không bị chia sẻ với bên thứ ba, bao gồm cả AWS.
- Có thể sử dụng AWS PrivateLink để kết nối riêng tư giữa các mô hình nền tảng (Foundation Models - FM) và mạng nội bộ/VPC, tránh truyền dữ liệu qua Internet công cộng.
- Tự động phát hiện lạm dụng: Amazon Bedrock tích hợp công nghệ phát hiện hành vi sử dụng sai (abuse detection), giúp xác định và xử lý tự động các hành vi vi phạm chính sách của AWS hoặc của nhà cung cấp mô hình.
Architecture Diagram

- Người dùng gửi yêu cầu đến ứng dụng GenAI (Lambda function) qua HTTPS.
- Ứng dụng xử lý trong VPC riêng, không đi qua Internet. Ứng dụng GenAI Application chạy bên trong VPC của khách hàng, được bảo vệ bởi Security Group.
- Kết nối đến Bedrock được thực hiện riêng tư qua AWS PrivateLink, một kết nối riêng, không đi qua Internet công cộng, giúp bảo mật dữ liệu truyền đi và tránh rủi ro rò rỉ thông tin.
- Dịch vụ Bedrock xử lý yêu cầu mà không chia sẻ dữ liệu với bên thứ ba.
1. Create Lambda Functions as Part of Your GenAI Application Interacting With Foundation Models via Bedrock
Tôi sử dụng Foundation Models Claude 3.5 Sonnet của nhà Anthropic, như một ứng dụng GenAI đơn giản hóa, trong đó Lambda tương tác với Amazon Bedrock để tạo văn bản, trả lời các câu hỏi từ người dùng.
1.1 Access model từ Bedrock
Ở mục Model Access -> chọn nút Modify model access -> Tick vào model Claude 3.5 Sonnet -> Nhấn Submit.
Bạn sẽ có quyền sử dụng model khi trạng thái chuyển sang "Access granted" màu xanh lá.

1.2 Viết code Lambda
Tạo 1 lambda function tên PrivateLinkBedrock, môi trường runtime Python 3.13

Copy đoạn code boto3 hỏi đáp chatbot đơn giản bên dưới đã được chuẩn bị sẵn vào Lambda function -> Nhấn nút Deploy.
(Nếu bạn sử dụng model khác để thực hành, thay đổi ModelID cho phù hợp)
import boto3
import json
def lambda_handler(event, context):
# Câu hỏi người dùng truyền vào
user_question = event.get('question', 'Explain generative AI in simple terms.')
# Khởi tạo client Bedrock Runtime
client = boto3.client('bedrock-runtime', region_name='us-east-1')
# Tạo prompt theo định dạng Anthropic Claude
body = {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 500,
"temperature": 0.7,
"messages": [
{
"role": "user",
"content": user_question
}
]
}
# Gọi model Claude 3.5 Sonnet
response = client.invoke_model(
modelId="anthropic.claude-3-5-sonnet-20240620-v1:0",
body=json.dumps(body),
contentType="application/json",
accept="application/json"
)
# Parse kết quả
result = json.loads(response['body'].read())
answer = result['content'][0]['text']
return {
'statusCode': 200,
'body': answer
}
Tiếp theo, cập nhật role Lambda function cho phép gọi đến Bedrock. Vào tab Configuration -> Permission -> Click Role name. 
Chọn Attach policies -> Thêm quyền AmazonBedrockFullAccess.

2. Create VPC with Private subnets
Truy cập dịch vụ VPC, chọn Create VPC. Chọn option VPC and more
- Nhập tên: Lambda-Bedrock-PrivateLink
- IPv4 CIDR block: 10.0.0.0/16
- Tenancy: Default
- Number of AZs: 2
- Number of public subnets: 0
- Number of private subnets: 2
- NAT gateway: None
- VPC endpoint: None
Nhấn Create VPC.


3. Create a Security Group in the VPC
Tiếp theo, tạo 1 security group bao gồm các thông tin:
- Security group name: Lambda-Bedrock-SG
- Description: Allow all traffics request client from application
- VPC: chọn vpc đã tạo trước đó (Lambda-Bedrock-PrivateLink)
- Inbound rules: All traffic. Source: Anywhere/ 0.0.0.0/0
- Outbound rules: All traffic/ 0.0.0.0/0
Nhấn Create security group.
Lưu ý: Khi triển khai thực tế, mọi người nên giới hạn traffic ở Inbound rules.

4. Connect Your Lambda Functions to Your VPC
- Mặc định, AWS Lambda chạy trong VPC của dịch vụ Lambda, nơi có quyền truy cập Internet công cộng.
- Nếu muốn kết nối Lambda với VPC riêng, hãy sử dụng Hyperplane ENI (Elastic Network Interface).
- Hyperplane ENI hoạt động như một NAT, cho phép truyền dữ liệu từ VPC Lambda sang VPC của bạn.
- Mỗi khi tạo hoặc cập nhật Lambda kết nối VPC, AWS sẽ tạo một Hyperplane ENI cho mỗi subnet được cấu hình.
- Vào IAM role của Lambda function, thêm quyền AWSLambdaVPCAccessExecutionRole

Add the private subnets and security group to the Lambda function's VPC configuration.
Chọn tab Configuration -> Chọn mục VPC -> Chọn nút Edit.

Cấu hình như sau:
- VPC: chọn VPC đã tạo trước đó (Lambda-Bedrock-PrivateLink).
- Subnets: chọn 2 private subnet đã tạo trước đó.
- Security groups: Chọn SG đã tạo trước đó.
Nhấn nút Save.

Bây giờ, Lambda function chạy trong Custom VPC, follow theo như kiến trúc ban đầu.
5. Create a Bedrock VPC Endpoint
Để kết nối VPC và Amazon Bedrock của bạn bằng AWS PrivateLink (Interface VPC endpoint).
Vào VPC -> Chọn Endpoint -> Create endpoint.

Nhập tên Endpoint: lambda-bedrock-endpoint. Chọn Bedrock VPC endpoint as "bedrock runtime".

Chọn VPC và private subnets đã tạo ở trên.

Control Bedrock VPC endpoint access via endpoint policy.
{
"Statement": [
{
"Principal": "*",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource":"*"
}
]
}

Cuối cùng là nhấn Create endpoint. Kết quả sau khi tạo thành công.

6. Test Your GenAI Application With PrivateLink Connection to Amazon Bedrock
Truy cập Lambda function PrivateLinkBedrock, ở tab Test nhập thông tin như bên dưới:
- Event name: TestEvent
- Event json:
{
"question": "AI là gì? giải thích ngắn gọn"
}
Nhấn nút Save và Test.

Check the response:

Clean up resources
- Xóa VPC endpoint

- Xóa VPC, Subnet, SG

- Xóa Lambda function
