Segurança e permissões - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Segurança e permissões

Quando você consulta dados do Athena ou do Amazon Redshift, o conjunto de dados consultado é automaticamente armazenado no bucket SageMaker padrão do S3 para a região na qual você está usando AWS o Studio Classic. Além disso, quando você exporta um notebook Jupyter do Amazon SageMaker Data Wrangler e o executa, seus fluxos de dados, ou arquivos.flow, são salvos no mesmo bucket padrão, sob o prefixo data_wrangler_flows.

Para necessidades de segurança de alto nível, você pode configurar uma política de bucket que restrinja as AWS funções que têm acesso a esse bucket padrão do SageMaker S3. Use a seção a seguir para adicionar esse tipo de política a um bucket do S3. Para seguir as instruções nesta página, use o AWS Command Line Interface (AWS CLI). Para saber como, consulte Configurando o AWS CLI no Guia do IAM Usuário.

Além disso, você precisa conceder permissões a cada IAM função que usa o Data Wrangler para acessar os recursos necessários. Se você não precisar de permissões granulares para a IAM função usada para acessar o Data Wrangler, poderá adicionar a política IAM gerenciada, AmazonSageMakerFullAccess, a uma IAM função usada para criar seu usuário do Studio Classic. Esta política concede a você permissão total para usar o Data Wrangler. Se você precisar de permissões mais granulares, consulte a seção Conceder permissão a uma IAM função para usar o Data Wrangler.

Adicione uma política de bucket para restringir o acesso aos conjuntos de dados importados para o Data Wrangler

Você pode adicionar uma política ao bucket do S3 que contém seus recursos do Data Wrangler usando uma política de bucket do Amazon S3. Os recursos que o Data Wrangler carrega para seu bucket padrão do SageMaker S3 na AWS região em que você está usando o Studio Classic incluem o seguinte:

  • Resultados consultados do Amazon Redshift. Eles são armazenados sob o prefixo redshift/.

  • Resultados consultados de Athena. Eles são armazenados sob o prefixo redshift/.

  • Os arquivos.flow são enviados para o Amazon S3 quando você executa um notebook Jupyter exportado produzido pelo Data Wrangler. Eles são armazenados sob o prefixo data_wrangler_flows/.

Use o procedimento a seguir para criar uma política de bucket do S3 que você pode adicionar para restringir o acesso da IAM função a esse bucket. Para saber como adicionar uma política a um bucket do S3, consulte Como adicionar uma política de bucket usando o console do S3?.

Para configurar uma política de bucket no bucket do S3 que armazena seus recursos do Data Wrangler:
  1. Configure uma ou mais IAM funções que você deseja que possam acessar o Data Wrangler.

  2. Abra um prompt de comando ou shell. Para cada função que você criar, substitua role-name com o nome da função e execute o seguinte:

    $ aws iam get-role --role-name role-name

    Na resposta, você vê uma string RoleId que começa comAROA. Copie essa string.

  3. Adicione a política a seguir ao bucket SageMaker padrão na AWS região em que você está usando o Data Wrangler. Substituir region com a AWS região na qual o bucket está localizado, e account-id com o ID AWS da sua conta. userIdSubstitua s começando por AROAEXAMPLEID com as IDs AWS funções às quais você deseja conceder permissão para usar o Data Wrangler.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/", "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/*", "arn:aws:s3:::sagemaker-region-account-id/athena", "arn:aws:s3:::sagemaker-region-account-id/athena/*", "arn:aws:s3:::sagemaker-region-account-id/redshift", "arn:aws:s3:::sagemaker-region-account-id/redshift/*" ], "Condition": { "StringNotLike": { "aws:userId": [ "AROAEXAMPLEID_1:*", "AROAEXAMPLEID_2:*" ] } } } ] }

Crie uma lista de permissões para o Data Wrangler

Sempre que um usuário começa a executar o Data Wrangler a partir da interface de usuário do Amazon SageMaker Studio Classic, ele faz uma chamada para a interface de programação do SageMaker aplicativo (API) para criar um aplicativo Data Wrangler.

Sua organização pode não fornecer aos usuários permissões para fazer essas API chamadas por padrão. Para fornecer permissões, você deve criar e anexar uma política às IAM funções do usuário usando o seguinte modelo de política: Exemplo de lista de permissões do Data Wrangler.

nota

O exemplo de política anterior só dá aos usuários acesso ao aplicativo Data Wrangler.

Para obter informações sobre como criar uma política, consulte Criação de políticas na JSON guia. Ao criar uma política, copie e cole a JSON política do Exemplo de Lista de Permissões do Data Wrangler na JSONguia.

Importante

Exclua todas IAM as políticas que impedem que os usuários executem as seguintes operações:

Se você não excluir as políticas, seus usuários ainda poderão ser afetados por elas.

Depois de criar a política usando o modelo, anexe-a às IAM funções dos seus usuários. Para obter informações sobre como anexar uma política, consulte Adicionar permissões de IAM identidade (console).

Conceder permissão a uma IAM função para usar o Data Wrangler

Você pode conceder a uma IAM função permissão para usar o Data Wrangler com a política geral IAM gerenciada,. AmazonSageMakerFullAccess Essa é uma política geral que inclui as permissões necessárias para usar todos os SageMaker serviços. Essa política concede a uma IAM função acesso total ao Data Wrangler. Você deve estar ciente do seguinte ao usar AmazonSageMakerFullAccess para conceder acesso ao Data Wrangler:

  • Se você importar dados do Amazon Redshift, o nome de usuário do banco de dados deverá ter o prefixo. sagemaker_access

  • Essa política gerenciada só concede permissão para acessar buckets com um dos seguintes no nome:SageMaker, SageMaker, sagemaker ouaws-glue. Se quiser usar o Data Wrangler para importar de um bucket do S3 sem essas frases no nome, consulte a última seção desta página para saber como conceder permissão a uma IAM entidade para acessar seus buckets do S3.

Se você tiver necessidades de alta segurança, poderá anexar as políticas desta seção a uma IAM entidade para conceder as permissões necessárias para usar o Data Wrangler.

Se você tiver conjuntos de dados no Amazon Redshift ou no Athena que IAM uma função precisa importar do Data Wrangler, você deve adicionar uma política a essa entidade para acessar esses recursos. As políticas a seguir são as políticas mais restritivas que você pode usar para dar permissão a uma IAM função para importar dados do Amazon Redshift e do Athena.

Para saber como anexar uma política personalizada a uma IAM função, consulte Gerenciamento de IAM políticas no Guia do IAM usuário.

Exemplo de política para conceder acesso a uma importação de conjunto de dados do Athena

A política a seguir pressupõe que a IAM função tenha permissão para acessar o bucket S3 subjacente, onde os dados são armazenados por meio de uma política separadaIAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListDataCatalogs", "athena:ListDatabases", "athena:ListTableMetadata", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "glue:CreateTable" ], "Resource": [ "arn:aws:glue:*:*:table/*/sagemaker_tmp_*", "arn:aws:glue:*:*:table/sagemaker_featurestore/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*" ] }, { "Effect": "Allow", "Action": [ "glue:DeleteTable" ], "Resource": [ "arn:aws:glue:*:*:table/*/sagemaker_tmp_*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*" ] }, { "Effect": "Allow", "Action": [ "glue:GetDatabases", "glue:GetTable", "glue:GetTables" ], "Resource": [ "arn:aws:glue:*:*:table/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*" ] }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:GetDatabase" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/sagemaker_featurestore", "arn:aws:glue:*:*:database/sagemaker_processing", "arn:aws:glue:*:*:database/default", "arn:aws:glue:*:*:database/sagemaker_data_wrangler" ] } ] }

Exemplo de política para conceder acesso a uma importação de conjunto de dados do Redshift

A política a seguir concede permissão para configurar uma conexão do Amazon Redshift com o Data Wrangler usando usuários do banco de dados que tenham o prefixo sagemaker_access no nome. Para conceder permissão para se conectar usando usuários adicionais do banco de dados, adicione mais entradas sob "Resources" na política a seguir. A política a seguir pressupõe que a IAM função tenha permissão para acessar o bucket S3 subjacente, onde os dados são armazenados por meio de uma IAM política separada, se aplicável.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:CancelStatement", "redshift-data:GetStatementResult", "redshift-data:ListSchemas", "redshift-data:ListTables" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:*:*:dbuser:*/sagemaker_access*", "arn:aws:redshift:*:*:dbname:*" ] } ] }

Política para conceder acesso para um bucket do S3

Se seu conjunto de dados estiver armazenado no Amazon S3, você poderá conceder a IAM uma função permissão para acessar esse bucket com uma política semelhante à seguinte. Este exemplo concede acesso programático de leitura e gravação ao bucket chamado test.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::test"] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::test/*"] } ] }

Para importar dados do Athena e do Amazon Redshift, você deve conceder a IAM uma função permissão para acessar os seguintes prefixos no bucket padrão do Amazon S3 na região Data Wrangler em AWS que está sendo usado:,. athena/ redshift/ Se um bucket padrão do Amazon S3 ainda não existir na AWS região, você também deverá dar permissão à IAM função para criar um bucket nessa região.

Além disso, se você quiser que a IAM função possa usar as opções de exportação de trabalhos do Amazon SageMaker Feature Store, Pipelines e Data Wrangler, você deve conceder acesso ao prefixo data_wrangler_flows/ nesse bucket.

O Data Wrangler usa os prefixos athena/ e redshift/ para armazenar arquivos de visualização e conjuntos de dados importados. Para saber mais, consulte Armazenamento de dados importados.

O Data Wrangler usa o prefixo data_wrangler_flows/ para armazenar arquivos.flow quando você executa um Jupyter Notebook exportado do Data Wrangler. Para saber mais, consulte Export.

Use uma política semelhante à seguinte para conceder as permissões descritas nos parágrafos anteriores.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/", "arn:aws:s3:::sagemaker-region-account-id/data_wrangler_flows/*", "arn:aws:s3:::sagemaker-region-account-id/athena", "arn:aws:s3:::sagemaker-region-account-id/athena/*", "arn:aws:s3:::sagemaker-region-account-id/redshift", "arn:aws:s3:::sagemaker-region-account-id/redshift/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListBucket" ], "Resource": "arn:aws:s3:::sagemaker-region-account-id" }, { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": "*" } ] }

Você também pode acessar dados em seu bucket do Amazon S3 a partir de outra AWS conta especificando o bucket do Amazon S3. URI Para fazer isso, a IAM política que concede acesso ao bucket do Amazon S3 na outra conta deve usar uma política semelhante ao exemplo a seguir, onde BucketFolder está o diretório específico no bucket do usuário. UserBucket Essa política deve ser adicionada ao usuário que concede acesso ao bucket para outro usuário.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::UserBucket/BucketFolder/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::UserBucket", "Condition": { "StringLike": { "s3:prefix": [ "BucketFolder/*" ] } } } ] }

O usuário que está acessando o bucket (não o proprietário do bucket) deve adicionar uma política semelhante ao exemplo a seguir para seu usuário. Observe que AccountX e TestUser abaixo se refere ao proprietário do bucket e seu usuário, respectivamente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountX:user/TestUser" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::UserBucket/BucketFolder/*" ] }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountX:user/TestUser" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::UserBucket" ] } ] }

Exemplo de política para conceder acesso ao uso do SageMaker Studio

Use uma política como a seguinte para criar uma função de IAM execução que possa ser usada para configurar uma instância do Studio Classic.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:DescribeUserProfile", "sagemaker:ListUserProfiles", "sagemaker:*App", "sagemaker:ListApps" ], "Resource": "*" } ] }

Snowflake e Data Wrangler

Todas as permissões para AWS recursos são gerenciadas por meio de sua IAM função anexada à sua instância do Studio Classic. O administrador do Snowflake gerencia as permissões específicas do Snowflake, pois pode conceder permissões e privilégios granulares a cada usuário do Snowflake. Isso inclui bancos de dados, esquemas, tabelas, armazéns e objetos de integração de armazenamento. Você deve garantir que as permissões corretas sejam configuradas fora do Data Wrangler.

Observe que o COPY INTO Amazon S3 comando Snowflake move dados do Snowflake para o Amazon S3 pela Internet pública por padrão, mas os dados em trânsito são protegidos usando. SSL Os dados em repouso no Amazon S3 são criptografados com SSE - KMS usando o padrão. AWS KMS key

Com relação ao armazenamento de credenciais do Snowflake, o Data Wrangler não armazena as credenciais do cliente. O Data Wrangler usa o Secrets Manager para armazenar as credenciais em um segredo e alterna os segredos como parte de um plano de segurança de melhores práticas. O administrador do Snowflake ou do Studio Classic precisa garantir que a função de execução do Studio Classic do cientista de dados tenha permissão para atuar GetSecretValue no segredo que armazena as credenciais. Se já estiver vinculada à função de execução do Studio Classic, a AmazonSageMakerFullAccess política tem as permissões necessárias para ler segredos criados pelo Data Wrangler e segredos criados seguindo a convenção de nomenclatura e marcação nas instruções acima. Segredos que não seguem as convenções devem ter acesso concedido separadamente. Recomendamos usar o Secrets Manager para evitar o compartilhamento de credenciais em canais não seguros; no entanto, observe que um usuário conectado pode recuperar a senha em texto simples iniciando um terminal ou notebook Python no Studio Classic e, em seguida, invocando chamadas do Secrets Manager. API API

Criptografia de dados com AWS KMS

No Data Wrangler, você pode descriptografar arquivos criptografados e adicioná-los ao seu fluxo do Data Wrangler. Você também pode criptografar a saída das transformações usando uma AWS KMS chave padrão ou fornecida por você.

Você pode importar arquivos se eles tiverem o seguinte:

  • Criptografia do lado do servidor

  • SSE- KMS como o tipo de criptografia

Para descriptografar o arquivo e importá-lo para um fluxo do Data Wrangler, você deve adicionar o usuário do SageMaker Studio Classic que você está usando como usuário chave.

A captura de tela a seguir mostra uma função de usuário do Studio Classic adicionada como usuário principal. Consulte IAMFunções para acessar usuários no painel esquerdo para fazer essa alteração.

A seção Usuários principais no console.

Configuração de chave gerenciada pelo cliente do Amazon S3 para armazenamento de dados importados do Data Wrangler

Por padrão, o Data Wrangler usa buckets Amazon S3 que têm a seguinte convenção de nomenclatura: sagemaker-region-account number. Por exemplo, se o número da sua conta for 111122223333 e você estiver usando o Studio Classic em us-east-1, seus conjuntos de dados importados são armazenados com a seguinte convenção de nomenclatura:. sagemaker-us-east-1-111122223333

As instruções a seguir explicam como configurar uma chave gerenciada pelo cliente para seu bucket padrão do Amazon S3.

  1. Para habilitar a criptografia do lado do servidor e configurar uma chave gerenciada pelo cliente para seu bucket S3 padrão, consulte Como usar criptografia. KMS

  2. Depois de seguir a etapa 1, navegue até AWS KMS em seu AWS Management Console. Encontre a chave gerenciada pelo cliente que você selecionou na etapa 1 da etapa anterior e adicione a função Studio Classic como usuário principal. Para fazer isso, siga as instruções em Permite que os principais usuários usem uma chave gerenciada pelo cliente.

Criptografando os dados que você exporta

É possível criptografar os dados que você exporta usando um dos seguintes métodos:

  • Especificar que seu bucket do Amazon S3 tem SSE uso KMS de objetos - criptografia.

  • Especificar uma AWS KMS chave para criptografar os dados que você exporta do Data Wrangler.

Na página Exportar dados, especifique um valor para o ID da AWS KMS chave ou ARN.

Para obter mais informações sobre o uso de AWS KMS chaves, consulte Proteção de dados usando criptografia do lado do servidor com AWS KMS chaves armazenadas em AWSAWS Key Management Service (SSE-). KMS

AppFlow Permissões da Amazon

Ao realizar uma transferência, você deve especificar uma IAM função que tenha permissões para realizar a transferência. Você pode usar a mesma IAM função que tem permissões para usar o Data Wrangler. Por padrão, a IAM função que você usa para acessar o Data Wrangler é a. SageMakerExecutionRole

A IAM função deve ter as seguintes permissões:

  • Permissões para a Amazon AppFlow

  • Permissões para o catálogo AWS Glue de dados

  • Permissões AWS Glue para descobrir as fontes de dados que estão disponíveis

Quando você executa uma transferência, a Amazon AppFlow armazena os metadados da transferência no Catálogo de AWS Glue Dados. O Data Wrangler usa os metadados do catálogo para determinar se eles estão disponíveis para consulta e importação.

Para adicionar permissões à Amazon AppFlow, adicione a política AmazonAppFlowFullAccess AWS gerenciada à IAM função. Para obter mais informações sobre como adicionar políticas, consulte Adicionar ou remover permissões de IAM identidade.

Se você estiver transferindo dados para o Amazon S3, você também deve anexar a seguinte política.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:GetBucketTagging", "s3:ListBucketVersions", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketPolicy", "s3:PutEncryptionConfiguration", "s3:GetEncryptionConfiguration", "s3:PutBucketTagging", "s3:GetObjectTagging", "s3:GetBucketOwnershipControls", "s3:PutObjectTagging", "s3:DeleteObject", "s3:DeleteBucket", "s3:DeleteObjectTagging", "s3:GetBucketPublicAccessBlock", "s3:GetBucketPolicyStatus", "s3:PutBucketPublicAccessBlock", "s3:PutAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:PutBucketOwnershipControls", "s3:PutObjectVersionTagging", "s3:DeleteObjectVersionTagging", "s3:GetBucketVersioning", "s3:GetBucketAcl", "s3:PutObject", "s3:GetObject", "s3:GetAccountPublicAccessBlock", "s3:ListAllMyBuckets", "s3:GetAnalyticsConfiguration", "s3:GetBucketLocation" ], "Resource": "*" } ] }

Para adicionar AWS Glue permissões, adicione a política AWSGlueConsoleFullAccess gerenciada à IAM função. Para obter mais informações sobre AWS Glue permissões com a Amazon AppFlow, consulte [link-to-appflow-page].

A Amazon AppFlow precisa acessar AWS Glue um Data Wrangler para que você importe os dados que você transferiu. Para conceder AppFlow acesso à Amazon, adicione a seguinte política de confiança à IAM função.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root", "Service": [ "appflow.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Para exibir os AppFlow dados da Amazon no Data Wrangler, adicione a seguinte política à IAM função:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:SearchTables", "Resource": [ "arn:aws:glue:*:*:table/*/*", "arn:aws:glue:*:*:database/*", "arn:aws:glue:*:*:catalog" ] } ] }

Usando configurações de ciclo de vida no Data Wrangler

Você pode ter uma EC2 instância da Amazon configurada para executar aplicativos Kernel Gateway, mas não o aplicativo Data Wrangler. Os aplicativos Kernel Gateway fornecem acesso ao ambiente e aos kernels que você usa para executar notebooks e terminais Studio Classic. O aplicativo Data Wrangler é o aplicativo de interface do usuário que executa o Data Wrangler. EC2As instâncias da Amazon que não são instâncias do Data Wrangler exigem uma modificação em suas configurações de ciclo de vida para executar o Data Wrangler. As configurações de ciclo de vida são scripts de shell que automatizam a personalização do seu ambiente Amazon SageMaker Studio Classic.

Para obter mais informações sobre a configuração do ciclo de vida, consulte Use configurações de ciclo de vida para personalizar o Studio Classic.

A configuração padrão do ciclo de vida da sua instância não é compatível com o uso do Data Wrangler. Você pode fazer as seguintes modificações na configuração padrão para usar o Data Wrangler com sua instância.

#!/bin/bash set -eux STATUS=$( python3 -c "import sagemaker_dataprep" echo $? ) if [ "$STATUS" -eq 0 ]; then echo 'Instance is of Type Data Wrangler' else echo 'Instance is not of Type Data Wrangler' # Replace this with the URL of your git repository export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git" git -C /root clone $REPOSTIORY_URL fi

Você pode salvar o script como lifecycle_configuration.sh.

Você anexa a configuração do ciclo de vida ao seu domínio ou perfil de usuário do Studio Classic. Para obter mais informações sobre criar e gerenciar uma configuração de ciclo de vida, consulte Criar e associar uma configuração de ciclo de vida.

As instruções a seguir mostram como anexar uma configuração de ciclo de vida a um domínio ou perfil de usuário do Studio Classic.

Você pode encontrar erros ao criar ou anexar uma configuração de ciclo de vida. Para obter informações sobre depuração da configuração do ciclo de vida, consulte KernelGateway falha no aplicativo.