Autenticação
Esta página descreve métodos de autenticação comuns para o conector Kinesis no Databricks. Para obter a lista completa de opções do Kinesis, consulte Kinesis.
Autenticar com uma conexão do Unity Catalog
No Databricks Runtime 19 e versões posteriores, a Databricks recomenda autenticar no Kinesis com uma conexão do Unity Catalog. Uma conexão faz referência a uma credencial de serviço por nome, portanto, você não inclui chaves de acesso ou ARNs de função em seus notebooks, queries ou logs. Você governa o acesso à conexão com privilégios do Unity Catalog, como qualquer outro objeto protegível. Se você precisar de um método que uma conexão não suporte, use uma credencial de serviço ou um método alternativo. Para obter mais informações, consulte Conexões do Unity Catalog.
Para autenticar com uma conexão do Unity Catalog, faça o seguinte:
-
Crie uma credencial de serviço do Databricks usando uma IAM role com as permissões necessárias para acessar o Kinesis. Consulte Etapa 1: criar uma IAM role.
- Confirme se a IAM role anexada à sua credencial de serviço tem as permissões
ListShards,GetRecordseGetShardIterator.
- Confirme se a IAM role anexada à sua credencial de serviço tem as permissões
-
Crie uma conexão do tipo
KINESISque faça referência à credencial de serviço.- Você precisa do privilégio
CREATE CONNECTIONno metastore. - Você também pode criar a conexão no Catalog Explorer. Clique em Catalog > Criar > Criar uma conexão . Consulte Criar uma conexão.
SQLCREATE CONNECTION IF NOT EXISTS <connection-name> TYPE KINESIS
OPTIONS (aws_region '<aws-region>', credential '<service-credential-name>'); - Você precisa do privilégio
-
Conceda aos usuários ou grupos que realizam a execução da transmissão acesso tanto à conexão quanto à credencial de serviço à qual ela faz referência.
SQLGRANT USE CONNECTION ON CONNECTION <connection-name> TO <principal>;
GRANT ACCESS ON SERVICE CREDENTIAL <service-credential-name> TO <principal>; -
Para executar uma transmissão usando a conexão, defina a opção de origem
databricks.connectioncomo o nome da sua conexão:
- Python
- Scala
df = (spark.readStream
.format("kinesis")
.option("databricks.connection", "<connection-name>")
.option("streamName", "<stream-name>")
.load()
)
val df = spark.readStream
.format("kinesis")
.option("databricks.connection", "<connection-name>")
.option("streamName", "<stream-name>")
.load()
Ao usar uma conexão do Unity Catalog, a conexão possui a credencial e a região. Não defina as seguintes opções do Spark com databricks.connection, ou a transmissão falhará com um erro UC_CONNECTION_OPTION_CONFLICT:
serviceCredentialawsAccessKeyeawsSecretKeyregionroleArn,roleExternalId, eroleSessionNameendpointestsEndpoint
Um ARN de transmissão inclui uma região, mas o conector a ignora e usa o aws_region da conexão em vez disso. Defina aws_region como a região onde sua transmissão está localizada.
Autenticar com uma credencial de serviço
No Databricks Runtime 16.1 e versões posteriores, você pode autenticar no Kinesis com uma credencial de serviço do Databricks. A Databricks recomenda este método no Databricks Runtime 16.1 a 18. No Databricks Runtime 19 e versões posteriores, use uma credencial de serviço apenas quando uma conexão do Unity Catalog não for adequada ao seu cenário. Consulte Criar credenciais de serviço.
Para usar uma credencial de serviço, faça o seguinte:
- Crie uma credencial de serviço do Databricks usando uma IAM role com as permissões necessárias para acessar o Kinesis. Consulte Etapa 1: criar uma IAM role.
- Especifique o nome da credencial de serviço com a opção
serviceCredentialao definir uma leitura de transmissão.
A origem do Kinesis exige permissões de ListShards, GetRecords e GetShardIterator. Se você encontrar Amazon: Access Denied exceções, verifique se sua IAM role tem essas permissões. Consulte Controle de acesso aos recursos do Amazon Kinesis Data Streams com o IAM.
Métodos de autenticação alternativos
No Databricks Runtime 16.0 e abaixo, as credenciais de serviço do Databricks não estão disponíveis. O Databricks possui os seguintes métodos de autenticação alternativos:
instance profile
Anexe um instance profile durante a configuração do compute. See instance profile.
Instance profiles não são suportados no modo de acesso padrão (anteriormente modo de acesso compartilhado). Consulte Requisitos e limitações de compute padrão.
Usar chaves de acesso
Defina as opções awsAccessKey e awsSecretKey.
O Databricks recomenda armazenar suas keys usando segredos do Databricks. Consulte Gerenciamento de segredos.
Assumir IAM role
Para assumir uma IAM role, defina a opção roleArn como o ARN da função. Seu compute deve ter permissão para assumir a função, portanto, inicie o cluster com essa permissão ou defina as opções awsAccessKey e awsSecretKey. Opcionalmente, você pode definir roleExternalId e roleSessionName.
Este método oferece suporte à autenticação entre account. Para obter mais informações, consulte Delegate Access Across AWS Accounts Using IAM Roles (Delegar acesso em todas as contas AWS usando funções de IAM).