IT/AWS

AWS Lambda 함수 및 Amazon Aurora DB와의 연동에 대한 보안 설정과정

막걸리조아 2024. 6. 4. 05:51
반응형

 

 

 

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

 

  1. IAM DB 인증 활성화:
    • Amazon Aurora DB에서 IAM DB 인증을 활성화합니다.
    • Lambda 함수의 IAM 역할에 Aurora DB에 접근할 수 있는 권한을 부여합니다.
  2. Lambda 함수의 IAM 역할 변경:
    • Lambda 함수의 IAM 역할을 변경하여 IAM DB 인증을 통해 Aurora DB에 접근할 수 있도록 합니다.
  3. 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>/*"
            ]
        }
    ]
}
반응형