Isolar recursos do domínio - Amazon SageMaker

Isolar recursos do domínio

Importante

Políticas personalizadas do IAM que permitem que o Amazon SageMaker Studio ou o Amazon SageMaker Studio Classic criem recursos do Amazon SageMaker também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitir o uso de tags, erros de “AccessDenied” podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte Fornecer permissões para adicionar tags aos recursos do SageMaker.

Políticas gerenciadas pela AWS para o Amazon SageMaker que dão permissões para criar recursos do SageMaker já incluem permissões para adicionar tags ao criar esses recursos.

Você pode isolar recursos entre cada um dos domínios em sua conta e Região da AWS usando uma política AWS Identity and Access Management (IAM). Os recursos isolados não serão mais acessados a partir de outros domínios. Neste tópico, discutiremos as condições necessárias para a política do IAM e como aplicá-las.

Os recursos que podem ser isolados por essa política são os tipos de recursos que têm chaves de condição contendo aws:ResourceTag/${TagKey} ou sagemaker:ResourceTag/${TagKey}. Para obter uma referência sobre os recursos do SageMaker e as chaves de condição associadas, consulte Ações, recursos e chaves de condição para o Amazon SageMaker.

Atenção

Os tipos de recursos que não contêm as chaves de condição acima (e, portanto, as ações que usam os tipos de recursos) não são afetados por essa política de isolamento de recursos. Por exemplo, o tipo de recurso pipeline-execution não contém as chaves de condição acima e não é afetado por essa política. Portanto, algumas ações, com o tipo de recurso pipeline-execution, que não são compatíveis com o isolamento de recursos:

  • DescribePipelineExecution

  • StopPipelineExecution

  • UpdatePipelineExecution

  • RetryPipelineExecution

  • DescribePipelineDefinitionForExecution

  • ListPipelineExecutionSteps

  • SendPipelineExecutionStepSuccess

  • SendPipelineExecutionStepFailure

O tópico a seguir mostra como criar uma nova política do IAM que limita o acesso aos recursos no domínio aos perfis de usuário com a tag de domínio, além de como anexar essa política ao perfil de execução do IAM do domínio. Você deve repetir esse processo para cada domínio em sua conta. Para obter mais informações sobre tags de domínio e preenchimento dessas tags, consulte Visão geral de vários domínios.

Console

A seção a seguir mostra como criar uma nova política do IAM que limita o acesso aos recursos no domínio aos perfis de usuário com a tag de domínio, além de como anexar essa política ao perfil de execução do IAM do domínio a partir do console do Amazon SageMaker.

nota

Essa política só funciona em domínios que usam o Amazon SageMaker Studio Classic como experiência padrão.

  1. Crie uma política do IAM nomeada StudioDomainResourceIsolationPolicy-domain-id com o seguinte documento de política JSON concluindo as etapas em Criação de políticas do IAM (console):

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAPIs", "Effect": "Allow", "Action": "sagemaker:Create*", "NotResource": [ "arn:aws:sagemaker:*:*:domain/*", "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*" ] }, { "Sid": "ResourceAccessRequireDomainTag", "Effect": "Allow", "Action": [ "sagemaker:Update*", "sagemaker:Delete*", "sagemaker:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:domain-arn": "domain-arn" } } }, { "Sid": "AllowActionsThatDontSupportTagging", "Effect": "Allow", "Action": [ "sagemaker:DescribeImageVersion", "sagemaker:UpdateImageVersion", "sagemaker:DeleteImageVersion", "sagemaker:DescribeModelCardExportJob", "sagemaker:DescribeAction" ], "Resource": "*" }, { "Sid": "DeleteDefaultApp", "Effect": "Allow", "Action": "sagemaker:DeleteApp", "Resource": "arn:aws:sagemaker:*:*:app/domain-id/*/jupyterserver/default" } ] }
  2. Anexe a política StudioDomainResourceIsolationPolicy-domain-id ao perfil de execução do domínio concluindo as etapas em Como modificar um perfil (console).

AWS CLI

A seção a seguir mostra como criar uma nova política do IAM que limita o acesso aos recursos no domínio aos perfis de usuário com a tag de domínio, além de como anexar essa política ao perfil de execução do domínio a partir da AWS CLI.

nota

Essa política só funciona em domínios que usam o Amazon SageMaker Studio Classic como experiência padrão.

  1. Crie um arquivo denominado StudioDomainResourceIsolationPolicy-domain-id com o conteúdo a seguir a partir da sua máquina local.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAPIs", "Effect": "Allow", "Action": "sagemaker:Create*", "NotResource": [ "arn:aws:sagemaker:*:*:domain/*", "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*" ] }, { "Sid": "ResourceAccessRequireDomainTag", "Effect": "Allow", "Action": [ "sagemaker:Update*", "sagemaker:Delete*", "sagemaker:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:domain-arn": "domain-arn" } } }, { "Sid": "AllowActionsThatDontSupportTagging", "Effect": "Allow", "Action": [ "sagemaker:DescribeImageVersion", "sagemaker:UpdateImageVersion", "sagemaker:DeleteImageVersion", "sagemaker:DescribeModelCardExportJob", "sagemaker:DescribeAction" ], "Resource": "*" }, { "Sid": "DeleteDefaultApp", "Effect": "Allow", "Action": "sagemaker:DeleteApp", "Resource": "arn:aws:sagemaker:*:*:app/domain-id/*/jupyterserver/default" } ] }
  2. Crie uma nova política do IAM usando o arquivo StudioDomainResourceIsolationPolicy-domain-id.

    aws iam create-policy --policy-name StudioDomainResourceIsolationPolicy-domain-id --policy-document file://StudioDomainResourceIsolationPolicy-domain-id
  3. Anexe a política recém-criada a um perfil novo ou existente que seja usado como perfil de execução do domínio.

    aws iam attach-role-policy --policy-arn arn:aws:iam:account-id:policy/StudioDomainResourceIsolationPolicy-domain-id --role-name domain-execution-role