View a markdown version of this page

Restrinja o acesso a artefatos às implantações de pacotes de modelos - 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á.

Restrinja o acesso a artefatos às implantações de pacotes de modelos

Quando você compartilha um pacote modelo entre contas, a função de execução da conta consumidora precisa s3:GetObject dos artefatos do modelo na conta de produção. Por padrão, essa permissão se aplica sempre que a função é usada. Como resultado, qualquer diretor que usa a função pode ler os artefatos de um notebook, de um trabalho de treinamento ou por meio de uma chamada direta à API, não apenas enquanto um pacote modelo está sendo implantado.

Você pode restringir esse acesso para que somente uma implantação de pacote modelo possa ler os artefatos. Durante a implantação, a SageMaker IA aplica a tag de sessão sagemaker:ModelPackageArn à sessão de função de execução que ela assume. O valor da tag é o ARN do pacote modelo que está sendo implantado. Portanto, uma política de bucket que exige essa tag concede acesso somente às sessões de implantação.

Isso requer três peças trabalhando juntas. Todos os três são seus para configurar; a SageMaker IA fornece somente a tag de sessão:

  • Uma função de execução marcada ManagedBy=SageMaker cuja política de confiança permite que somente o diretor do serviço de SageMaker IA a assuma.

  • Uma política de controle de serviços que impede que qualquer pessoa, além da SageMaker IA, assuma essa função ou defina a chave da sagemaker:ModelPackageArn tag. Sem isso, um diretor com permissão para ligar AWS STS pode fornecer a etiqueta sozinho.

  • Uma política de bucket do Amazon S3 que é concedida s3:GetObject somente quando a sessão carrega a tag, o chamador está na sua organização e a função está marcada. ManagedBy=SageMaker

Importante

O SCP é o que torna a tag de sessão confiável. Se você aplicar a política de bucket sem o SCP, um diretor que possa assumir diretamente a função de execução poderá anexar a sagemaker:ModelPackageArn tag à sua própria sessão e satisfazer a política de bucket.

Etapa 1: Identificar e definir o escopo da função de execução

Na conta de consumo, marque a função de execução ManagedBy=SageMaker e restrinja sua política de confiança ao principal do serviço de SageMaker IA. A política de confiança deve permitir sts:AssumeRole sts:TagSession e. Sem issosts:TagSession, a SageMaker IA não pode aplicar a tag de sagemaker:ModelPackageArn sessão, e o Amazon S3 nega todas as leituras exigidas pela política de bucket na Etapa 3.

{ "RoleName": "GovernedModelExecutionRole", "Tags": [ { "Key": "ManagedBy", "Value": "SageMaker" } ], "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] }] } }

Etapa 2: adicionar uma política de controle de serviços

Anexe o seguinte SCP em sua organização. A primeira declaração permite que somente o diretor do serviço de SageMaker IA assuma uma função marcadaManagedBy=SageMaker. A segunda permite que somente a SageMaker IA defina a chave da sagemaker:ModelPackageArn tag, que é a única chave de tag que a política do bucket avalia. Para obter mais informações, consulte Criar, atualizar e excluir políticas de controle de serviço.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNonSageMakerAssumeOnManagedRoles", "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "SageMaker" }, "StringNotEquals": { "aws:PrincipalServiceName": "sagemaker.amazonaws.com" } } }, { "Sid": "DenyTaggingProtectedKeysUnlessSageMaker", "Effect": "Deny", "Action": [ "iam:TagRole", "iam:UntagRole", "sts:TagSession" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/sagemaker:ModelPackageArn": "*" }, "StringNotEquals": { "aws:PrincipalServiceName": "sagemaker.amazonaws.com" } } } ] }
nota

Ambas as declarações usam StringNotEquals onaws:PrincipalServiceName, que é avaliado como verdadeiro quando a chave está ausente. Portanto, o SCP nega essas ações a todos os usuários e funções do IAM em suas contas membros, incluindo sessões que não envolvem nenhum diretor de serviço. Os SCPs não se aplicam às chamadas que AWS os serviços fazem com seus próprios diretores de serviço; a política de confiança da função, que concede acesso somente ao principal do serviço de SageMaker IA, é o que exclui outros serviços. AWS

Etapa 3: adicionar a política de bucket do Amazon S3

Na conta de produção, aplique a política a seguir ao balde que contém os artefatos do modelo. Todas as três condições devem ser válidas. O Amazon S3 nega qualquer sessão que não tenha uma.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyModelPackageDeployments", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::model-artifacts-bucket/model-package-prefix/*", "Condition": { "StringLike": { "aws:PrincipalTag/sagemaker:ModelPackageArn": "arn:aws:sagemaker:*:producer-account-id:model-package/model-package-group/*" }, "StringEquals": { "aws:PrincipalOrgID": "o-organization-id", "aws:PrincipalTag/ManagedBy": "SageMaker" } } } ] }

Usar Principal com um valor de * junto com essas condições significa que qualquer função em sua organização que esteja marcada ManagedBy=SageMaker e carregue a tag de implantação pode ler os artefatos. Você não precisa editar a política para cada função consumidora. O curinga no pacote de modelo ARN cobre todas as versões do grupo.

Importante

Escopo Resource para os artefatos de um único grupo de pacotes de modelos. Um prefixo abrangendo vários grupos permitiria que a implantação de um pacote modelo lesse os artefatos de outro grupo, porque a tag de sessão é verificada em relação ao curinga do grupo e não ao caminho do objeto.

Se os artefatos forem criptografados com uma AWS KMS chave gerenciada pelo cliente, a função de execução também precisará kms:Decrypt dessa chave. Conceda isso na política principal; uma política de IAM por si só não é suficiente.

Monitore o acesso a artefatos

Sua conta registra a marcação da sessão e a decisão de acesso resultante.

  • Em CloudTrail, o AssumeRole evento da função de execução lista as tags de sessão abaixorequestParameters. Confirme se sagemaker:ModelPackageArn está presente e corresponde ao pacote modelo que você implantou.

  • Nos eventos de dados ou registros de acesso ao servidor do Amazon S3, as GetObject solicitações contra o prefixo do artefato mostram se cada leitura foi permitida ou negada, para que você possa confirmar que o acesso não implantado está sendo recusado.

Antes de aplicar as políticas a um bucket de produção, você pode avaliá-las com o simulador de políticas do IAM para confirmar se uma sessão de implantação é permitida e se uma sessão sem a tag foi negada. Para obter mais informações, consulte Teste de políticas do IAM com o simulador de políticas do IAM.