Configurar o acesso a um bucket do Amazon S3
Para exportar dados ao Amazon S3, forneça à instância de banco de dados PostgreSQL permissão para acessar o bucket do Amazon S3 para o qual os arquivos serão enviados.
Para fazer isso, use o procedimento a seguir.
Como conceder acesso a uma instância de banco de dados PostgreSQL ao Amazon S3 por meio de um perfil do IAM
- 
                Crie uma política do IAM. Essa política concede ao bucket e ao objeto as permissões para que a instância de banco de dados PostgreSQL acesse o Amazon S3. Como parte da criação dessa política, execute as seguintes etapas: - 
                        Inclua na política as seguintes ações necessárias para permitir a transferência de arquivos da instância de banco de dados PostgreSQL para um bucket do Amazon S3: - 
                                s3:PutObject
- 
                                s3:AbortMultipartUpload
 
- 
                                
- 
                        Inclua o nome do recurso da Amazon (ARN) que identifica o bucket do Amazon S3 e os objetos no bucket. O formato do ARN para acessar o Amazon S3 é: arn:aws:s3:::amzn-s3-demo-bucket/*
 Para obter mais informações sobre como criar uma política do IAM para o Amazon RDS para PostgreSQL, consulte Criar e usar uma política do IAM para acesso do banco de dados do IAM. Consulte também Tutorial: criar e anexar sua primeira política gerenciada pelo cliente no Guia do usuário do IAM. O comando da AWS CLI a seguir cria uma política do IAM denominada rds-s3-export-policycom essas opções. Ele concede acesso a um bucket denominadoamzn-s3-demo-bucket.AtençãoRecomendamos configurar o banco de dados em uma VPC privada que tenha políticas de endpoint configuradas para acessar buckets específicos. Para obter mais informações, consulte Usar políticas de endpoint para o Amazon S3 no Guia do usuário da Amazon VPC. É altamente recomendável não criar uma política com acesso a todos os recursos. Esse acesso pode representar uma ameaça à segurança dos dados. Se você criar uma política que forneça o acesso S3:PutObjecta todos os recursos usando"Resource":"*", um usuário com privilégios de exportação poderá exportar dados para todos os buckets em sua conta. Além disso, o usuário poderá exportar dados para qualquer bucket gravável publicamente dentro de sua região daAWS.Depois de criar a política, observe o nome do recurso da Amazon (ARN) da política. O ARN será necessário para uma etapa posterior, quando você anexar a política a um perfil do IAM. aws iam create-policy --policy-name rds-s3-export-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3export", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'
- 
                        
- 
                Crie uma função do IAM. Faça isso para que o Amazon RDS do possa assumir esse perfil do IAM em seu nome para acessar os buckets do Amazon S3. Para ter mais informações, consulte Criar um perfil para delegar permissões a um usuário do IAM no Guia do usuário do IAM. Convém usar as chaves de contexto de condição global aws:SourceArneaws:SourceAccountem políticas baseadas em recursos para limitar as permissões do serviço a um recurso específico. Essa é a maneira mais eficiente de se proteger contra o problema "confused deputy".Se você utilizar ambas as chaves de contexto de condição global, e o valor aws:SourceArncontiver o ID da conta, o valoraws:SourceAccounte a conta no valoraws:SourceArndeverão utilizar o mesmo ID de conta quando utilizados na mesma instrução de política.- Use - aws:SourceArnse quiser acesso entre serviços para um único recurso.
- 
                        Use aws:SourceAccountse você quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.
 Na política, certifique-se de usar a chave de contexto de condição global aws:SourceArncom o ARN completo do recurso. O exemplo a seguir mostra como fazer isso utilizando o comando da AWS CLI para criar uma função chamadards-s3-export-role.exemploPara Linux, macOS ou Unix: aws iam create-role \ --role-name rds-s3-export-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname" } } } ] }'Para Windows: aws iam create-role ^ --role-name rds-s3-export-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname" } } } ] }'
- 
                Anexe a política do IAM que você criou à função do IAM que você criou. O comando da AWS CLI a seguir anexa a política criada anteriormente à função chamada rds-s3-export-role.. Substituayour-policy-arnaws iam attach-role-policy --policy-arnyour-policy-arn--role-name rds-s3-export-role
- 
                Adicione o perfil do IAM à instância de banco de dados. Faça isso usando o AWS Management Console ou a AWS CLI, conforme descrito a seguir. 
Para adicionar um perfil do IAM a uma instância de banco de dados do PostgreSQL usando o console
- Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/ - . 
- 
                        Escolha o nome da instância de de banco de dados do PostgreSQL para exibir os detalhes. 
- 
                        Na guia Connectivity & security (Conectividade e segurança), na seção Manage IAM roles (Gerenciar perfis do IAM), escolha o perfil a ser adicionado em Add IAM roles to this instance (Adicionar perfis do IAM a essa instância). 
- 
                        Em Feature (Recurso), escolha s3Export. 
- 
                        Escolha Add role (adicionar função). 
Para adicionar um perfil do IAM para uma instância de banco de dados do PostgreSQL usando a CLI
- 
                        Use o comando a seguir para adicionar a função à instância de banco de dados do PostgreSQL chamada my-db-instance. Substituayour-role-arns3Exportpara o valor da opção--feature-name.exemploPara Linux, macOS ou Unix: aws rds add-role-to-db-instance \ --db-instance-identifiermy-db-instance\ --feature-name s3Export \ --role-arnyour-role-arn\ --regionyour-regionPara Windows: aws rds add-role-to-db-instance ^ --db-instance-identifiermy-db-instance^ --feature-name s3Export ^ --role-arnyour-role-arn^ --regionyour-region