A segurança da nuvem na AWS é a maior prioridade. Estúdio Amazon SageMaker ofertas vários mecanismos para proteger seus dados e código usando integração com serviços de segurança da AWS, como Gerenciamento de acesso e identidade da AWS (EU SOU), Serviço de gerenciamento de chaves AWS (AWS KMS) ou isolamento de rede com Nuvem virtual privada da Amazon (Amazônia VPC).
Os clientes em setores altamente regulamentados, como serviços financeiros, podem configurar o Studio somente em VPC modo para ativar o isolamento de rede e desativar o acesso à Internet em notebooks Studio. Você pode usar a integração do IAM com o Studio para controlar quais usuários têm acesso a recursos como notebooks do Studio, o IDE do Studio ou Amazon Sage Maker trabalhos de formação.
Um caso de uso popular é restringir o acesso ao Studio IDE apenas para usuários de dentro de um intervalo CIDR de rede especificado ou de uma VPC designada. Você pode conseguir isso implementando Políticas do SageMaker baseadas em identidade do IAM e anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões. No entanto, o domínio SageMaker deve ser configurado com Modo de autenticação do IAM, porque as políticas baseadas em identidade do IAM não são suportadas em Logon único da AWS (SSO) modo de autenticação.
Muitos clientes usam o AWS SSO para permitir o controle centralizado da identidade da força de trabalho e fornecer uma experiência consistente de login do usuário. Esta postagem mostra como implementar esse caso de uso enquanto mantém os recursos de SSO da AWS para acessar o Studio.
Visão geral da solução
Quando você configura um domínio SageMaker no modo somente VPC e especifica as sub-redes e os grupos de segurança, o SageMaker cria interfaces de rede elásticas (ENIs) associados aos seus grupos de segurança nas sub-redes especificadas. As ENIs permitem que seus contêineres de treinamento se conectem aos recursos da sua VPC.
Neste modo, o acesso direto à Internet a partir de notebooks é totalmente desabilitado e todo o tráfego é roteado através de uma ENI em sua VPC privada. Isso também inclui o tráfego de widgets e interfaces da UI do Studio, como gerenciamento de experimentos, piloto automático e monitor de modelo, para suas respectivas APIs de back-end do SageMaker. A AWS recomenda usar o modo somente VPC para exercer um controle refinado no acesso à rede do Studio.
O primeiro desafio é que mesmo que o Studio seja implantado sem conectividade com a Internet, o Studio IDE ainda pode ser acessado de qualquer lugar, assumindo o acesso ao Console de gerenciamento da AWS e o Studio é concedido a um principal do IAM. Esta situação não é aceitável se você quiser isolar totalmente o Studio de uma rede pública e conter toda a comunicação dentro de uma VPC privada rigidamente controlada.
Para enfrentar esse desafio e desabilitar qualquer acesso ao Studio IDE, exceto de uma VPC designada ou de um intervalo CIDR, você pode usar o API CreatePresignedDomainUrl do SageMaker. A função ou usuário do IAM usado para chamar essa API define as permissões para acessar o Studio. Agora você pode usar políticas baseadas em identidade do IAM para implementar a configuração de acesso desejada. Por exemplo, para permitir o acesso somente de uma VPC designada, adicione a seguinte condição à política do IAM, associada a um principal do IAM, que é usada para gerar um URL de domínio pré-assinado:
Para ativar o acesso somente de um ou mais endpoints da VPC designados, especifique a seguinte condição:
Use a seguinte condição para restringir o acesso de um intervalo CIDR designado:
O segundo desafio é que o controle de acesso baseado em IAM funciona apenas quando o domínio SageMaker está configurado no modo de autenticação IAM; você não pode usá-lo quando o domínio SageMaker é implantado no modo AWS SSO. A próxima seção mostra como enfrentar esses desafios e implementar o controle de acesso baseado em IAM com acesso AWS SSO ao Studio.
Visão geral da arquitetura
O Studio é publicado como um aplicativo SAML, atribuído a um perfil de usuário específico do SageMaker Studio. Os usuários podem acessar o Studio de maneira conveniente diretamente do portal AWS SSO, conforme mostrado na captura de tela a seguir.
A solução integra-se com um aplicativo SAML 2.0 personalizado como mecanismo para acionar a autenticação do usuário para o Studio. Requer que o aplicativo SAML personalizado seja configurado com o Gateway de API da Amazon URL do endpoint como seu Assertion Consumer Service (ACS) e precisa de atributos de mapeamento contendo o ID de usuário do AWS SSO, bem como o ID de domínio do SageMaker.
O endpoint do API Gateway chama um AWS Lambda função que analisa a resposta SAML para extrair o ID do domínio e o ID do usuário e usá-los para gerar um URL pré-assinado do Studio. A função Lambda finalmente executa um redirecionamento por meio de uma resposta HTTP 302 para fazer login do usuário no Studio.
Uma política do IAM controla o ambiente de rede no qual os usuários do Studio podem fazer login, o que inclui condições de restrição conforme descrito na seção anterior. Esta política do IAM está anexada à função Lambda. A política do IAM contém uma permissão para chamar o sagemaker:CreatePresignedDomainURL
API apenas para um perfil de usuário específico:
O diagrama a seguir mostra a arquitetura da solução.
A solução implanta um domínio SageMaker em sua VPC privada e Pontos de extremidade VPC para acessar o Studio, o tempo de execução do SageMaker e a API do SageMaker por meio de uma conexão privada, sem a necessidade de um gateway de Internet. Os VPC endpoints são configurados com DNS privado ativado (PrivateDnsEnabled=True
) para associar um zona hospedada privada com sua VPC. Isso permite que o Studio acesse a API SageMaker usando o nome DNS público padrão api.sagemaker.<Region>.amazonaws.com
resolvido para o endereço IP privado do endpoint em vez de usar o URL do VPC endpoint.
Você precisa adicionar endpoints VPC ao seu VPC se quiser acessar qualquer outro serviço AWS, como Serviço de armazenamento simples da Amazon (Amazon S3), Registro do Amazon Elastic Container (Amazon ECR), Serviço de token de segurança AWS (AWS ST), Formação da Nuvem AWSou AWS CodeCommit.
Você pode controlar totalmente as permissões usadas para gerar o URL pré-assinado e quaisquer outras chamadas de API com políticas IAM anexadas à função de execução da função Lambda ou controlar o acesso a qualquer serviço AWS usado por meio de Políticas de endpoint VPC. Para obter exemplos de uso de políticas IAM para controlar o acesso ao Studio e à API SageMaker, consulte Controle o acesso à API SageMaker usando políticas baseadas em identidade.
Embora a solução exija que o domínio do Studio seja implantado no modo IAM, ela permite que o AWS SSO seja usado como mecanismo para os usuários finais fazerem login no Studio.
As subseções a seguir contêm descrições detalhadas dos principais componentes da solução.
Gateway de API
O endpoint do API Gateway atua como o destino para o URL ACS do aplicativo configurado no aplicativo SAML 2.0 personalizado. O endpoint é privado e possui um recurso chamado /saml
e um método POST com solicitação de integração configurada como proxy Lambda. A solução usa um VPC endpoint com um configurado com.amazonaws.<region>.execute-api
Nome DNS para chamar esse endpoint de API de dentro da VPC.
AWSSSO
Um aplicativo SAML 2.0 personalizado é configurado com o URL do endpoint do API Gateway https:/{ restapi-id}.execute-api.amazonaws.com/saml
como URL do ACS do aplicativo e usa mapeamentos de atributos com os seguintes requisitos:
- Identificador do usuário:
- Atributo do usuário no aplicativo - nome de usuário
- Mapeia o atributo do usuário no AWS SSO -
${user:AD_GUID}
- Identificador de ID de domínio SageMaker:
- Atributo do usuário no aplicativo -
domain-id
- Mapeia o atributo do usuário no AWS SSO – ID de domínio para a instância do Studio
- Atributo do usuário no aplicativo -
O aplicativo implementa o controle de acesso para um usuário do AWS SSO provisionando um perfil de usuário do Studio com o nome igual ao ID do usuário do AWS SSO.
Função lambda
A solução configura uma função Lambda como ponto de invocação para o API Gateway /saml
recurso. A função analisa o SAMLResponse
enviado pelo AWS SSO, extrai o domain-id
bem como o nome do usuário e chama o createPresignedDomainUrl
API SageMaker para recuperar o URL e o token do Studio e redirecionar o usuário para fazer login usando uma resposta HTTP 302. A função Lambda tem uma política IAM específica anexada à sua função de execução que permite sagemaker:createPresignedDomainUrl
ação somente quando for solicitada de um intervalo CIDR de rede específico usando o VpcSourceIp
condição.
A função Lambda não possui nenhuma lógica para validar a resposta SAML, por exemplo, para verificar uma assinatura. No entanto, como o endpoint do API Gateway que serve como ACS é privado ou apenas interno, ele não é obrigatório para este ambiente de prova de conceito.
Implante a solução
A Repositório GitHub fornece o código-fonte completo para a solução ponta a ponta.
Para implantar a solução, você deve ter permissões de administrador (ou usuário avançado) para uma conta da AWS e instalar o Interface de linha de comando da AWS (AWS CLI) e CLI do AWS SAM e mínimo Python 3.8.
A solução oferece suporte à implantação em três regiões da AWS: eu-west-1
, eu-central-1
e us-east-1
. Certifique-se de selecionar uma dessas regiões para implantação.
Para começar a testar a solução, você deve concluir as seguintes etapas de implantação da solução Arquivo README do GitHub:
- Configure o AWS SSO se ainda não o tiver configurado.
- Implante a solução usando o aplicativo SAM.
- Crie um novo aplicativo SAML 2.0 personalizado.
Depois de concluir as etapas de implantação, você poderá prosseguir com o teste da solução.
Teste a solução
A solução simula dois casos de uso para demonstrar o uso de políticas baseadas em identidade AWS SSO e SageMaker:
- Caso de uso positivo – Um usuário acessa o Studio de dentro de um intervalo CIDR designado por meio de um VPC endpoint
- Caso de uso negativo – Um usuário acessa o Studio a partir de um endereço IP público
Para testar esses casos de uso, a solução criou três Amazon Elastic Compute Nuvem (Amazon EC2) instâncias:
- Anfitrião privado – Uma instância do EC2 Windows em uma sub-rede privada que é capaz de acessar o Studio (seu ambiente seguro local)
- Anfitrião Bastião – Uma instância EC2 Linux na sub-rede pública usada para estabelecer um túnel SSH no host privado na rede privada
- Host público – Uma instância do EC2 Windows em uma sub-rede pública para demonstrar que o usuário não pode acessar o Studio a partir de um endereço IP não autorizado
Testar o acesso ao Studio de uma rede autorizada
Siga estas etapas para realizar o teste:
- Para acessar a instância Windows do EC2 na rede privada, execute o comando fornecido como o valor da chave de saída SAM
TunnelCommand
. Certifique-se de que a chave privada do par de chaves especificado no parâmetro esteja no diretório onde o comando do túnel SSH é executado. O comando cria um Túnel SSH do computador local emlocalhost:3389
para a instância Windows do EC2 na rede privada. Veja o seguinte código de exemplo: - No seu desktop ou notebook local, abra uma nova conexão RDP (por exemplo, usando o Microsoft Remote Desktop) usando
localhost
como o host remoto de destino. Essa conexão é encapsulada por meio do host bastião para a instância privada do EC2 Windows. Use o nome de usuárioAdministrator
e senha da saída da pilhaSageMakerWindowsPassword
. - Abra o navegador Firefox na área de trabalho remota.
- Navegue e faça login no portal AWS SSO usando as credenciais associadas ao nome de usuário que você especificou como
ssoUserName
parâmetro. - Escolha o Demonstração segura do SageMaker Aplicativo AWS SSO do portal AWS SSO.
Você será redirecionado para o Studio IDE em uma nova janela do navegador.
Testar o acesso ao Studio de uma rede não autorizada
Agora siga estas etapas para simular o acesso de uma rede não autorizada:
- Abra uma nova conexão RDP no IP fornecido no
SageMakerWindowsPublicHost
Saída SAML. - Abra o navegador Firefox na área de trabalho remota.
- Navegue e faça login no portal AWS SSO usando as credenciais associadas ao nome de usuário especificado como
ssoUserName
parâmetro. - Escolha o Demonstração segura do SageMaker Aplicativo AWS SSO do portal AWS SSO.
Desta vez você recebe uma mensagem de acesso não autorizado.
limpar
Para evitar cobranças, você deve remover todos os recursos provisionados pela solução e criados manualmente da sua conta da AWS. Siga as instruções na solução Arquivo README.
Conclusão
Demonstramos que, ao introduzir uma camada de autenticação de middleware entre o usuário final e o Studio, podemos controlar o ambiente a partir do qual o usuário tem permissão para acessar o Studio e bloquear explicitamente todos os outros ambientes não autorizados.
Para aumentar ainda mais a segurança, você pode adicionar uma política do IAM a uma função de usuário para impedir o acesso ao Studio pelo console. Se você usar Organizações da AWS, você pode implementar o seguinte política de controle de serviço para as unidades organizacionais ou contas que precisam de acesso ao Studio:
Embora a solução descrita nesta postagem use API Gateway e Lambda, você pode explorar outras maneiras, como uma instância EC2 com um função de instância usando o mesmo fluxo de trabalho de validação de permissão descrito ou até mesmo um sistema independente para lidar com a autenticação e autorização do usuário e gerar um URL pré-assinado do Studio.
Outras leituras
Garantir o acesso ao Studio é um tópico de pesquisa ativo e há outras postagens relevantes sobre abordagens semelhantes. Consulte as seguintes postagens no blog do AWS Machine Learning para saber mais sobre outros serviços e arquiteturas que você pode usar:
Sobre os autores
Jérôme Bachelet é arquiteto de soluções na Amazon Web Services. Ele se esforça para ajudar os clientes a obter o máximo valor da AWS para atingir seus objetivos de negócios. Jerome tem mais de 10 anos de experiência trabalhando com soluções de proteção e segurança de dados. Além de estar na nuvem, Jerome gosta de viajar e passar bons momentos com sua esposa e 2 filhas na região de Genebra, na Suíça.
Eugene Ilyin é arquiteto de soluções na AWS. Ele tem mais de 20 anos de experiência trabalhando em todos os níveis de desenvolvimento de software e arquitetura de soluções e usou linguagens de programação de COBOL e Assembler a .NET, Java e Python. Ele desenvolve e codifica soluções nativas de nuvem com foco em big data, análise e engenharia de dados.
- '
- "
- 100
- 7
- 9
- Sobre
- Acesso
- Conta
- Açao Social
- ativo
- endereço
- Todos os Produtos
- Amazon
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- analítica
- api
- APIs
- Aplicação
- arquitetura
- ÁREA
- Autenticação
- autorização
- piloto automático
- AWS
- ser
- Big Data
- Blog
- navegador
- negócio
- chamada
- casos
- desafiar
- desafios
- acusações
- Na nuvem
- Nativo da nuvem
- código
- Comunicação
- Computar
- Configuração
- da conexão
- Conectividade
- cônsul
- consumidor
- Recipiente
- Containers
- Credenciais
- Clientes
- dados,
- protecção de dados
- segurança dos dados
- Desenvolvimento
- dns
- Não faz
- efeito
- Ponto final
- Engenharia
- Meio Ambiente
- exemplo
- execução
- Exercício
- vasta experiência
- experimentar
- Extractos
- Finalmente
- financeiro
- serviços financeiros
- Firefox
- Primeiro nome
- Foco
- seguir
- cheio
- função
- gerar
- gif
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- IAM
- Dados de identificação:
- executar
- implementação
- indústrias
- integração
- Internet
- IP
- Endereço IP
- isolamento
- IT
- Java
- Empregos
- manutenção
- Chave
- Idiomas
- APRENDER
- aprendizagem
- Line
- linux
- local
- aprendizado de máquina
- de grupos
- Microsoft
- modelo
- líquido
- rede
- Acesso à rede
- laptops
- Oferece
- aberto
- Outros
- Senha
- políticas
- Privacidade
- Popular
- Portal
- POSTAGENS
- poder
- Diretor
- privado
- chave privada
- Perfil
- Programação
- linguagens de programação
- prova
- prova de conceito
- proteger
- proteção
- fornecer
- fornece
- procuração
- público
- Python
- qualidade
- alcance
- redirecionar
- Requisitos
- pesquisa
- recurso
- Recursos
- resposta
- Execute
- sábio
- segurança
- Serviços
- de servir
- conjunto
- semelhante
- simples
- Software
- desenvolvimento de software
- Soluções
- começo
- Declaração
- armazenamento
- Suportado
- suportes
- Suíça
- .
- Target
- teste
- ensaio
- Através da
- tempo
- token
- tráfego
- Training
- ui
- usuários
- valor
- Virtual
- web
- navegador web
- serviços web
- Windows
- dentro
- sem
- de gestão de documentos
- Força de trabalho
- trabalho
- anos