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/*"
}
]
}