Compartilhar via


O que é uma SAS (assinatura de acesso compartilhado) do OneLake?

Uma SAS (assinatura de acesso compartilhado) do OneLake fornece acesso seguro, de curto prazo e delegado aos recursos no OneLake. Com uma SAS do OneLake, você tem controle granular sobre como um cliente pode acessar seus dados. Por exemplo:

  • Quais recursos o cliente pode acessar.
  • Quais as permissões que eles têm para os recursos.
  • Por quanto tempo a SAS é válida.

Cada SAS do OneLake (e a chave de delegação de usuário) sempre tem o suporte de uma identidade do Microsoft Entra, tem um tempo de vida máximo de 1 hora e só pode permitir acesso a pastas e arquivos dentro de um item de dados, como um lakehouse.

Como funciona uma assinatura de acesso compartilhado

Uma assinatura de acesso compartilhado é um token acrescentado ao URI de um recurso do OneLake. O token contém um conjunto especial de parâmetros de consulta que indicam como o cliente pode acessar o recurso. Um dos parâmetros de consulta é a assinatura. Ele é construído a partir dos parâmetros da SAS e assinado com a chave que foi usada para criar a SAS. O OneLake usa essa assinatura para autorizar o acesso à pasta ou arquivo no OneLake. A SAS do OneLake usa o mesmo formato e propriedades que a SAS delegada pelo usuário do Armazenamento do Azure, mas com mais restrições de segurança no tempo de vida e no escopo.

Uma SAS do OneLake é assinada com uma UDK (chave de delegação de usuário), que tem o suporte de uma credencial do Microsoft Entra. Solicite uma chave de delegação de usuário com a operação Obter Chave de Delegação do Usuário. Em seguida, use essa chave (embora ainda seja válida) para criar a SAS do OneLake. As permissões dessa credencial do Microsoft Entra, juntamente com as permissões explicitamente concedidas à SAS, determinam o acesso do cliente ao recurso.

Como autorizar uma SAS do OneLake

Quando um cliente ou aplicativo acessa o OneLake com um OneLake SAS, a solicitação é autorizada usando as credenciais do Microsoft Entra que solicitaram o UDK utilizado para criar o SAS. Portanto, todas as permissões do OneLake concedidas a essa identidade do Microsoft Entra se aplicam à SAS, o que significa que uma SAS nunca pode exceder as permissões do usuário que a criou. Além disso, ao criar um SAS, você concede permissões explicitamente, permitindo fornecer permissões ainda mais restritas para o SAS. Entre a identidade do Microsoft Entra, as permissões explicitamente concedidas e o tempo de vida curto, o OneLake segue as melhores práticas de segurança para fornecer acesso delegado aos seus dados.

Quando usar uma SAS do OneLake

O OneLake SAS delega acesso seguro e temporário ao OneLake, apoiado por uma identidade do Microsoft Entra. Aplicativos sem suporte nativo do Microsoft Entra podem usar uma SAS do OneLake para obter acesso temporário para carregar dados sem um trabalho de configuração e integração complicados.

A SAS do OneLake também dá suporte a aplicativos que servem como proxies entre os usuários e seus dados. Por exemplo, alguns ISVs (fornecedores de software independentes) operam entre usuários e seu espaço de trabalho do Fabric, fornecendo funcionalidade extra e possivelmente um modelo de autenticação diferente. Ao delegar o acesso com uma SAS do OneLake, esses ISVs podem gerenciar o acesso aos dados subjacentes e fornecer acesso direto aos dados, mesmo que seus usuários não tenham identidades do Microsoft Entra.

Como gerenciar uma SAS do OneLake

Duas configurações em seu locatário do Fabric gerenciam o uso do OneLake SAS.

A primeira configuração é uma configuração de nível de locatário, Usar tokens da SAS delegados pelo usuário de curta duração, que gerencia a geração de chaves de delegação de usuário. Como as chaves de delegação de usuário são geradas no nível do locatário, elas são controladas por uma configuração de locatário. Essa configuração é ativada por padrão, pois essas chaves de delegação de usuário têm permissões equivalentes para a identidade do Microsoft Entra solicitando-as e são sempre de curta duração.

Observação

Desativar esse recurso impede que todos os workspaces usem a SAS do OneLake, pois todos os usuários não poderão gerar chaves de delegação do usuário.

A segunda configuração é uma configuração de espaço de trabalho delegada, Autenticação com tokens SAS delegados pelo usuário do OneLake, que controla se um workspace aceita uma SAS do OneLake. Esta definição está desativada por predefinição. Um administrador de workspace pode ativar essa configuração para permitir a autenticação com o OneLake SAS em seu workspace. Um administrador de locatários pode ativar essa configuração para todos os espaços de trabalho por meio da configuração do locatário ou deixá-la para que os administradores do espaço de trabalho ativem.

Você também pode monitorar a criação de chaves de delegação de usuário no portal do Microsoft Purview. Para ver todas as chaves geradas no locatário, pesquise o nome da operação generateonelakeudk. Como a criação de uma SAS é uma operação do lado do cliente, não é possível monitorar ou limitar a criação de uma SAS do OneLake, apenas a geração de um UDK.

Melhores práticas com OneLake SAS

  • Sempre use HTTPS para criar ou distribuir uma SAS para proteger contra ataques de intermediário que buscam interceptar a SAS.
  • Acompanhe os tempos de expiração da sua chave e do token SAS. As chaves de delegação de usuário do OneLake e os tokens SAS têm um tempo de vida máximo de 1 hora. A tentativa de solicitar um UDK ou criar uma SAS com uma vida útil maior que 1 hora faz com que a solicitação falhe. Para evitar que a SAS seja usada para estender o tempo de vida dos tokens OAuth expirando, o tempo de vida do token também deve ser maior do que o tempo de expiração da chave de delegação do usuário e da SAS.
  • Tenha cuidado com a hora de início de um token SAS. Definir a hora de início de uma SAS como a hora atual pode causar falhas nos primeiros minutos, devido a tempos de início diferentes entre computadores (distorção de relógio). Definir a hora de início para alguns minutos no passado ajuda a proteger contra esses erros.
  • Conceda os mínimos privilégios possíveis à SAS. Fornecer os privilégios mínimos necessários para o menor número possível de recursos é uma melhor prática de segurança e diminuirá o impacto se uma SAS estiver comprometida.
  • Monitore a geração de chaves de delegação do usuário. Você pode auditar a criação de chaves de delegação de usuário no portal do Microsoft Purview. Pesquise o nome da operação generateonelakeudk para ver as chaves geradas no seu locatário.
  • Entenda as limitações do OneLake SAS. Como os tokens SAS do OneLake não podem ter permissões no nível do workspace, eles não são compatíveis com algumas ferramentas de Armazenamento do Azure que esperam permissões no nível do contêiner para percorrer dados, como o Gerenciador de Armazenamento do Azure.