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:
-
Parâmetro IAM_ROLE
-
ACCESS_KEY_ID and SECRET_ACCESS_KEY parameters
-
CREDENTIALSCláusula
- 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://amzn-s3-demo-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://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::
<aws-account-id>
:role/<role-name>
;master_symmetric_key=<root-key>
'