DynamoDB 백업 및 복원에 IAM 사용
AWS Identity and Access Management(IAM)를 사용하여 일부 리소스에 대한 Amazon DynamoDB 백업 및 복원 작업을 제한할 수 있습니다. CreateBackup
및 RestoreTableFromBackup
API는 테이블 단위로 작동합니다.
DynamoDB에서 IAM 정책을 사용하는 방법에 대한 자세한 내용은 DynamoDB에 대한 자격 증명 기반 정책 단원을 참조하세요.
다음은 DynamoDB에서 특정 백업 및 복원 기능을 구성하는 데 사용할 수 있는 IAM 정책의 예입니다.
예 1: CreateBackup 및 RestoreTableFromBackup 작업 허용
다음 IAM 정책은 모든 테이블에서 CreateBackup
및 RestoreTableFromBackup
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
작업에 대한 권한을 부여하고, CreateBackup
및 RestoreTableFromBackup
작업을 거부합니다.
{ "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 정책은 특정 백업 리소스에 대해 RestoreTableFromBackup
및 DescribeBackup
작업에 대한 권한을 부여하고, 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/*" } ] }