Conceder aos endpoints hospedados no SageMaker acesso a recursos na sua Amazon VPC
Configurar um modelo para acesso à Amazon VPC
Para especificar sub-redes e grupos de segurança na VPC privada, use o parâmetro de solicitação VpcConfig
da API CreateModel
ou forneça essas informações ao criar um modelo no console do SageMaker. O SageMaker usa essas informações para criar interfaces de rede e anexá-las aos seus contêineres de modelo. As interfaces de rede concedem aos contêineres de modelo uma conexão de rede na sua VPC, sem acesso à Internet. Além disso, permitem que o modelo conecte-se aos recursos da VPC privada.
nota
Você deve criar pelo menos duas sub-redes em diferentes zonas de disponibilidade na sua VPC privada, mesmo se tiver apenas uma instância de hospedagem.
Veja a seguir um exemplo do parâmetro VpcConfig
incluído na sua chamada para CreateModel
.
VpcConfig: { "Subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2" ], "SecurityGroupIds": [ "sg-0123456789abcdef0" ] }
Configurar sua VPC privada para hospedagem do SageMaker
Ao configurar a VPC privada para os seus modelos do SageMaker, use as diretrizes a seguir. Para obter informações sobre como configurar uma VPC, consulte Como trabalhar com VPCs e sub-redes no Guia do usuário da Amazon VPC.
Tópicos
- Certifique-se de que as sub-redes tenham endereços IP suficientes
- Criar um endpoint de VPC do Amazon S3
- Usar uma política de endpoint personalizada para restringir o acesso ao Amazon S3
- Adicionar permissões para acesso ao endpoint para contêineres em execução em uma VPC para políticas personalizadas do IAM
- Configurar tabelas de rotas
- Conectar-se a recursos fora de sua VPC
Certifique-se de que as sub-redes tenham endereços IP suficientes
As instâncias de treinamento que não usam um Elastic Fabric Adapter (EFA) devem ter pelo menos dois endereços IP privados. As instâncias de treinamento que não usam um EFA devem ter pelo menos cinco endereços IP privados. Para obter mais informações, consulte Vários endereços IP no Guia do usuário do Amazon EC2.
Criar um endpoint de VPC do Amazon S3
Se você configurar sua VPC para que os contêineres de modelos não tenham acesso à Internet, eles não poderão se conectar aos buckets do Amazon S3 que contêm os dados, a menos que você crie um endpoint de VPC que permita o acesso. Ao criar um endpoint de VPC, você permite que seus contêineres de modelo acessem os buckets em que você armazena seus dados e artefatos de modelo. Recomendamos que você também crie uma política personalizada para que apenas solicitações da sua VPC privada acessem os buckets do S3. Para obter mais informações, consulte Endpoints para Amazon S3.
Para criar um endpoint de VPC do Amazon S3:
-
Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/
. -
No painel de navegação, selecione Endpoints e Criar endpoint.
-
Em Nome do serviço, escolha com.amazonaws.
region
.s3, em que aregion
é o nome da região AWS em que a VPC reside. -
Em VPC, escolha a VPC que você deseja usar para esse endpoint.
-
Para Configurar tabelas de rotas, selecione as tabelas de rotas que o endpoint usará. O serviço VPC adiciona automaticamente uma rota a cada tabela de rotas selecionada que aponta o tráfego do Amazon S3 para o novo endpoint.
-
Em Política, escolha Acesso total para permitir acesso total ao serviço do Amazon S3 por qualquer usuário ou serviço dentro da VPC. Para restringir ainda mais o acesso, escolha Personalizar. Para obter mais informações, consulte Usar uma política de endpoint personalizada para restringir o acesso ao Amazon S3.
Usar uma política de endpoint personalizada para restringir o acesso ao Amazon S3
A política de endpoint padrão permite acesso total ao Amazon Simple Storage Service (Amazon S3) para qualquer usuário ou serviço em sua VPC. Para restringir ainda mais o acesso ao Amazon S3, crie uma política de endpoint personalizada. Para obter mais informações, consulte Usar políticas de endpoint para o Amazon S3.
Você também pode usar uma política de buckets para restringir o acesso aos seus buckets do S3 somente ao tráfego proveniente da sua Amazon VPC. Para obter informações, consulte Usar as Políticas do Bucket do Amazon S3.
Restringir a instalação do pacote no contêiner de modelo com uma política de endpoint personalizada
A política de endpoint padrão permite que os usuários instalem pacotes dos repositórios do Amazon Linux e do Amazon Linux 2 no contêiner de modelo. Se você não deseja que os usuários instalem pacotes desses repositórios, crie uma política de endpoint personalizada que negue explicitamente o acesso aos repositórios do Amazon Linux e Amazon Linux 2. Veja a seguir um exemplo de política que nega acesso somente a esses repositórios:
{ "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*" ] } ] } { "Statement": [ { "Sid": "AmazonLinux2AMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" ] } ] }
Adicionar permissões para acesso ao endpoint para contêineres em execução em uma VPC para políticas personalizadas do IAM
A política gerenciada SageMakerFullAccess
inclui as permissões que você precisa para usar modelos configurados para acesso à Amazon VPC com um endpoint. Essas permissões permitem que o SageMaker crie uma interface de rede elástica e a anexe a contêineres de modelo em execução em uma VPC. Se usar sua própria política do IAM, você deverá adicionar as seguintes permissões a essa política para usar modelos configurados para acesso à VPC:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "ec2:DescribeDhcpOptions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateNetworkInterface" ], "Resource": "*" } ] }
Para obter mais informações sobre a política gerenciada SageMakerFullAccess
, consulte Política gerenciada pela AWS: AmazonSageMakerFullAccess.
Configurar tabelas de rotas
Use as definições padrão de DNS da sua tabela de rotas de endpoint para que os URLs padrão do Amazon S3 (por exemplo, http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket
) resolvam. Se você não usar essas definições, verifique se os outros URLs conseguem resolver, os usados para especificar os locais dos dados nos modelos. Para isso, configure a tabelas de rotas de endpoint. Para obter informações sobre as tabelas de rotas de endpoints da VPC, consulte Roteamento para endpoints do gateway no Guia do usuário da Amazon VPC.
Conectar-se a recursos fora de sua VPC
Se você configurar a VPC para que não tenha acesso à Internet, os modelos que a utilizam não terão acesso a recursos externos. Se o seu modelo precisarem acessar recursos fora da VPC, conceda o acesso com uma das seguintes opções:
-
Se o modelo precisar de acesso a um serviço da AWS compatível com endpoints da VPC de interface, crie um endpoint para se conectar a esse serviço. Para obter uma lista dos serviços compatíveis com endpoints de interface, consulte Endpoint de VPCs no Guia do usuário da Amazon VPC. Para obter informações sobre como criar um endpoint de interface de VPC, consulte Endpoints de VPC (AWS PrivateLink) no Guia do usuário da Amazon VPC.
-
Se o seu modelo precisar acessar um serviço da AWS não compatível com endpoints da VPC de interface ou um recurso fora da AWS, crie um gateway NAT e configure seus grupos de segurança para permitir conexões de saída. Para obter informações sobre como configurar um gateway NAT para sua VPC, consulte Cenário 2: VPC com sub-redes pública e privada (NAT) no Guia do usuário da Amazon Virtual Private Cloud.