- Mais recentes
- Mais votos
- Mais comentários
1. Diagnóstico com Log e Eventos do RDS e verificação de Logs mais completos com AWS CloudTrail
"userIdentity": { "type": "AssumedRole", "sessionContext": { "sessionIssuer": { "type": "Role", "arn": "arn:aws:iam::ID_CONTA_A:role/MinhaRoleRDSParaS3", "userName": "MinhaRoleRDSParaS3" }, }, "invokedBy": "rds.amazonaws.com" }, "eventSource": "s3.amazonaws.com", "eventName": "GetBucketLocation", "awsRegion": "sa-east-1", "sourceIPAddress": "rds.amazonaws.com", "userAgent": "rds.amazonaws.com", "errorCode": "AccessDenied", "errorMessage": "Access Denied",
Com isso conseguimos entender que o erro estava no
s3:GetBucketLocationAdicionamos a permissão
s3:GetBucketLocationna S3 Bucket Policy na conta B e na IAM Role da conta ACom isso conseguimos entender e resolver o problema de compartilhamento entre contas RDS e S3
Para resolver o problema de "Access Denied" ao restaurar um backup do SQL Server de um bucket S3 em outra conta para o RDS, há alguns pontos específicos que você deve verificar:
-
Verificar criptografia do bucket S3: Se o bucket S3 na Conta B estiver criptografado com uma chave KMS, a IAM role na Conta A também precisará de permissões para descriptografar usando essa chave. Verifique se o bucket usa criptografia e, em caso afirmativo, adicione permissões de descriptografia à sua IAM role.
-
Associação da IAM role ao RDS: Certifique-se de que a IAM role
MinhaRoleRDSParaS3está corretamente associada à sua instância RDS. Você pode verificar isso no console do RDS ou usando o comandoadd-role-to-db-instanceda AWS CLI. -
Opção SQLSERVER_BACKUP_RESTORE: Confirme que a opção SQLSERVER_BACKUP_RESTORE está adicionada ao grupo de opções da sua instância RDS. Esta opção é obrigatória para operações nativas de backup e restauração.
-
Região do bucket S3: Verifique se o bucket S3 na Conta B está na mesma região AWS que sua instância RDS na Conta A. Restaurações entre regiões não são suportadas.
-
Tamanho do arquivo de backup: Certifique-se de que seu arquivo de backup não excede o limite de 5 TB para objetos S3.
-
Tarefas concorrentes: Verifique se você não tem mais de duas tarefas de backup ou restauração executando simultaneamente na sua instância RDS.
-
Permissões específicas do S3: Além de
s3:GetObjectes3:ListBucket, você pode precisar adicionars3:GetBucketLocationàs permissões da IAM role. -
Política de endpoint da VPC: Se você estiver usando um endpoint da VPC para S3, verifique se a política do endpoint permite o acesso ao bucket específico.
Considerando que seus testes via CLI foram bem-sucedidos, o problema provavelmente está relacionado a alguma configuração específica do RDS ou a uma permissão adicional necessária quando o RDS tenta acessar o S3 em outra conta.
Sources
Restore SQL bak backupfile to RDS Database | AWS re:Post
KBHS-00719: Error 'AccessDenied' | AWS re:Post
Native SQL Server backup/restore - AWS Prescriptive Guidance
Conteúdo relevante
- feita há 3 meses
- feita há 8 meses
