

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
<a name="model-registry-restrict-s3-access"></a>

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
<a name="model-registry-restrict-s3-access-role"></a>

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 isso`sts: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
<a name="model-registry-restrict-s3-access-scp"></a>

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 marcada`ManagedBy=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](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html).

```
{
  "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` on`aws: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
<a name="model-registry-restrict-s3-access-bucket"></a>

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
<a name="model-registry-restrict-s3-access-monitor"></a>

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 abaixo`requestParameters`. 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 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html) de políticas do IAM.