Integração do Amazon Redshift com a funcionalidade Concessão de Acesso do Amazon S3
Usando a integração com a Concessão de Acesso do Amazon S3, você pode propagar facilmente identidades do Centro de Identidade do IAM para controlar o acesso aos dados do Amazon S3. Essa integração permite que você autorize o acesso aos dados do Amazon S3 com base nos usuários e grupos do Centro de Identidade do IAM.
Para obter mais informações sobre a Concessão de Acesso do Amazon S3, consulte Gerenciar o acesso com a funcionalidade Concessão de Acesso do Amazon S3.
O uso da Concessão de Acesso do Amazon S3 concede os seguintes benefícios à aplicação:
Controle de acesso detalhado aos dados do Amazon S3 com base nas identidades do Centro de Identidade do IAM.
Gerenciamento centralizado de identidades do Centro de Identidade do IAM no Amazon Redshift e no Amazon S3.
Você pode evitar o gerenciamento de permissões separadas do IAM para acesso ao Amazon S3.
Como funciona
Para integrar sua aplicação com a Concessão de Acesso do Amazon S3, faça o seguinte:
Primeiro, configure o Amazon Redshift para se integrar à Concessão de Acesso do Amazon S3 usando o AWS Management Console ou a AWS CLI.
Em seguida, usando o serviço de Concessão de Acesso do Amazon S3, um usuário com privilégios de administrador do Centro de Identidade (IdC) concede acesso ao bucket ou prefixo do Amazon S3 a usuários/grupos específicos do IdC. Para obter mais informações, consulte Trabalhar com concessões no recurso Concessão de Acesso do S3.
Quando um usuário do IdC autenticado no Redshift executa uma consulta acessando o S3 (como uma operação COPY, UNLOAD ou Spectrum), o Amazon Redshift recupera credenciais de acesso temporárias do S3 com escopo definido para essa identidade do IdC do serviço Concessão de Acesso do Amazon S3.
Em seguida, o Amazon Redshift usa as credenciais temporárias recuperadas para acessar os locais autorizados do Amazon S3 para essa consulta.
Configurar a integração com a Concessão de Acesso do Amazon S3
Para configurar a integração com a Concessão de Acesso do Amazon S3 para Amazon Redshift, faça o seguinte:
Tópicos
Configurar a integração com a Concessão de Acesso do Amazon S3 usando o AWS Management Console
Abra o console do Amazon Redshift.
Escolha seu cluster no painel Clusters.
Na página de detalhes do cluster, na seção Integração do provedor de identidades, habilite a integração com o serviço Concessão de Acesso do S3.
nota
A seção Integração do provedor de identidades não aparecerá se você não tiver o Centro de Identidade do IAM configurado. Para obter mais informações, consulte Enabling AWS IAM Identity Center.
Habilitar a integração com a Concessão de Acesso do Amazon S3 usando a AWS CLI
Para criar outra aplicação do IdC do Amazon Redshift com a integração do S3 habilitada, faça o seguinte:
aws redshift create-redshift-idc-application <other parameters> --service-integrations '[ {"S3AccessGrants": [{"ReadWriteAccess": {"Authorization": "Enabled"}}]} ]'
Para modificar uma aplicação existente a fim de habilitar a integração da Concessão de Acesso do S3, faça o seguinte:
aws redshift modify-redshift-idc-application <other parameters> --service-integrations '[ {"S3AccessGrants": [{"ReadWriteAccess": {"Authorization": "Enabled"}}]} ]'
Para modificar uma aplicação existente a fim de desabilitar a integração da Concessão de Acesso do S3, faça o seguinte:
aws redshift modify-redshift-idc-application <other parameters> --service-integrations '[ {"S3AccessGrants": [{"ReadWriteAccess": {"Authorization": "Disabled"}}]} ]'
Usar a integração com a Concessão de Acesso do S3
Após a configuração da integração da Concessão de Acesso do S3, as consultas que acessam dados do S3 (como consultas COPY
, UNLOAD
ou Spectrum) usam a identidade do IdC para autorização. Os usuários que não estão autenticados usando o IdC também podem executar essas consultas, mas essas contas de usuário não aproveitam a administração centralizada que o IdC oferece.
O seguinte exemplo mostra consultas executadas com a integração da Concessão de Acesso do S3:
COPY table FROM 's3://mybucket/data'; // -- Redshift uses IdC identity
UNLOAD ('SELECT * FROM table') TO 's3://mybucket/unloaded/' // -- Redshift uses IdC identity