7
7
"github.com/ekristen/libnuke/pkg/registry"
8
8
"github.com/ekristen/libnuke/pkg/resource"
9
9
10
+ "fmt"
11
+
10
12
"github.com/aws/aws-sdk-go/service/backup"
11
13
)
12
14
@@ -60,6 +62,7 @@ func (l *AWSBackupVaultAccessPolicyLister) List(_ context.Context, o interface{}
60
62
if resp .Policy != nil {
61
63
resources = append (resources , & BackupVaultAccessPolicy {
62
64
svc : svc ,
65
+ accountID : opts .AccountID ,
63
66
backupVaultName : * out .BackupVaultName ,
64
67
})
65
68
}
@@ -70,6 +73,7 @@ func (l *AWSBackupVaultAccessPolicyLister) List(_ context.Context, o interface{}
70
73
71
74
type BackupVaultAccessPolicy struct {
72
75
svc * backup.Backup
76
+ accountID * string
73
77
backupVaultName string
74
78
}
75
79
@@ -105,19 +109,19 @@ func (b *BackupVaultAccessPolicy) Remove(_ context.Context) error {
105
109
//
106
110
// While deletion is Denied, you can update the policy with one that
107
111
// doesn't deny and then delete at will.
108
- allowDeletionPolicy := `{
109
- "Version": "2012-10-17",
110
- "Statement": [
111
- {
112
- "Effect": "Allow",
113
- "Principal": {
114
- "AWS": "* "
115
- },
116
- "Action": "backup:DeleteBackupVaultAccessPolicy",
117
- "Resource": "*"
118
- }
119
- ]
120
- }`
112
+ allowDeletionPolicy := fmt . Sprintf ( `{
113
+ "Version": "2012-10-17",
114
+ "Statement": [
115
+ {
116
+ "Effect": "Allow",
117
+ "Principal": {
118
+ "AWS": "arn:aws:iam::%s:root "
119
+ },
120
+ "Action": "backup:DeleteBackupVaultAccessPolicy",
121
+ "Resource": "*"
122
+ }
123
+ ]
124
+ }` , * b . accountID )
121
125
// Ignore error from if we can't put permissive backup vault policy in for some reason, that's OK.
122
126
_ , _ = b .svc .PutBackupVaultAccessPolicy (& backup.PutBackupVaultAccessPolicyInput {
123
127
BackupVaultName : & b .backupVaultName ,
0 commit comments