flowchart TD
subgraph VPC["VPC"]
direction TB
Lambda[Lambda 함수]
Aurora[Aurora DB]
S3Endpoint[VPC 엔드포인트 (S3)]
S3[S3 버킷]
Lambda -- "IAM DB 인증" --> Aurora
Lambda -- "VPC 엔드포인트 접근" --> S3Endpoint
S3Endpoint -- "S3 접근" --> S3
end
subgraph IAM["IAM 서비스"]
IAMRole[IAM 역할]
end
subgraph Internet["인터넷"]
InternetConnection[인터넷 연결 차단]
end
KMS["AWS KMS 관리형 키"]
IAMRole -- "DB 접근 권한 부여" --> Lambda
Aurora -- "IAM DB 인증 활성화" --> IAMRole
Lambda -- "IAM 역할 변경" --> IAMRole
Lambda -- "S3 버킷 접근" --> S3Endpoint
S3 -- "SSE-KMS 암호화" --> KMS
InternetConnection -.->|데이터 이동 차단| VPC
Note[노트]
Note -->|1. IAM DB 인증 활성화| Aurora
Note -->|2. Lambda 함수의 IAM 역할 변경| Lambda
Note -->|3. VPC 엔드포인트 배포| S3Endpoint
- IAM DB 인증 활성화:
- Amazon Aurora DB에서 IAM DB 인증을 활성화합니다.
- Lambda 함수의 IAM 역할에 Aurora DB에 접근할 수 있는 권한을 부여합니다.
- Lambda 함수의 IAM 역할 변경:
- Lambda 함수의 IAM 역할을 변경하여 IAM DB 인증을 통해 Aurora DB에 접근할 수 있도록 합니다.
- VPC 엔드포인트 배포:
- Amazon S3용 VPC 엔드포인트를 배포하여 Lambda 함수가 인터넷을 통하지 않고 S3 버킷에 접근할 수 있도록 합니다.
IAM 역할 정책 예시
Lambda 함수의 IAM 역할 정책 예시:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds-db:connect"
],
"Resource": [
"arn:aws:rds-db:<region>:<account-id>:dbuser:<db-cluster-id>/<db-username>"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<your-s3-bucket>/*"
]
}
]
}
VPC 엔드포인트 정책 예시:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::<your-s3-bucket>/*"
]
}
]
}