Parâmetros de autorização - Amazon Redshift

Parâmetros de autorização

O comando COPY precisa de autorização para acessar dados em outro recurso da AWS, inclusive em Amazon S3, Amazon EMR, Amazon DynamoDB e Amazon EC2. É possível fornecer essa autorização por meio de referência à função do AWS Identity and Access Management (IAM) que é associada ao cluster (controle de acesso com base da função). Você pode criptografar seus dados de carregamento no Amazon S3.

Os seguintes tópicos dão mais detalhes e exemplos de opções de autenticação:

Use um dos seguintes para dar autorização para o comando COPY:

IAM_ROLE { default | 'arn:aws:iam::<Conta da AWS-id>:role/<role-name>' }

Use a palavra-chave padrão para que o Amazon Redshift use a função do IAM definida como padrão e associada ao cluster quando o comando COPY for executado.

Use o nome do recurso da Amazon (ARN) de uma função do IAM que seu cluster usa para autenticação e autorização. Se especificar IAM_ROLE, você não poderá usar ACCESS_KEY_ID e SECRET_ACCESS_KEY, SESSION_TOKEN ou CREDENTIALS.

A seguir, a sintaxe do parâmetro IAM_ROLE.

IAM_ROLE { default | 'arn:aws:iam::<Conta da AWS-id>:role/<role-name>' }

Para obter mais informações, consulte Controle de acesso com base em função.

ACCESS_KEY_ID 'access-key-id ' SECRET_ACCESS_KEY 'secret-access-key'

Esse método de autorização não é recomendado.

nota

Em vez de fornecer credenciais de acesso como texto sem formatação, é altamente recomendável usar a autenticação baseada em função especificando-se o parâmetro IAM_ROLE. Para obter mais informações, consulte Controle de acesso com base em função.

SESSION_TOKEN 'temporary-token'

O token de sessão a ser usado com credenciais de acesso temporárias. Quando SESSION_TOKEN for especificado, você também deverá usar ACCESS_KEY_ID e SECRET_ACCESS_KEY para fornecer credenciais de chave de acesso temporárias. Se especificar SESSION_TOKEN, você não poderá usar IAM_ROLE ou CREDENTIALS. Para obter mais informações, consulte Credenciais de segurança temporárias no Guia do usuário do IAM.

nota

Em vez de criar credenciais de segurança temporárias, é altamente recomendável usar a autenticação baseada na função. Quando você autoriza o uso de uma função do IAM, o Amazon Redshift cria automaticamente credenciais de usuário temporárias para cada sessão. Para obter mais informações, consulte Controle de acesso com base em função.

A seguir, a sintaxe do parâmetro SESSION_TOKEN com os parâmetros ACCESS_KEY_ID e SECRET_ACCESS_KEY.

ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>' SESSION_TOKEN '<temporary-token>';

Se especificar SESSION_TOKEN, você não poderá usar CREDENTIALS ou IAM_ROLE.

[WITH] CREDENTIALS [AS] 'credentials-args'

Uma cláusula que indica o método que o cluster usará quando acessar outros recursos da AWS que contêm arquivos de dados ou arquivos manifesto. Você não pode usar o parâmetro CREDENTIALS com IAM_ROLE or ACCESS_KEY_ID e SECRET_ACCESS_KEY.

nota

Para aumentar a flexibilidade, recomendamos o uso do parâmetro IAM_ROLE, em vez do parâmetro CREDENTIALS.

Como opção, se o parâmetro ENCRYPTED for usado, a string credentials-args também fornecerá a chave de criptografia.

A string credentials-args diferencia maiúsculas de minúsculas e não deve conter espaços.

As palavras-chave WITH e AS são opcionais e são ignoradas.

Você pode especificar role-based access control ou key-based access control. Em ambos os casos, o usuário ou perfil do IAM deve ter as permissões obrigatórias para acessar os recursos da AWS especificados. Para ter mais informações, consulte Permissões do IAM para COPY, UNLOAD e CREATE LIBRARY.

nota

Para resguardar as credenciais da AWS e proteger os dados sigilosos, é altamente recomendável usar o controle de acesso baseado na função.

Para especificar o controle de acesso baseado na função, forneça a string credentials-args no formato a seguir.

'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'

Para usar credenciais de token temporário, você deve fornecer o ID da chave de acesso temporária, a chave de acesso secreta temporária e o token temporário. A string credentials-args está no formato a seguir.

CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>'

Para obter mais informações, consulte Credenciais de segurança temporárias.

Se o parâmetro ENCRYPTED for usado, a cadeia de caracteres credentials-args estará no formato a seguir, em que <root-key> é o valor da chave raiz que foi usada para criptografar os arquivos.

CREDENTIALS '<credentials-args>;master_symmetric_key=<root-key>'

Por exemplo, o comando COPY a seguir usa o controle de acesso baseado na função com uma chave de criptografia.

copy customer from 's3://DOC-EXAMPLE-BUCKET/mydata' credentials 'aws_iam_role=arn:aws:iam::<account-id>:role/<role-name>;master_symmetric_key=<root-key>'

O comando COPY a seguir mostra o controle de acesso baseado na função com uma chave de criptografia.

copy customer from 's3://DOC-EXAMPLE-BUCKET/mydata' credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>;master_symmetric_key=<root-key>'