Como usar funções de execução de SageMaker IA - SageMaker IA da Amazon

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á.

Como usar funções de execução de SageMaker IA

A Amazon SageMaker AI realiza operações em seu nome usando outros AWS serviços. Você deve conceder permissões de SageMaker IA para usar esses serviços e os recursos sobre os quais eles atuam. Você concede essas permissões à SageMaker AI usando uma função de execução AWS Identity and Access Management (IAM). Para obter mais informações sobre perfis do IAM, consulte Perfis do IAM.

Para criar e usar um perfil de execução, você pode usar os seguintes procedimentos:

Criar perfil de execução

Use o procedimento a seguir para criar um perfil de execução com a política gerenciada do IAM AmazonSageMakerFullAccess, anexada. Se seu caso de uso exigir permissões mais granulares, use outras seções nesta página para criar um perfil de execução que atenda às suas necessidades comerciais. Você pode criar uma função de execução usando o console de SageMaker IA ou AWS CLI o.

Importante

A política gerenciada do IAM, AmazonSageMakerFullAccess, usada no procedimento a seguir, somente concede ao perfil de execução permissão para realizar determinadas ações do Amazon S3 em buckets ou objetos com SageMaker, Sagemaker, sagemaker ou aws-glue no nome. Para saber como adicionar uma política adicional a um perfil de execução para conceder acesso a outros buckets e objetos do Amazon S3, consulte. Adicionar permissões adicionais do Amazon S3 a uma função de execução de SageMaker IA

nota

Você pode criar uma função de execução diretamente ao criar um domínio de SageMaker IA ou uma instância de notebook.

Para criar uma nova função de execução a partir do console de SageMaker IA

  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. Escolha Perfis e, em seguida, selecione Criar perfil.

  3. Mantenha o AWS serviço como o tipo de entidade confiável e, em seguida, use a seta para baixo para encontrar a SageMaker IA em casos de uso de outros AWS serviços.

  4. Escolha SageMaker AI — Execução e, em seguida, escolha Avançar.

  5. A política gerenciada pelo IAM AmazonSageMakerFullAccess é anexada automaticamente ao perfil. Para visualizar as permissões incluídas nessa política, escolha o sinal de mais (+) ao lado do nome da política. Escolha Próximo.

  6. Insira um Nome do perfil e uma Descrição.

  7. (Opcional) Adicione outras permissões e tags ao perfil.

  8. Selecione Criar perfil.

  9. Na seção Perfis do console do IAM, encontre o perfil que você acabou de criar. Se necessário, use a caixa de texto para pesquisar o perfil usando o nome do perfil.

  10. Na página de resumo do perfil, anote o ARN.

Para criar um novo perfil de execução a partir do console do AWS CLI

Antes de criar uma função de execução usando o AWS CLI, certifique-se de atualizá-la e configurá-la seguindo as instruções em e(Opcional) Configure o AWS CLI, em seguida, continue com as instruções emConfiguração personalizada usando o AWS CLI.

Depois de criar uma função de execução, você pode associá-la a um domínio de SageMaker IA, a um perfil de usuário ou a uma instância do notebook Jupyter.

Você também pode aprovar o ARN de um perfil de execução para sua chamada de API. Por exemplo, usando o Amazon SageMaker Python SDK, você pode passar o ARN da sua função de execução para um estimador. No exemplo de código a seguir, criamos um estimador usando o contêiner do XGBoost algoritmo e passamos o ARN da função de execução como parâmetro. Para ver o exemplo completo de GitHub, consulte Previsão de rotatividade de clientes com XGBoost.

import sagemaker, boto3 from sagemaker import image_uris sess = sagemaker.Session() region = sess.boto_region_name bucket = sess.default_bucket() prefix = "sagemaker/DEMO-xgboost-churn" container = sagemaker.image_uris.retrieve("xgboost", region, "1.7-1") xgb = sagemaker.estimator.Estimator( container, execution-role-ARN, instance_count=1, instance_type="ml.m4.xlarge", output_path="s3://{}/{}/output".format(bucket, prefix), sagemaker_session=sess, ) ...

Adicionar permissões adicionais do Amazon S3 a uma função de execução de SageMaker IA

Quando você usa um recurso de SageMaker IA com recursos no Amazon S3, como dados de entrada, a função de execução especificada na sua solicitação (por exemploCreateTrainingJob) é usada para acessar esses recursos.

Se você anexar a política gerenciada do IAM, AmazonSageMakerFullAccess, a um perfil de execução, esse perfil terá permissão para realizar determinadas ações do Amazon S3 em buckets ou objetos comSageMaker, Sagemaker, sagemaker ou aws-glue no nome. Ele também terá permissão para realizar as seguintes ações em qualquer recurso do Amazon S3:

"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"

Para conceder a um perfil de execução permissões para acessar um ou mais buckets específicos no Amazon S3, você pode anexar ao perfil uma política semelhante à seguinte: Essa política concede a um perfil do IAM permissão para realizar todas as ações que o AmazonSageMakerFullAccess permite, mas restringe esse acesso aos buckets amzn-s3-demo-bucket1 e amzn-s3-demo-bucket2. Consulte a documentação de segurança do recurso de SageMaker IA específico que você está usando para saber mais sobre as permissões do Amazon S3 necessárias para esse recurso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }

Obtenha um perfil de execução

Você pode usar o console de SageMaker IA, o Amazon SageMaker Python SDK ou o AWS CLIpara recuperar o ARN e o nome da função de execução anexada a SageMaker um domínio, espaço ou perfil de usuário de IA.

Obtenha um perfil de execução de domínio

Veja a seguir instruções sobre como encontrar o perfil de execução do seu domínio.

Encontre o perfil de execução anexado ao seu domínio
  1. Abra o console de SageMaker IA https://console.aws.amazon.com/sagemaker/

  2. No painel de navegação à esquerda, escolha Domínios em Configurações de administrador.

  3. Escolha o link correspondente ao seu domínio.

  4. Escolha a guia Configurações do domínio.

  5. Na seção Configurações gerais, o ARN do perfil de execução está listado em Perfil de execução.

    O nome do perfil de execução vem depois da última / no ARN do perfil de execução.

Obtenha um perfil de execução de espaço

Veja a seguir instruções sobre como encontrar o perfil de execução do seu espaço.

Encontre o perfil de execução anexado ao seu espaço
  1. Abra o console de SageMaker IA https://console.aws.amazon.com/sagemaker/

  2. No painel de navegação à esquerda, escolha Domínios em Configurações de administrador.

  3. Escolha o link correspondente ao seu domínio.

  4. Escolha a guia Gerenciamento de espaço.

  5. Na seção Detalhes, o ARN do perfil de execução está listado em Perfil de execução.

    O nome do perfil de execução vem depois da última / no ARN do perfil de execução.

nota

O código a seguir deve ser executado em um ambiente de SageMaker IA, como qualquer outro IDEs no Amazon SageMaker Studio. Você receberá um erro se for executado get_execution_role fora de um ambiente de SageMaker IA.

O comando do get_execution_roleAmazon SageMaker Python SDK a seguir recupera o ARN da função de execução anexada ao espaço.

from sagemaker import get_execution_role role = get_execution_role() print(role)

O nome do perfil de execução vem depois da última / no ARN do perfil de execução.

Obtenha um perfil de execução

Veja a seguir instruções sobre como encontrar o perfil de execução de um usuário.

Encontre o perfil de execução anexado a um usuário
  1. Abra o console de SageMaker IA https://console.aws.amazon.com/sagemaker/

  2. No painel de navegação à esquerda, escolha Domínios em Configurações de administrador.

  3. Escolha o link correspondente ao seu domínio.

  4. Escolha a guia Perfis de usuário.

  5. Escolha o link correspondente ao seu usuário.

  6. Na seção Detalhes, o ARN do perfil de execução está listado em Perfil de execução.

    O nome do perfil de execução vem depois da última / no ARN do perfil de execução.

nota

Para usar os exemplos a seguir, você deve ter o AWS Command Line Interface (AWS CLI) instalado e configurado. Para mais informações, consulte Conceitos básicos da AWS CLI no Guia do usuário do AWS Command Line Interface para Version 2.

O comando get-caller-identity AWS CLI a seguir exibe informações sobre a identidade do IAM usada para autenticar a solicitação. O chamador é um usuário do IAM.

aws sts get-caller-identity

O nome do perfil de execução vem depois da última / no ARN do perfil de execução.

Mudar o perfil de execução

Uma função de execução é uma função do IAM que uma identidade de SageMaker IA (como um usuário, espaço ou domínio de SageMaker IA) assume. A alteração do perfil do IAM altera as permissões de todas as identidades que assumem esse perfil.

Quando você altera um perfil de execução, o perfil de execução do espaço correspondente também muda. Os efeitos da alteração podem levar algum tempo para se propagar.

  • Quando você altera o perfil de execução de um usuário, os espaços privados criados por esse usuário assumem o perfil de execução alterado.

  • Quando você altera o perfil de execução padrão de um espaço, os espaços compartilhados no domínio assumem o perfil de execução alterado.

Para obter mais informações sobre perfis de execução e espaços, consulte Compreendendo as permissões de espaço e os perfis de execução do domínio.

Você pode alterar o perfil de execução de uma identidade para um perfil diferente do IAM usando uma das instruções a seguir.

Se, em vez disso, você quiser modificar uma função que uma identidade está assumindo, consulte Modificar as permissões para o perfil de execução.

Alterar o perfil de execução padrão do domínio

Veja a seguir instruções sobre como alterar o perfil de execução padrão do seu domínio.

Alterar o perfil de execução padrão anexado ao seu domínio
  1. Abra o console de SageMaker IA https://console.aws.amazon.com/sagemaker/

  2. No painel de navegação à esquerda, escolha Domínios em Configurações de administrador.

  3. Escolha o link correspondente ao seu domínio.

  4. Escolha a guia Configurações do domínio.

  5. Na seção Configurações gerais, escolha Editar.

  6. Na seção Permissões, em Perfil de execução padrão, expanda a lista suspensa.

  7. Na lista suspensa, você pode escolher um perfil existente, inserir um ARN do perfil do IAM personalizado ou criar um novo perfil.

    Se você quiser criar uma nova função, poderá escolher a opção Criar função usando o assistente de criação.

  8. Escolha “Avançar” nas etapas a seguir e selecione “Enviar” na última etapa.

Alterar o perfil de execução padrão do espaço

Veja a seguir instruções sobre como alterar o perfil de execução padrão do seu espaço. A alteração desse perfil de execução mudará o perfil assumido por todos os espaços compartilhados no domínio.

Alterar o perfil de execução padrão do espaço para quando você criar um novo espaço
  1. Abra o console de SageMaker IA https://console.aws.amazon.com/sagemaker/

  2. No painel de navegação à esquerda, escolha Domínios em Configurações de administrador.

  3. Escolha o link correspondente ao seu domínio.

  4. Escolha a guia Configurações do domínio.

  5. Na seção Configurações gerais, escolha Editar.

  6. Na seção Permissões, em Perfil de execução padrão de espaço, expanda a lista suspensa.

  7. Na lista suspensa, você pode escolher um perfil existente, inserir um ARN do perfil do IAM personalizado ou criar um novo perfil.

    Se você quiser criar uma nova função, poderá escolher a opção Criar função usando o assistente de criação.

  8. Escolha Avançar nas etapas a seguir e selecione Enviar na última etapa.

Alterar o perfil de execução do perfil de usuário

Veja a seguir instruções sobre como alterar o perfil de execução de um usuário. A alteração desse perfil de execução mudará o perfil assumido por todos os espaços privados criados por esse usuário.

Alterar o perfil de execução anexado a um usuário
  1. Abra o console de SageMaker IA https://console.aws.amazon.com/sagemaker/

  2. No painel de navegação à esquerda, escolha Domínios em Configurações de administrador.

  3. Escolha o link correspondente ao seu domínio.

  4. Escolha a guia Perfis de usuário.

  5. Escolha o link correspondente ao nome do perfil do usuário.

  6. Selecione Editar.

  7. Na lista suspensa, você pode escolher um perfil existente, inserir um ARN do perfil do IAM personalizado ou criar um novo perfil.

    Se você quiser criar uma nova função, poderá escolher a opção Criar função usando o assistente de criação.

  8. Escolha Avançar nas etapas a seguir e selecione Enviar na última etapa.

Modificar as permissões para o perfil de execução

Você pode modificar as permissões existentes para a função de execução de uma identidade (como um usuário, espaço ou domínio de SageMaker IA). Isso é feito localizando o perfil apropriado do IAM que a identidade está assumindo e, em seguida, modificando esse perfil do IAM. O seguinte fornecerá instruções sobre como fazer isso por meio do console:

Quando você modifica um perfil de execução, o perfil de execução do espaço correspondente também muda. Os efeitos da mudança podem não ser imediatos.

  • Quando você modifica o perfil de execução de um usuário, os espaços privados criados por esse usuário assumem o perfil de execução modificado.

  • Quando você modifica o perfil de execução padrão de um espaço, os espaços compartilhados no domínio assumem o perfil de execução modificado.

Para obter mais informações sobre perfis de execução e espaços, consulte Compreendendo as permissões de espaço e os perfis de execução do domínio.

Se, em vez disso, você quiser alterar uma função que uma identidade está assumindo, consulte Mudar o perfil de execução.

Para modificar as permissões para seus perfis de execução
  1. Primeiro, obtenha o nome da identidade que você gostaria de modificar.

  2. Para modificar um perfil que uma identidade está assumindo, consulte Como modificar uma função no Guia do usuário do AWS Identity and Access Management .

    Para obter mais informações e instruções sobre como adicionar permissões a identidades do IAM, consulte Adicionar ou remover permissões de identidade no Guia do usuário do AWS Identity and Access Management .

Perfis de aprovação

Ações como passar uma função entre serviços são uma função comum na SageMaker IA. Você pode encontrar mais detalhes sobre ações, recursos e chaves de condição para SageMaker IA na Referência de autorização de serviço.

Você passa a função (iam:PassRole) ao fazer estas chamadas de API: CreateAutoMLJob, CreateCompilationJob, CreateDomain, CreateFeatureGroup, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringSchedule, CreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplate, UpdateImage e UpdateNotebookInstance.

Você anexa a seguinte política de confiança à função do IAM, que concede permissões principais à SageMaker IA para assumir a função, e é a mesma para todas as funções de execução:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

As permissões que você precisa conceder ao perfil variam de acordo com a API chamada. As seções a seguir explicam essas permissões.

nota

Em vez de gerenciar permissões criando uma política de permissões, você pode usar a política de AmazonSageMakerFullAccess permissões AWS gerenciadas. As permissões nessa política são bastante amplas, para permitir qualquer ação que você queira realizar na SageMaker IA. Para obter uma listagem da política, incluindo informações sobre os motivos para adicionar muitas das permissões, consulte AWS política gerenciada: AmazonSageMakerFullAccess. Se você preferir criar políticas personalizadas e gerenciar permissões para definir o escopo das permissões somente para as ações que você precisa executar com o perfil de execução, consulte os tópicos a seguir.

Importante

Se você estiver enfrentando problemas, consulte Solução de problemas de identidade e acesso ao Amazon SageMaker AI.

Para obter mais informações sobre os perfis do IAM, consulte Perfis do IAM na Referência de autorização de serviço.

CreateAutoMLJob e API CreateAuto MLJob V2: permissões da função de execução

Anexe a seguinte política de permissões mínimas ao perfil de execução se quiser passar uma solicitação de API CreateAutoMLJob ou CreateAutoMLJobV2:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:DescribeEndpoint", "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint", "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Se você especificar uma VPC privada para o seu trabalho de AutoML, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se sua entrada for criptografada usando criptografia do lado do servidor com uma chave AWS gerenciada pelo KMS (SSE-KMS), adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se você especificar uma chave do KMS na configuração de saída do seu trabalho de AutoML, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se você especificar uma chave do KMS de volume na configuração de recursos do seu trabalho de AutoML, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateDomain API: permissões da função de execução

A função de execução para domínios com o IAM Identity Center e a função de usuário/execução para domínios IAM precisam das seguintes permissões quando você passa uma chave gerenciada pelo AWS KMS cliente como KmsKeyId na solicitação da API. CreateDomain As permissões são aplicadas durante a chamada da API CreateApp.

Anexe a seguinte política de permissões a um perfil de execução se quiser aprovar o perfil em uma solicitação de API CreateDomain:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:account-id:key/kms-key-id" } ] }

Como alternativa, se as permissões forem especificadas em uma política do KMS, você poderá anexar a seguinte política ao perfil:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/ExecutionRole" ] }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

CreateImage e UpdateImage APIs: Permissões da função de execução

Anexe a seguinte política de permissões a um perfil de execução se quiser passar o perfil em uma solicitação de API CreateImage ou UpdateImage:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }

CreateNotebookInstance API: permissões da função de execução

As permissões concedidas ao perfil de execução para chamar a API CreateNotebookInstance dependem do que você pretende fazer com a instância de caderno. Se você planeja usá-la para invocar a SageMaker IA APIs e transmitir a mesma função ao chamar o CreateTrainingJob e CreateModel APIs, anexe a seguinte política de permissões à função:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage", "ecr:CreateRepository", "cloudwatch:PutMetricData", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication", "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob", "ec2:CreateVpcEndpoint", "ec2:DescribeRouteTables", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Para restringir as permissões, limite-as a recursos específicos do Amazon S3 e do Amazon ECR. Basta restringir o "Resource": "*", da seguinte forma:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "cloudwatch:PutMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object1", "arn:aws:s3:::outputbucket/path", "arn:aws:s3:::inputbucket/object2", "arn:aws:s3:::inputbucket/object3" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region::repository/my-repo1", "arn:aws:ecr:region::repository/my-repo2", "arn:aws:ecr:region::repository/my-repo3" ] } ] }

Se você planeja acessar outros recursos, como o Amazon DynamoDB ou o Amazon Relational Database Service, adicione permissões relevantes a essa política.

Na política anterior, você define o escopo da política da seguinte forma:

  • Defina o escopo da permissão s3:ListBucket ao bucket específico definido como InputDataConfig.DataSource.S3DataSource.S3Uri em uma solicitação CreateTrainingJob.

  • Defina o escopo das permissões s3:GetObject , s3:PutObject e s3:DeleteObject da seguinte forma:

    • Defina o escopo para os seguintes valores especificados em uma solicitação CreateTrainingJob:

      InputDataConfig.DataSource.S3DataSource.S3Uri

      OutputDataConfig.S3OutputPath

    • Defina o escopo para os seguintes valores especificados em uma solicitação CreateModel:

      PrimaryContainer.ModelDataUrl

      SuplementalContainers.ModelDataUrl

  • Defina o escopo das permissões ecr da seguinte forma:

    • Defina o escopo para o valor AlgorithmSpecification.TrainingImage especificado em uma solicitação CreateTrainingJob.

    • Defina o escopo para o valor PrimaryContainer.Image especificado em uma solicitação CreateModel:

As ações cloudwatch e logs são aplicáveis a recursos "*". Para obter mais informações, consulte CloudWatch Recursos e operações no Guia do CloudWatch usuário da Amazon.

CreateHyperParameterTuningJob API: permissões da função de execução

Anexe a seguinte política de permissões a um perfil de execução se quiser passar o perfil em uma solicitação de API CreateHyperParameterTuningJob:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Em vez de especificar"Resource": "*", você pode definir o escopo dessas permissões para recursos específicos do Amazon S3, Amazon ECR e Amazon CloudWatch Logs:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs*" } ] }

Se o contêiner de treinamento associado ao trabalho de ajuste de hiperparâmetros precisar acessar outras fontes de dados, como recursos do DynamoDB ou do Amazon RDS, adicione permissões relevantes a essa política.

Na política anterior, você define o escopo da política da seguinte forma:

  • Defina o escopo da permissão s3:ListBucket a um bucket específico definido como InputDataConfig.DataSource.S3DataSource.S3Uri em uma solicitação CreateTrainingJob.

  • Defina o escopo das permissões s3:GetObject e s3:PutObject para os seguintes objetos especificados na configuração dos dados de entrada e saída em uma solicitação CreateHyperParameterTuningJob:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Defina o escopo das permissões do Amazon ECR para o caminho do registro (AlgorithmSpecification.TrainingImage) especificado em uma solicitação CreateHyperParameterTuningJob.

  • Defina o escopo das permissões do Amazon CloudWatch Logs para registrar um grupo de trabalhos de SageMaker treinamento.

As ações cloudwatch são aplicáveis a recursos "*". Para obter mais informações, consulte CloudWatch Recursos e operações no Guia do CloudWatch usuário da Amazon.

Se você especificar uma VPC privada para o seu trabalho de ajuste de hiperparâmetros, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se sua entrada for criptografada usando criptografia do lado do servidor com uma chave AWS gerenciada pelo KMS (SSE-KMS), adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se você especificar uma chave KMS na configuração de saída do seu trabalho de ajuste de hiperparâmetros, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se você especificar uma chave KMS de volume na configuração de recursos do seu trabalho de ajuste de hiperparâmetros, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateProcessingJob API: permissões da função de execução

Anexe a seguinte política de permissões a um perfil de execução se quiser passar o perfil em uma solicitação de API CreateProcessingJob:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Em vez de especificar "Resource": "*", você poderia definir o escopo destas permissões para recursos específicos do Amazon S3 e do Amazon ECR:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" } ] }

Se CreateProcessingJob.AppSpecification.ImageUri precisar acessar outras fontes de dados, como os recursos do DynamoDB ou do Amazon RDS, adicione permissões relevantes a essa política.

Na política anterior, você define o escopo da política da seguinte forma:

  • Defina o escopo da permissão s3:ListBucket a um bucket específico definido como ProcessingInputs em uma solicitação CreateProcessingJob.

  • Defina como escopo das permissões s3:GetObject e s3:PutObject os objetos que serão obtidos por download ou dos quais será feito upload no ProcessingInputs e no ProcessingOutputConfig em uma solicitação CreateProcessingJob.

  • Defina o escopo das permissões do Amazon ECR para o caminho do registro (AppSpecification.ImageUri) especificado em uma solicitação CreateProcessingJob.

As ações cloudwatch e logs são aplicáveis a recursos "*". Para obter mais informações, consulte CloudWatch Recursos e operações no Guia do CloudWatch usuário da Amazon.

Se você especificar uma VPC privada para o trabalho de processamento, adicione as seguintes permissões: Não defina o escopo da política com nenhuma condição ou filtro de recursos. Caso contrário, as verificações de validação que ocorrem durante a criação do trabalho de processamento falharão.

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se sua entrada for criptografada usando criptografia do lado do servidor com uma chave AWS gerenciada pelo KMS (SSE-KMS), adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se você especificar uma chave do KMS na configuração de saída do trabalho de processamento, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se você especificar uma chave do KMS de volume na configuração de recursos do trabalho de processamento, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateTrainingJob API: permissões da função de execução

Anexe a seguinte política de permissões a um perfil de execução se quiser passar o perfil em uma solicitação de API CreateTrainingJob:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Em vez de especificar "Resource": "*", você poderia definir o escopo destas permissões para recursos específicos do Amazon S3 e do Amazon ECR:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" } ] }

Se CreateTrainingJob.AlgorithSpecifications.TrainingImage precisar acessar outras fontes de dados, como os recursos do DynamoDB ou do Amazon RDS, adicione permissões relevantes a essa política.

Na política anterior, você define o escopo da política da seguinte forma:

  • Defina o escopo da permissão s3:ListBucket a um bucket específico definido como InputDataConfig.DataSource.S3DataSource.S3Uri em uma solicitação CreateTrainingJob.

  • Defina o escopo das permissões s3:GetObject e s3:PutObject para os seguintes objetos especificados na configuração dos dados de entrada e saída em uma solicitação CreateTrainingJob:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Defina o escopo das permissões do Amazon ECR para o caminho do registro (AlgorithmSpecification.TrainingImage) especificado em uma solicitação CreateTrainingJob.

As ações cloudwatch e logs são aplicáveis a recursos "*". Para obter mais informações, consulte CloudWatch Recursos e operações no Guia do CloudWatch usuário da Amazon.

Se você especificar uma VPC privada para o seu trabalho de treinamento, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se sua entrada for criptografada usando criptografia do lado do servidor com uma chave AWS gerenciada pelo KMS (SSE-KMS), adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se você especificar uma chave KMS na configuração de saída do seu trabalho de treinamento, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se você especificar uma chave KMS de volume na configuração de recursos do seu trabalho de treinamento, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateModel API: permissões da função de execução

Anexe a seguinte política de permissões a um perfil de execução se quiser passar o perfil em uma solicitação de API CreateModel:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Em vez de especificar "Resource": "*", você pode definir o escopo destas permissões para recursos específicos do Amazon S3 e do Amazon ECR:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region::repository/my-repo", "arn:aws:ecr:region::repository/my-repo" ] } ] }

Se CreateModel.PrimaryContainer.Image precisar acessar outras fontes de dados, como os recursos do Amazon DynamoDB ou do Amazon RDS, adicione permissões relevantes a essa política.

Na política anterior, você define o escopo da política da seguinte forma:

  • Defina o escopo das permissões do S3 para os objetos especificados em PrimaryContainer.ModelDataUrl em uma solicitação CreateModel.

  • Defina o escopo das permissões do Amazon ECR para um caminho do registro específico definido como PrimaryContainer.Image e SecondaryContainer.Image em uma solicitação CreateModel.

As ações cloudwatch e logs são aplicáveis a recursos "*". Para obter mais informações, consulte CloudWatch Recursos e operações no Guia do CloudWatch usuário da Amazon.

nota

Se você planeja usar o recurso de proteções de implantação de SageMaker IA para implantação de modelos na produção, certifique-se de que sua função de execução tenha permissão para realizar a cloudwatch:DescribeAlarms ação em seus alarmes de reversão automática.

Se você especificar uma VPC privada para o seu modelo, adicione as seguintes permissões:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }