IAM Action은 쉽게 말하면:
AWS 리소스에 대해 “어떤 작업을 허용할 것인가”를 정의하는 이름
이다.
예를 들어 DynamoDB에서 데이터를 조회하려면:
"dynamodb:Query"
데이터를 삭제하려면:
"dynamodb:DeleteItem"
여러 데이터를 batch로 삭제하거나 삽입하려면:
"dynamodb:BatchWriteItem"
같은 Action이 필요하다.
AWS 공식 Service Authorization Reference에서도 각 AWS 서비스는 자신만의 Action, Resource, Condition key를 가진다고 설명한다. DynamoDB의 경우 서비스 prefix는 dynamodb, Lambda의 경우 서비스 prefix는 lambda를 사용한다.
IAM Policy는 보통 이런 형태다.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect":"Allow",
"Action": [
"dynamodb:Query",
"dynamodb:BatchWriteItem"
],
"Resource": [
"arn:aws:dynamodb:ap-northeast-2:123456789012:table/ChatMessages"
]
}
]
}
각 필드의 의미는 다음과 같다.
| 필드 | 의미 |
|---|---|
Effect |
허용할지 거부할지 결정. 보통 Allow 또는 Deny |
Action |
허용할 AWS 작업 |
Resource |
해당 권한을 적용할 AWS 리소스 |
Condition |
특정 조건에서만 허용할 때 사용 |
즉, 위 정책은 이런 의미다.
ChatMessages 테이블에 대해
dynamodb:Query와 dynamodb:BatchWriteItem을 허용한다.