

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Limita l'accesso agli artefatti alle distribuzioni dei pacchetti modello
<a name="model-registry-restrict-s3-access"></a>

Quando si condivide un pacchetto modello tra più account, il ruolo di esecuzione dell'account di consumo si basa `s3:GetObject` sugli artefatti del modello nell'account di produzione. Per impostazione predefinita, tale autorizzazione si applica ogni volta che viene utilizzato il ruolo. Di conseguenza, qualsiasi responsabile che utilizza il ruolo può leggere gli artefatti da un notebook, da un lavoro di formazione o tramite una chiamata diretta all'API, non solo durante l'implementazione di un pacchetto modello.

È possibile restringere tale accesso in modo che solo una distribuzione del pacchetto modello possa leggere gli artefatti. Durante la distribuzione, l' SageMaker IA applica il tag di sessione alla sessione con ruolo `sagemaker:ModelPackageArn` di esecuzione che assume. Il valore del tag è l'ARN del pacchetto modello da distribuire. Una bucket policy che richiede questo tag concede quindi l'accesso solo alle sessioni di distribuzione.

Ciò richiede che tre componenti lavorino insieme. Puoi configurarli tutti e tre; l' SageMaker IA fornisce solo il tag di sessione:
+ Un ruolo di esecuzione contrassegnato `ManagedBy=SageMaker` la cui politica di fiducia consente solo al responsabile del servizio SageMaker AI di assumerlo.
+ Una politica di controllo del servizio che impedisce a chiunque non sia l' SageMaker IA di assumere quel ruolo o di impostare la chiave del `sagemaker:ModelPackageArn` tag. Senza questo, un responsabile con il permesso di chiamare AWS STS potrebbe fornire il tag da solo.
+ Una bucket policy di Amazon S3 che viene concessa `s3:GetObject` solo quando la sessione contiene il tag, il chiamante è all'interno dell'organizzazione e il ruolo è taggato. `ManagedBy=SageMaker`

**Importante**  
L'SCP è ciò che rende affidabile il tag di sessione. Se applichi la policy del bucket senza l'SCP, un principal che può assumere direttamente il ruolo di esecuzione può allegare il `sagemaker:ModelPackageArn` tag alla propria sessione e soddisfare la policy del bucket.

## Fase 1: Contrassegna e definisci il ruolo di esecuzione
<a name="model-registry-restrict-s3-access-role"></a>

Nell'account di consumo, contrassegna il ruolo di esecuzione `ManagedBy=SageMaker` e limita la sua politica di fiducia al principale del servizio SageMaker AI. La politica di fiducia deve consentire entrambi `sts:AssumeRole` e`sts:TagSession`. In caso `sts:TagSession` contrario, l' SageMaker intelligenza artificiale non può applicare il tag di `sagemaker:ModelPackageArn` sessione e Amazon S3 nega ogni lettura richiesta dalla policy del bucket nella Fase 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" ]
    }]
  }
}
```

## Passaggio 2: aggiungere una policy di controllo del servizio
<a name="model-registry-restrict-s3-access-scp"></a>

Allega il seguente SCP alla tua organizzazione. La prima dichiarazione consente solo al responsabile del servizio SageMaker AI di assumere un ruolo taggato`ManagedBy=SageMaker`. La seconda consente solo all' SageMaker IA di impostare la chiave `sagemaker:ModelPackageArn` tag, che è l'unica chiave tag valutata dalla bucket policy. Per ulteriori informazioni, consulta [Creazione, aggiornamento ed eliminazione delle policy di controllo del servizio](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**  
Entrambe le affermazioni utilizzano `StringNotEquals` on`aws:PrincipalServiceName`, che risulta vero quando la chiave è assente. Pertanto, l'SCP nega queste azioni a tutti gli utenti e ruoli IAM negli account dei membri, comprese le sessioni in cui non è previsto alcun responsabile del servizio. Gli SCP non si applicano alle chiamate effettuate dai AWS servizi con i propri service principal; la politica di fiducia del ruolo, che concede l'accesso solo al responsabile del servizio SageMaker AI, è ciò che esclude gli altri servizi. AWS 

## Passaggio 3: aggiungere la policy del bucket Amazon S3
<a name="model-registry-restrict-s3-access-bucket"></a>

Nell'account di produzione, applica la seguente policy al bucket che contiene gli artefatti del modello. Tutte e tre le condizioni devono essere rispettate. Amazon S3 nega qualsiasi sessione che ne manchi una.

```
{
  "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"
        }
      }
    }
  ]
}
```

L'utilizzo `Principal` con il valore di `*` congiuntamente a queste condizioni significa che qualsiasi ruolo dell'organizzazione contrassegnato `ManagedBy=SageMaker` e dotato del tag di distribuzione può leggere gli artefatti. Non è necessario modificare la policy per ogni ruolo di consumo. La jolly sul pacchetto modello ARN copre tutte le versioni del gruppo.

**Importante**  
Ambito `Resource` di applicazione degli artefatti di un singolo gruppo di pacchetti di modelli. Un prefisso che si estende su più gruppi consentirebbe alla distribuzione di un pacchetto di modelli di leggere gli artefatti di un altro gruppo, poiché il tag di sessione viene confrontato con il carattere jolly del gruppo anziché con il percorso dell'oggetto.

Se gli artefatti sono crittografati con una AWS KMS chiave gestita dal cliente, anche il ruolo di esecuzione deve utilizzare tale chiave. `kms:Decrypt` Inseriscilo nella policy chiave; una policy IAM da sola non è sufficiente.

## Monitora l'accesso agli artefatti
<a name="model-registry-restrict-s3-access-monitor"></a>

Il tuo account registra sia la codifica della sessione che la conseguente decisione di accesso.
+ In CloudTrail, l'`AssumeRole`evento per il ruolo di esecuzione elenca i tag della sessione in`requestParameters`. Conferma che `sagemaker:ModelPackageArn` sia presente e corrisponda al pacchetto modello che hai distribuito.
+ Negli eventi ai dati di Amazon S3 o nei log di accesso al server, `GetObject` le richieste con il prefisso dell'artefatto mostrano se ogni lettura è stata consentita o negata, quindi puoi confermare che l'accesso non basato sulla distribuzione è stato rifiutato.

Prima di applicare le policy a un bucket di produzione, puoi valutarle con il simulatore di policy IAM per confermare che una sessione di distribuzione è consentita e che una sessione senza il tag è negata. Per ulteriori informazioni, consulta [ Testare le politiche IAM con il simulatore di policy IAM. ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html)