

# DynamoDB용 PartiQL을 사용하는 IAM 보안 정책
<a name="ql-iam"></a>

다음 권한이 필요합니다.
+ DynamoDB용 PartiQL을 사용하여 항목을 읽으려면 테이블 또는 인덱스에 대한 `dynamodb:PartiQLSelect` 권한이 있어야 합니다.
+ DynamoDB용 PartiQL을 사용하여 항목을 삽입하려면 테이블 또는 인덱스에 대한 `dynamodb:PartiQLInsert` 권한이 있어야 합니다.
+ DynamoDB용 PartiQL을 사용하여 항목을 업데이트하려면 테이블 또는 인덱스에 대한 `dynamodb:PartiQLUpdate` 권한이 있어야 합니다.
+ DynamoDB용 PartiQL을 사용하여 항목을 삭제하려면 테이블 또는 인덱스에 대한 `dynamodb:PartiQLDelete` 권한이 있어야 합니다.

## 예: 테이블에서 모든 DynamoDB용 PartiQL 문(Select/Insert/Update/Delete) 허용
<a name="access-policy-ql-iam-example1"></a>

다음 IAM 정책은 테이블에서 모든 DynamoDB용 PartiQL 문을 실행할 수 있는 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:PartiQLInsert",
            "dynamodb:PartiQLUpdate",
            "dynamodb:PartiQLDelete",
            "dynamodb:PartiQLSelect"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/Music"
         ]
      }
   ]
}
```

------

## 예: 테이블에서 DynamoDB용 PartiQL select 문 허용
<a name="access-policy-ql-iam-example2"></a>

다음 IAM 정책은 특정 테이블에서 `select` 문을 실행할 수 있는 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:PartiQLSelect"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/Music"
         ]
      }
   ]
}
```

------

## 예: 테이블에서 DynamoDB용 PartiQL insert 문 허용
<a name="access-policy-ql-iam-example3"></a>

다음 IAM 정책은 특정 인덱스에서 `insert` 문을 실행할 수 있는 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:PartiQLInsert"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/Music/index/index1"
         ]
      }
   ]
}
```

------

## 예: 테이블에서 DynamoDB용 PartiQL 트랜잭션 문만 허용
<a name="access-policy-ql-iam-example4"></a>

다음 IAM 정책은 특정 테이블에서 트래잭션 문만 실행할 수 있는 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:PartiQLInsert",
            "dynamodb:PartiQLUpdate",
            "dynamodb:PartiQLDelete",
            "dynamodb:PartiQLSelect"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/Music"
         ],
         "Condition":{
            "StringEquals":{
               "dynamodb:EnclosingOperation":[
                  "ExecuteTransaction"
               ]
            }
         }
      }
   ]
}
```

------

## 예: 테이블에서 DynamoDB용 PartiQL 비트랜잭션 읽기 및 쓰기는 허용하고 PartiQL 트랜잭션 읽기 및 쓰기는 차단
<a name="access-policy-ql-iam-example5"></a>

 다음 IAM 정책은 DynamoDB용 PartiQL 비트랜잭션 읽기 및 쓰기를 실행할 권한은 부여하고 DynamoDB용 PartiQL 트랜잭션 읽기 및 쓰기는 차단합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Deny",
         "Action":[
            "dynamodb:PartiQLInsert",
            "dynamodb:PartiQLUpdate",
            "dynamodb:PartiQLDelete",
            "dynamodb:PartiQLSelect"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/Music"
         ],
         "Condition":{
            "StringEquals":{
               "dynamodb:EnclosingOperation":[
                  "ExecuteTransaction"
               ]
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:PartiQLInsert",
            "dynamodb:PartiQLUpdate",
            "dynamodb:PartiQLDelete",
            "dynamodb:PartiQLSelect"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/Music"
         ]
      }
   ]
}
```

------

## 예: DynamoDB용 PartiQL에서 select 문은 허용하고 전체 테이블 스캔 문은 거부
<a name="access-policy-ql-iam-example6"></a>

다음 IAM 정책은 특정 테이블에서 `select` 문을 실행할 수 있는 권한은 부여하고 전체 테이블이 스캔되는 `select` 문은 차단합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Deny",
         "Action":[
            "dynamodb:PartiQLSelect"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/WatchList"
         ],
         "Condition":{
            "Bool":{
               "dynamodb:FullTableScan":[
                  "true"
               ]
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:PartiQLSelect"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/WatchList"
         ]
      }
   ]
}
```

------