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
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=SageMakerla 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:ModelPackageArntag. 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:GetObjectsolo 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
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 ests: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
Allega il seguente SCP alla tua organizzazione. La prima dichiarazione consente solo al responsabile del servizio SageMaker AI di assumere un ruolo taggatoManagedBy=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.
{ "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 onaws: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
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
Il tuo account registra sia la codifica della sessione che la conseguente decisione di accesso.
-
In CloudTrail, l'
AssumeRoleevento per il ruolo di esecuzione elenca i tag della sessione inrequestParameters. Conferma chesagemaker:ModelPackageArnsia presente e corrisponda al pacchetto modello che hai distribuito. -
Negli eventi ai dati di Amazon S3 o nei log di accesso al server,
GetObjectle 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.