DynamoDB를 활용한 임무 문서 생성기 구축을 목표로 합니다.
DynamoDB 테이블을 생성하고 데이터를 추가하며, 데이터 접근을 제어할 IAM 역할과 정책 구조로 실습하려고 하며, 이후 Lambda 함수와 API Gateway를 통해 DynamoDB와 연동하는 API를 만들고, 완성된 애플리케이션을 웹에 게시하려고 합니다.
이번 실습은 DynamoDB와 IAM 그리고 AWS Lambda 기본 개념을 바탕으로, 실전에서 활용할 수 있는 AWS 데이터베이스 설계 및 보안 관리를 숙지하는데 목적으로 진행하겠습니다.


우선 정보를 저장할 DynamoDB 테이블(SuperMission)을 생성해, 이후 데이터 저장 및 조회의 기반을 마련합니다.
파티션 키(Primary Key)는 String 타입로 설정을 해서 테이블을 생성하면, 데이터를 고유하게 저장할 수 있는 구조가 완성됩니다.
이후, 생성한 테이블에 실제 임무 데이터를 입력해, DynamoDB의 데이터 저장 구조와 방식을 알 수 있습니다.
이 과정을 통해 DynamoDB에 데이터를 저장하는 기본적인 방법을 알 수 있었습니다.

핵심 포인트
각 항목은 독립적인 JSON 객체로 입력해야 하며, 테이블의 기본 키(예: SuperHero)가 반드시 포함되어야 합니다.
콘솔에서는 한 번에 하나의 항목만 추가할 수 있습니다. 여러 항목을 한 번에 추가하려면 AWS CLI, SDK, 또는 별도의 스크립트를 사용해야 합니다.
JSON 편집기는 DynamoDB 항목의 구조를 명확하게 정의하고, 빠르게 여러 속성을 입력할 수 있는 방법입니다.
이 과정을 통해 AWS 콘솔에서 DynamoDB에 데이터를 입력하는 실습을 완료할 수 있습니다.
DynamoDB 데이터 접근을 제어하는 IAM 역할과 정책을 확인합니다. 다음 실습에서 Lambda 함수 등 AWS 서비스가 안전하게 DynamoDB와 상호작용할 수 있도록, 미리 생성된 두 가지 IAM 역할의 정책 구조를 이해하는 것이 목표입니다.

역할: SuperDynamoDBScanRole
정책: SuperDynamoDBScanPolicy
정책 내용 요약:
예시 정책:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"dynamodb:Scan",
"s3:GetObject",
"s3:PutObject",
"dynamodb:BatchWriteItem"
],
"Resource": ["*"],
"Effect": "Allow"
}
]
}

역할: SuperDynamoDBQueryRole
정책: SuperDynamoDBQueryPolicy
정책 내용 요약:
예시 정책:
{
"Version": "2012-10-17",
"Statement": [
{
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:Attributes": [
"SuperHero",
"MissionStatus",
"Villain1",
"Villain2",
"Villain3"
]
}
},
"Action": ["dynamodb:Query"],
"Resource": "*",
"Effect": "Allow"
}
]
}
핵심 포인트
역할과 정책을 통해 AWS 리소스 접근 권한을 최소화하고, 필요한 작업만 허용하는 보안 원칙을 실습합니다.
SuperDynamoDBScanRole은 전체 테이블 스캔 및 일괄 쓰기 등 광범위한 권한이 필요할 때 사용합니다.
SuperDynamoDBQueryRole은 특정 속성만 쿼리하도록 제한해, 데이터 노출을 최소화합니다.
Lambda 등 AWS 서비스가 이 역할을 사용해 안전하게 DynamoDB에 접근할 수 있습니다.
DynamoDB 테이블 생성, 데이터 입력, 그리고 안전한 데이터 접근을 위한 IAM 역할 및 정책 검토까지, 다음 단계 실습을 위한 인프라 준비가 완료되었습니다.