DynamoDB 백업 및 복원에 IAM 사용 - Amazon DynamoDB

DynamoDB 백업 및 복원에 IAM 사용

AWS Identity and Access Management(IAM)를 사용하여 일부 리소스에 대한 Amazon DynamoDB 백업 및 복원 작업을 제한할 수 있습니다. CreateBackupRestoreTableFromBackup API는 테이블 단위로 작동합니다.

DynamoDB에서 IAM 정책을 사용하는 방법에 대한 자세한 내용은 DynamoDB에 대한 자격 증명 기반 정책 단원을 참조하세요.

다음은 DynamoDB에서 특정 백업 및 복원 기능을 구성하는 데 사용할 수 있는 IAM 정책의 예입니다.

예 1: CreateBackup 및 RestoreTableFromBackup 작업 허용

다음 IAM 정책은 모든 테이블에서 CreateBackupRestoreTableFromBackup DynamoDB 작업을 수행할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:CreateBackup", "dynamodb:RestoreTableFromBackup", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchWriteItem" ], "Resource": "*" } ] }
중요

소스 백업에는 DynamoDB RestoreTableFromBackup 권한이 필요하며, 복원 기능을 위해서는 대상 테이블에 대한 DynamoDB 읽기 및 쓰기 권한이 필요합니다.

소스 테이블에는 DynamoDB RestoreTableToPointInTime 권한이 필요하며, 복원 기능을 위해서는 대상 테이블에 대한 DynamoDB 읽기 및 쓰기 권한이 필요합니다.

예 2: CreateBackup 허용 및 RestoreTableFromBackup 거부

다음 IAM 정책은 CreateBackup 작업에 대한 권한을 부여하고, RestoreTableFromBackup 작업을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:CreateBackup"], "Resource": "*" }, { "Effect": "Deny", "Action": ["dynamodb:RestoreTableFromBackup"], "Resource": "*" } ] }

예 3: ListBackups 허용, CreateBackup과 RestoreTableFromBackup 거부

다음 IAM 정책은 ListBackups 작업에 대한 권한을 부여하고, CreateBackupRestoreTableFromBackup 작업을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:ListBackups"], "Resource": "*" }, { "Effect": "Deny", "Action": [ "dynamodb:CreateBackup", "dynamodb:RestoreTableFromBackup" ], "Resource": "*" } ] }

예 4: ListBackups 허용 및 DeleteBackup 거부

다음 IAM 정책은 ListBackups 작업에 대한 권한을 부여하고, DeleteBackup 작업을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:ListBackups"], "Resource": "*" }, { "Effect": "Deny", "Action": ["dynamodb:DeleteBackup"], "Resource": "*" } ] }

예 5: 모든 리소스에 대해 RestoreTableFromBackup 및 DescribeBackup 허용, 특정 백업에 대해 DeleteBackup 거부

다음 IAM 정책은 특정 백업 리소스에 대해 RestoreTableFromBackupDescribeBackup 작업에 대한 권한을 부여하고, DeleteBackup 작업을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeBackup", "dynamodb:RestoreTableFromBackup", ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d" }, { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchWriteItem" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "dynamodb:DeleteBackup" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d" } ] }
중요

소스 백업에는 DynamoDB RestoreTableFromBackup 권한이 필요하며, 복원 기능을 위해서는 대상 테이블에 대한 DynamoDB 읽기 및 쓰기 권한이 필요합니다.

소스 테이블에는 DynamoDB RestoreTableToPointInTime 권한이 필요하며, 복원 기능을 위해서는 대상 테이블에 대한 DynamoDB 읽기 및 쓰기 권한이 필요합니다.

예 6: 특정 테이블에 대해 CreateBackup 허용

다음 IAM 정책은 Movies 테이블에서만 CreateBackup 작업에 대한 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:CreateBackup"], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/Movies" ] } ] }

예 7: ListBackups 허용

다음 IAM 정책은 ListBackups 작업에 대한 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:ListBackups"], "Resource": "*" } ] } }
중요

특정 테이블에서 ListBackups 작업에 대한 권한을 부여할 수 없습니다.

예제 8: AWS Backup 기능에 액세스 허용

고급 기능이 포함된 성공적인 백업을 위해서는 StartAwsBackupJob 작업에 대한 API 권한이 필요하고 해당 백업을 성공적으로 복원하려면 dynamodb:RestoreTableFromAwsBackup 작업에 대한 API 권한이 필요합니다.

다음 IAM 정책은 AWS Backup에 고급 기능 및 복원을 사용하여 백업을 트리거할 수 있는 권한을 부여합니다. 또한 테이블이 암호화된 경우 정책에서 AWS KMS 키에 액세스할 수 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeQueryScanBooksTable", "Effect": "Allow", "Action": [ "dynamodb:StartAwsBackupJob", "dynamodb:DescribeTable", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Books" }, { "Sid": "AllowRestoreFromAwsBackup", "Effect": "Allow", "Action": ["dynamodb:RestoreTableFromAwsBackup"], "Resource": "*" }, ] }

예제 9: 특정 소스 테이블에 대한 RestoreTableToPointInTime 거부

다음 IAM 정책은 특정 소스 테이블에 대한 RestoreTableToPointInTime 작업 권한을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:RestoreTableToPointInTime" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music" } ] }

예제 10: 특정 소스 테이블의 모든 백업에 대한 RestoreTableFromBackup 거부

다음 IAM 정책은 특정 소스 테이블의 모든 백업에 대한 RestoreTableToPointInTime 작업 권한을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:RestoreTableFromBackup" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/*" } ] }