시작하기 전에
인증 ( Authentication )
접근 제어 ( Access Control )
Request를 인증할 Credentail이 있다하더라도, DynamoDB 접근할 권한이 없다면 아무것도 할 수 없다. 예를 들어, DynamoDB table를 만들 수 있는 권한을 계정에 줘야 한다. DynamoDB를 위한 권한을 어떻게 관리하는지 살펴보자.
DynamoDB resource에 접근하기 위한 권한 관리
DynamoDB 리소스 및 작업
Resource Type | ARN Format |
---|---|
Table | arn:aws:dynamodb: |
Index | arn:aws:dynamodb: /index/ |
Stream | arn:aws:dynamodb: /stream/ |
DynamoDB는 위의 리소스들을 처리하기 위한 API들을 제공한다. 권한 쪽에 집중하기 위해 API는 다음 포스팅에서 살펴보도록 하겠다.
DynamoDB 리소스 접근 관리
- user나 group에 권한 정책 부여하기 - 사용자에게 Table 생성 권한을 주거나 사용자가 속한 그룹에 해당 권한을 주는 형태
- role에 권한 정책 부여하기 ( cross-account permission 주기 ) - 다른 AWS account에게도 만들어진 role을 부여할 수 있다고 한다. ( 왜 이렇게 하는거지?, 얻는 장점이 뭘까? - update 예정 )
다음은 하나의 DynamoDB 작업 권한을 부여하는 정책 예제다.
{
"Statement": [
{
"Sid" : "ListTables",
"Effect": "Allow",
"Action": [
"dynamodb: ListTables"
],
"Resource":"db_my_table"
}
]
}
정책 요소 지정
DynamoDB 리소스마다 API를 정의한다. API 동작마다 권한을 주기 위해, DynamoDB는 권한 정책을 구체화한 action을 정의해놨다. 자세한 정보를 확인하고 싶다면, https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/api-permissions-reference.html 해당 페이지의 표를 참조하자.
정책 요소의 구성을 살펴보면
- Resource - 정책을 적용할 리소스
- Action - 예를 들어 dynamodb:Query를 사용하여 DynamoDB에서 Query작업을 수행할 수 있도록 권한을 줄 수 있다.
- Effect - ??
- Principal - 해당 정책이 연결된 사용자를 가리킨다.
작성 중....
모범 사례를 살펴보자 ( https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html )
'DevOps > AWS' 카테고리의 다른 글
CloudFront란? (0) | 2018.12.26 |
---|---|
AWS DynamoDB - (3) AWS SDK for Java 설정하기 (0) | 2018.07.20 |
AWS DynamoDB - (1) Local with Docker + Spring Boot 연동 (0) | 2018.07.18 |
퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC 구축 (1) - VPC 설정 (0) | 2018.07.11 |
Private Subnet에 RDS 구축 및 연결하기 ( Hiding a DB Instance in a VPC from the Internet ) (0) | 2018.07.05 |