AWS Organizations Policy 을 이용한 크로스어카운트 백업설정
개요
AWS Organizations의 백업 정책를 사용하여 Cross-Account Backup을 중앙에서 관리하는 방법을 설명합니다.
아키텍처
[Management Account]
│
├── 백업 정책 생성 & OU에 배포
│
▼
[Source Account (Member)] [Destination Account (Member)]
│ │
EC2/EBS 등 Backup Vault (CMK)
Tag: Backup=true ▲
│ │
└────── 자동 Backup & Copy ─────────────┘
사전 요건
- AWS Organizations 구성 완료
- Source Account, Destination Account가 동일 Organization 소속
- Management Account 접근 권한
Step 1: Management Account에서 Cross-account management 활성화
1-1. AWS Backup 콘솔 이동
Management Account → AWS Backup → 설정
1-2. 크로스 계정 관리 활성화
| 설정 | 값 |
|---|---|
| 계정 간 백업 | 켜기 |
| 크로스 계정 모니터링 | 켜기 (선택) |

Step 2: Source , Destination Account에서 KMS CMK 생성
2-1. KMS 콘솔 이동
Source , Destination Account → KMS → 고객 관리형 키 → 키 생성
2-2. Key 설정
| 항목 | 값 |
|---|---|
| 키 유형 | 대칭 |
| 키 사용 | 암호화 및 해독 |
| 별칭 | backup-vault-key (예시) |
2-3. 키 정책 설정
기본 Policy에 아래 Statement 추가:
Destination 어카운트
{
"Sid": "AllowSourceAccountForCrossAccountBackup",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<SOURCE_ACCOUNT_ID>:role/service-role/AWSBackupDefaultServiceRole"
},
"Action": [
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:DescribeKey"
],
"Resource": "*"
}
Source 어카운트
{
"Sid": "AllowSourceAccountForCrossAccountBackup",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<Destination_ACCOUNT_ID>:role/service-role/AWSBackupDefaultServiceRole"
},
"Action": [
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:DescribeKey"
],
"Resource": "*"
}

Step 3: Source , Destination Account에서 Backup Vault 생성
3-1. Backup Vault 생성
Destination Account → AWS Backup → 볼트 → 새 볼트 생성
| 항목 | 값 |
|---|---|
| 볼트 이름 | test-destination-vault ,test-source-vault(예시) |
| 암호화 키 | Step 2에서 생성한 CMK 선택 |

3-2. Vault Access Policy 설정
생성된 Vault 선택 → 액세스 정책 → **편집
Organization 또는 OU 전체 허용 (선택)**
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "backup:CopyIntoBackupVault",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "<YOUR_ORG_ID>"
}
}
}
]
}

Step 4: Source Account에서 EBS 암호화용 CMK 설정
4-1. KMS CMK 생성 (또는 기존 CMK 사용)
Source Account → KMS → 고객 관리형 키 → 키 생성
4-2. 키 정책에 Destination 권한 추가
{
"Sid": "AllowDestinationAccountForCrossAccountBackup",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<DESTINATION_ACCOUNT_ID>:role/aws-service-role/backup.amazonaws.com/AWSServiceRoleForBackup"
},
"Action": [
"kms:Decrypt",
"kms:DescribeKey",
"kms:CreateGrant"
],
"Resource": "*"
}
4-3. EBS 기본 암호화 설정 (권장)
Source Account → EC2 → 설정 → EBS 암호화
| 항목 | 값 |
|---|---|
| 새 EBS 볼륨을 항상 암호화 | 활성화 |
| 기본 암호화 키 | Step 4-1에서 생성한 CMK 선택 |
Step 5: Management Account에서 백업 정책 생성
5-1. 백업 정책 활성화
Management Account → AWS Organizations → 정책 → 백업 정책 → 활성화
5-2. 정책 생성
정책 생성 클릭
| 항목 | 값 |
|---|---|
| Policy name | CrossAccountBackupPolicy (예시) |
5-3. Policy JSON
{
"plans": {
"CrossAccountBackupPlan": {
"regions": {
"@@assign": ["ap-northeast-1"]
},
"rules": {
"DailyBackupRule": {
"schedule_expression": {
"@@assign": "cron(0 5 ? * * *)"
},
"start_backup_window_minutes": {
"@@assign": "60"
},
"complete_backup_window_minutes": {
"@@assign": "180"
},
"target_backup_vault_name": {
"@@assign": "Default"
},
"lifecycle": {
"delete_after_days": {
"@@assign": "30"
}
},
"copy_actions": {
"arn:aws:backup:ap-northeast-1:<DEST_ACCOUNT_ID>:backup-vault:cross-account-vault": {
"target_backup_vault_arn": {
"@@assign": "arn:aws:backup:ap-northeast-1:<DEST_ACCOUNT_ID>:backup-vault:cross-account-vault"
},
"lifecycle": {
"delete_after_days": {
"@@assign": "90"
}
}
}
}
}
},
"selections": {
"tags": {
"BackupSelection": {
"iam_role_arn": {
"@@assign": "arn:aws:iam::$account:role/service-role/AWSBackupDefaultServiceRole"
},
"tag_key": {
"@@assign": "Backup"
},
"tag_value": {
"@@assign": ["true"]
}
}
}
}
}
}
}
Step 6: Policy를 OU 혹은 계정 에 Attach
6-1. Policy Attach
Management Account → AWS Organizations → 정책 → 백업 정책
- 생성한 정책 선택
- 작업 → 정책연결
- Source Account가 속한 OU 혹은 계정을 선택

6-2. 확인
Source Account → AWS Backup → 백업 계획
→ CrossAccountBackupPlan이 자동 생성되어 있으면 성공!
설정 요약
| Account | 설정 항목 | 내용 |
|---|---|---|
| Management | Cross-account management | 활성화 |
| Management | 백업 정책 | 생성 & OU에 Attach |
| Destination | KMS CMK | 생성 + Source Role 권한 추가 |
| Destination | Backup Vault | CMK로 생성 + Access Policy |
| Source | KMS CMK | 생성 + Destination Role 권한 추가 |
| Source | EBS 암호화 | CMK로 설정 |
| Source | 리소스 Tag | Backup=true |
CMK가 필요한이유
Source EBS → CMK 필요
Destination의 AWSServiceRoleForBackup이 Source EBS를 Decrypt 해야 함
│
▼
aws/ebs (Managed Key)는 키 정책 수정 불가 → 권한 부여 불가 ❌
CMK는 키 정책 수정 가능 → Destination Role 권한 추가 ✅
Destination Vault → CMK 필요
Source의 Role이 Destination Vault에 데이터를 Encrypt 해야 함
│
▼
aws/backup (Managed Key)는 키 정책 수정 불가 → 권한 부여 불가 ❌
CMK는 키 정책 수정 가능 → Source Role 권한 추가 ✅
흔한 에러와 해결
| 에러 메시지 | 원인 | 해결 |
|---|---|---|
Cross-account backup is not enabled |
Management Account에서 미활성화 | Step 1 수행 |
Access Denied trying to call AWS Backup service |
Vault Access Policy 누락 또는 Source IAM Role 권한 부족 | Step 3-2 확인 / AWSBackupServiceRolePolicyForBackup 확인 |
KMS key access denied |
Source CMK 키 정책 미설정 | Step 4-2 확인 |
Cannot use default vault |
Destination이 Default vault 사용 | CMK로 새 Vault 생성 |
Snapshots encrypted with the AWS Managed CMK can't be shared |
Source EBS가 aws/ebs로 암호화됨 | 아래 대응 방법 참조 |
Backup plan not appearing in member account |
Policy가 OU에 미연결 | Step 6 확인 |
콘솔 방식 vs Organizations Policy 비교
| 항목 | 콘솔 방식 | Organizations Policy |
|---|---|---|
| 설정 위치 | 각 Source Account | Management Account (중앙) |
| Backup Plan 관리 | Account별 개별 관리 | 중앙 집중 관리 |
| 신규 Account 적용 | 수동 설정 필요 | OU설정시 자동 적용 |
| 대규모 환경 | 번거로움 | 효율적 |







