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
A aplicação do IMDSv2 não é compatível com o uso de um catálogo isolado do AWS Glue. Para desativar o isolamento, consulte Como migrar e aplicar o IMDSv2 em todos os clusters.
A imposição do IMDSv2 exige o uso de uma versão suportada do Databricks Runtime, conforme listado nas versões e compatibilidade das notas sobre a versão do Databricks Runtime, no entanto, a versão do Light 2.4 Extended Support não é compatível.
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 :
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
Atualize seu código para usar IMDSv2.
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.
Teste seu código modificado para garantir que ele funcione corretamente com IMDSv2.
Habilite a aplicação do IMDSv2 para o workspace.
Como administrador do workspace, acesse a página de configurações.
Clique no botão compute tab.
Clique em Enforce AWS instance metadata v2.
Atualize a página para garantir que a configuração tenha entrado em vigor.
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.
Monitore a métrica CloudWatch
MetadataNoToken
para garantir que seu workspace não esteja fazendo chamadas IMDSv1 ativas.