

# 전역 테이블에 IAM 사용
<a name="gt_IAM"></a>

**중요**  
 이 설명서는 버전 2017.11.29(레거시)의 글로벌 테이블에 대한 것이므로 새 글로벌 테이블의 경우 사용하지 않아야 합니다. 가능하면 [글로벌 테이블 버전 2019.11.21(현재)](GlobalTables.md)을 사용해야 합니다. 이는 2017.11.29(레거시)보다 유연성과 효율성이 뛰어나고 쓰기 용량을 적게 소비합니다.  
사용 중인 버전을 확인하려면 [글로벌 테이블 버전 확인](V2globaltables_versions.md#globaltables.DetermineVersion) 섹션을 참조하세요. 기존 전역 테이블을 버전 2017.11.29(레거시)에서 버전 2019.11.21(현재)로 업데이트하는 경우 [DynamoDB 글로벌 테이블 버전](V2globaltables_versions.md) 섹션을 참조하세요.

전역 테이블을 처음으로 생성하는 경우, Amazon DynamoDB는 사용자를 위한 AWS Identity and Access Management(IAM) 서비스 연결 역할을 자동으로 생성합니다. 이름이 [https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/aws-service-role/DynamoDBReplicationServiceRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/aws-service-role/DynamoDBReplicationServiceRolePolicy)인 이 역할은 DynamoDB가 사용자를 대신하여 전역 테이블에 대한 교차 리전 복제를 관리하도록 허용합니다. 이 서비스 연결 역할을 삭제하지 마세요. 삭제하면 모든 전역 테이블이 더 이상 작동하지 않습니다.

서비스 연결 역할에 대한 자세한 내용은 *IAM 사용 설명서*의 [서비스 연결 역할 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)을 참조하세요

DynamoDB에서 전역 테이블을 생성하고 관리하려면 다음의 각 항목에 액세스할 수 있는 `dynamodb:CreateGlobalTable` 권한이 있어야 합니다.
+ 추가하려는 복제본 테이블.
+ 이미 전역 테이블의 요소인 각각의 기존 복제본.
+ 전역 테이블 자체.

DynamoDB의 전역 테이블에 대한 설정(`UpdateGlobalTableSettings`)을 업데이트하려면 `dynamodb:UpdateGlobalTable`, `dynamodb:DescribeLimits`, `application-autoscaling:DeleteScalingPolicy` 및 `application-autoscaling:DeregisterScalableTarget` 권한이 있어야 합니다.

 기존 조정 정책을 업데이트할 때 `application-autoscaling:DeleteScalingPolicy` 및 `application-autoscaling:DeregisterScalableTarget` 권한이 필요합니다. 이렇게 하면 새로운 정책을 테이블이나 보조 인덱스에 연결하기 전에 전역 테이블 서비스가 기존의 조정 정책을 제거할 수 있습니다.

IAM 정책을 사용하여 하나의 복제 테이블에 대한 액세스 권한을 관리하는 경우, 해당 전역 테이블의 모든 다른 복제본에 동일한 정책을 적용해야 합니다. 이렇게 하면 모든 복제본 테이블에서 일관된 권한 모델을 유지할 수 있습니다.

전역 테이블의 모든 복제본에 동일한 IAM 정책을 사용함으로써, 전역 테이블 데이터에 대한 읽기 및 쓰기 액세스 권한을 의도치 않게 부여하는 것을 방지할 수도 있습니다. 예를 들어, 전역 테이블의 한 복제본에만 액세스할 수 있는 사용자를 고려합니다. 해당 사용자가 이 복제본에 쓸 수 있는 경우, DynamoDB는 다른 모든 복제 테이블에 쓰기를 전파합니다. 실제로 사용자는 전역 테이블의 모든 다른 복제본에 (간접적으로) 쓸 수 있습니다. 이 시나리오는 모든 복제본 테이블에 일관된 IAM 정책을 사용하여 방지할 수 있습니다.

## 예: CreateGlobalTable 작업 허용
<a name="access-policy-gt-example1"></a>

전역 테이블에 복제본을 추가할 수 있으려면 전역 테이블과 해당하는 각 복제본 테이블에 대한 `dynamodb:CreateGlobalTable` 권한이 있어야 합니다.

다음 IAM 정책은 모든 테이블에서의 `CreateGlobalTable` 작업을 허용할 수 있는 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["dynamodb:CreateGlobalTable"],
            "Resource": "*"
        }
    ]
}
```

------

## 예: UpdateGlobalTable, DescribeLimits, application-autoscaling:DeleteScalingPolicy 및 application-autoscaling:DeregisterScalableTarget 작업 허용
<a name="access-policy-gt-example2"></a>

DynamoDB의 전역 테이블에 대한 설정(`UpdateGlobalTableSettings`)을 업데이트하려면 `dynamodb:UpdateGlobalTable`, `dynamodb:DescribeLimits`, `application-autoscaling:DeleteScalingPolicy` 및 `application-autoscaling:DeregisterScalableTarget` 권한이 있어야 합니다.

다음 IAM 정책은 모든 테이블에서의 `UpdateGlobalTableSettings` 작업을 허용할 수 있는 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateGlobalTable",
                "dynamodb:DescribeLimits",
                "application-autoscaling:DeleteScalingPolicy",
                "application-autoscaling:DeregisterScalableTarget"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 예: 특정 리전에만 허용된 복제본이 있는 특정 전역 테이블 이름에 대한 CreateGlobalTable 작업 허용
<a name="access-policy-gt-example3"></a>

다음 IAM 정책은 2개의 리전에 복제본이 있는 `CreateGlobalTable`라는 글로벌 테이블을 생성하는 `Customers` 작업을 허용하기 위해 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dynamodb:CreateGlobalTable",
            "Resource": [
                "arn:aws:dynamodb::123456789012:global-table/Customers",
                "arn:aws:dynamodb:us-east-1:123456789012:table/Customers",
                "arn:aws:dynamodb:us-west-1:123456789012:table/Customers"
            ]
        }
    ]
}
```

------