Aplicar o AWS Instance Metadata Service v2 em um workspace

Importante

Como os recursos de computação serverless aplicam automaticamente o IMDSv2, essa configuração não é relevante para esses recursos.

O serviço de metadados de instância (IMDS) é um serviço que é executado localmente em instâncias de computação na AWS e é utilizado para obter metadados da instância.Essencialmente para a segurança, os metadados da instância também contêm credenciais para a função associada à instância.Consulte Metadados de instância e dados do usuário.

Como resposta às preocupações de segurança relacionadas ao IMDS, a AWS desenvolveu o IMDSv2 (versão 2), que reduz o risco de um padrão de ataque comum e substitui o fluxo de solicitação e resposta por um fluxo orientado a sessãoPara obter detalhes sobre as melhorias, consulte este artigo do blog da AWS.

Como administrador do site workspace, o senhor pode impor o uso do IMDSv2 no site clusters ativando a opção Enforce AWS instance metadata v2s na seção compute tab da página de configurações do administrador. Databricks recomenda que o senhor configure o site workspace para aplicar o IMDSv2. Se o seu workspace foi criado após 1º de outubro de 2022, o seu workspace tem essa configuração de administrador ativada por default.

Requisitos

Como migrar e aplicar o IMDSv2 em todos os clusters

Aviso

A aplicação do IMDSv2 faz com que qualquer carga de trabalho existente falhe se ela usar o IMDSv1 para buscar metadados da instância.

Para aplicar o IMDSv2 em novos clusters sem serverless :

  1. A aplicação do IMDSv2 não é compatível com o uso de um catálogo isolado do AWS Glue. Para usar o catálogo do Glue, adicione uma linha de configuração do Spark aos seus clusters para desativar o modo de isolamento:

    spark.databricks.hive.metastore.glueCatalog.isolation.enabled false
    
  2. Atualize seu código para usar IMDSv2.

    1. Atualize quaisquer AWS CLIs e SDKs existentes que suas cargas de trabalho usam. Observe que o Databricks já atualizou o SDK instalado por padrão no Databricks Runtime. O Databricks recomenda que você siga o guia de atualização da AWS para garantir uma transição segura.

      Modifique todos os blocos de anotações no workspace para remover qualquer uso existente do IMDSv1 e substituir pelo uso do IMDSv2.

      Por exemplo, a seguir está o código do cliente da API IMDSv1:

      curl http://169.254.169.254/latest/meta-data/
      

      Nesse exemplo, altere-o para o código do cliente da API IMDSv2:

      TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" \
      -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` && \
      \
      curl -H "X-aws-ec2-metadata-token: $TOKEN" \
        -v http://169.254.169.254/latest/meta-data/
      

      Para obter mais orientações e exemplos, consulte o artigo da AWS Recuperar metadados de instância.

    2. Teste seu código modificado para garantir que ele funcione corretamente com IMDSv2.

  3. Habilite a aplicação do IMDSv2 para o workspace.

    1. Como administrador do workspace, acesse a página de configurações.

    2. Clique no botão compute tab.

    3. Clique em Enforce AWS instance metadata v2.

    4. Atualize a página para garantir que a configuração tenha entrado em vigor.

  4. Reinicie quaisquer clusters em execução para garantir que todas as instâncias do EC2 tenham IMDSv2 aplicado. Se os clusters estiverem conectados a um pool de instâncias de frota, crie um novo pool de instâncias de frota e recrie os clusters usando o novo pool de instâncias de frota.

  5. Monitore a métrica CloudWatch MetadataNoToken para garantir que seu workspace não esteja fazendo chamadas IMDSv1 ativas.