【AWS 공부 메모】Serverless Framework로 암호화를 지원한 DynamoDB 테이블을 작성
목차
1. Serverless Framework로 환경 구축
실행 환경
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.4
BuildVersion: 17E202
$ sls -v
1.27.1
환경 구축
DynamoDB를 생성하기 위한 프로젝트 만들기
$ sls create --template aws-nodejs --path createDynamoDB
$ cd createDynamoDB/
$ rm handler.js
$ tree
.
└── serverless.yml
0 directories, 1 files
serverless.ymlservice: createDynamoDB
provider:
name: aws
profile: serverless-admin
region: ap-northeast-1 # 東京リージョン
iamRoleStatements:
- Effect: "Allow"
Action:
- dynamodb:GetItem
- dynamodb:UpdateItem
Resource: "arn:aws:dynamodb:ap-northeast-1:xxxxxxxxxxx:table/*"
resources:
Resources:
DynamoDbHeight:
Type: 'AWS::DynamoDB::Table'
Properties:
TableName: height
AttributeDefinitions:
- AttributeName: user_id
AttributeType: S
KeySchema:
- AttributeName: user_id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
SSESpecification:
SSEEnabled: true # 暗号化を有効化
Tags:
- Key: name
Value: Dev # 開発用をわかるようにタグを付ける
DynamoDbWeight:
Type: 'AWS::DynamoDB::Table'
Properties:
TableName: weight
AttributeDefinitions:
- AttributeName: user_id
AttributeType: S
KeySchema:
- AttributeName: user_id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
SSESpecification:
SSEEnabled: false # 暗号化しない
Tags:
- Key: name
Value: Dev # 開発用をわかるようにタグを付ける
환경 배포
$ sls deploy -v
Serverless: Packaging service...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
CloudFormation - CREATE_IN_PROGRESS - AWS::CloudFormation::Stack - createDynamoDB-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - createDynamoDB-dev
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
CloudFormation - UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - createDynamoDB-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbWeight
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbHeight
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbWeight
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbHeight
CloudFormation - CREATE_COMPLETE - AWS::DynamoDB::Table - DynamoDbWeight
CloudFormation - CREATE_COMPLETE - AWS::DynamoDB::Table - DynamoDbHeight
CloudFormation - UPDATE_COMPLETE_CLEANUP_IN_PROGRESS - AWS::CloudFormation::Stack - createDynamoDB-dev
CloudFormation - UPDATE_COMPLETE - AWS::CloudFormation::Stack - createDynamoDB-dev
Serverless: Stack update finished...
Service Information
service: createDynamoDB
stage: dev
region: ap-northeast-1
stack: createDynamoDB-dev
api keys:
None
endpoints:
None
functions:
None
Stack Outputs
ServerlessDeploymentBucketName: createdynamodb-dev-serverlessdeploymentbucket-mjtk4r2bqc01
암호화된 height 테이블과 암호화되지 않은 weight 테이블이 생성되었는지 AWS Management Console에서 확인
환경 삭제
$ sls remove
Serverless: Getting all objects in S3 bucket...
Serverless: Removing objects in S3 bucket...
Serverless: Removing Stack...
Serverless: Checking Stack removal progress...
.....
Serverless: Stack removal finished...
2. 주의사항
저장 시 Amazon DynamoDB 암호화에서 설명한 것처럼 DynamoDB 테이블을 새로 만들 때만 데이터를 암호화 할 수 있습니다. 암호화되지 않은 기존 테이블에서 데이터를 암호화하는 것은 2018 년 7 월 9 일 현재 지원되지 않습니다.
저장시 암호화는 새 DynamoDB 테이블을 만들 때만 사용할 수 있습니다. 현재 기존 테이블에서 저장 시 암호화를 활성화할 수 없습니다. 저장 시 암호화를 활성화하면 비활성화할 수 없습니다. 기밀 데이터를 포함한 모든 테이블에서 암호화를 활성화하는 것이 좋습니다.
3. 보충
AWS Management Console에서 암호화 된 테이블을 생성하는 경우 테이블을 생성 할 때 "기본 설정 사용"을 선택 취소하고 "저장시 암호화"를 선택합니다.
Reference
이 문제에 관하여(【AWS 공부 메모】Serverless Framework로 암호화를 지원한 DynamoDB 테이블을 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akatsukaha/items/7ffd5a7eb230cf3607f2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.4
BuildVersion: 17E202
$ sls -v
1.27.1
$ sls create --template aws-nodejs --path createDynamoDB
$ cd createDynamoDB/
$ rm handler.js
$ tree
.
└── serverless.yml
0 directories, 1 files
service: createDynamoDB
provider:
name: aws
profile: serverless-admin
region: ap-northeast-1 # 東京リージョン
iamRoleStatements:
- Effect: "Allow"
Action:
- dynamodb:GetItem
- dynamodb:UpdateItem
Resource: "arn:aws:dynamodb:ap-northeast-1:xxxxxxxxxxx:table/*"
resources:
Resources:
DynamoDbHeight:
Type: 'AWS::DynamoDB::Table'
Properties:
TableName: height
AttributeDefinitions:
- AttributeName: user_id
AttributeType: S
KeySchema:
- AttributeName: user_id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
SSESpecification:
SSEEnabled: true # 暗号化を有効化
Tags:
- Key: name
Value: Dev # 開発用をわかるようにタグを付ける
DynamoDbWeight:
Type: 'AWS::DynamoDB::Table'
Properties:
TableName: weight
AttributeDefinitions:
- AttributeName: user_id
AttributeType: S
KeySchema:
- AttributeName: user_id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
SSESpecification:
SSEEnabled: false # 暗号化しない
Tags:
- Key: name
Value: Dev # 開発用をわかるようにタグを付ける
$ sls deploy -v
Serverless: Packaging service...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
CloudFormation - CREATE_IN_PROGRESS - AWS::CloudFormation::Stack - createDynamoDB-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - createDynamoDB-dev
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
CloudFormation - UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - createDynamoDB-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbWeight
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbHeight
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbWeight
CloudFormation - CREATE_IN_PROGRESS - AWS::DynamoDB::Table - DynamoDbHeight
CloudFormation - CREATE_COMPLETE - AWS::DynamoDB::Table - DynamoDbWeight
CloudFormation - CREATE_COMPLETE - AWS::DynamoDB::Table - DynamoDbHeight
CloudFormation - UPDATE_COMPLETE_CLEANUP_IN_PROGRESS - AWS::CloudFormation::Stack - createDynamoDB-dev
CloudFormation - UPDATE_COMPLETE - AWS::CloudFormation::Stack - createDynamoDB-dev
Serverless: Stack update finished...
Service Information
service: createDynamoDB
stage: dev
region: ap-northeast-1
stack: createDynamoDB-dev
api keys:
None
endpoints:
None
functions:
None
Stack Outputs
ServerlessDeploymentBucketName: createdynamodb-dev-serverlessdeploymentbucket-mjtk4r2bqc01
$ sls remove
Serverless: Getting all objects in S3 bucket...
Serverless: Removing objects in S3 bucket...
Serverless: Removing Stack...
Serverless: Checking Stack removal progress...
.....
Serverless: Stack removal finished...
저장 시 Amazon DynamoDB 암호화에서 설명한 것처럼 DynamoDB 테이블을 새로 만들 때만 데이터를 암호화 할 수 있습니다. 암호화되지 않은 기존 테이블에서 데이터를 암호화하는 것은 2018 년 7 월 9 일 현재 지원되지 않습니다.
저장시 암호화는 새 DynamoDB 테이블을 만들 때만 사용할 수 있습니다. 현재 기존 테이블에서 저장 시 암호화를 활성화할 수 없습니다. 저장 시 암호화를 활성화하면 비활성화할 수 없습니다. 기밀 데이터를 포함한 모든 테이블에서 암호화를 활성화하는 것이 좋습니다.
3. 보충
AWS Management Console에서 암호화 된 테이블을 생성하는 경우 테이블을 생성 할 때 "기본 설정 사용"을 선택 취소하고 "저장시 암호화"를 선택합니다.
Reference
이 문제에 관하여(【AWS 공부 메모】Serverless Framework로 암호화를 지원한 DynamoDB 테이블을 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akatsukaha/items/7ffd5a7eb230cf3607f2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【AWS 공부 메모】Serverless Framework로 암호화를 지원한 DynamoDB 테이블을 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akatsukaha/items/7ffd5a7eb230cf3607f2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)