Come posso risolvere i problemi relativi alle autorizzazioni durante la creazione di un Feature Group di SageMaker?

Ultimo aggiornamento: 21/11/2022

Sto cercando di creare un Feature Group di Amazon SageMaker, ma ricevo l'errore "AccessDenied".

Breve descrizione

Gli errori "AccessDenied" di SageMaker indicano che il ruolo di AWS Identity and Access Management (IAM) non dispone di autorizzazioni sufficienti per eseguire l'operazione Create Feature Group (Crea Feature Group). Potresti ricevere l'errore "AccessDenied" quando le autorizzazioni del ruolo di esecuzione sono assenti oppure configurate in modo errato:

  • Policy AmazonSageMakerFeatureStoreAccess e requisiti di denominazione dei bucket Amazon Simple Storage Service (Amazon S3) mancanti
  • Autorizzazioni LakeFormation mancanti
  • Policy Servizio di gestione delle chiavi AWS (AWS KMS) mancante
  • Policy relative ai bucket Amazon S3

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

Per visualizzare un messaggio di errore dettagliato durante la creazione di un Feature Group, esegui il seguente comando dal terminale e verifica il motivo dell'errore (FailureReason):

$ aws sagemaker describe-feature-group --feature-group-name nameofthefeaturegroup

Policy AmazonSageMakerFeatureStoreAccess e requisiti di denominazione dei bucket Amazon Simple Storage Service (Amazon S3) mancanti

Il ruolo di esecuzione che stai utilizzando potrebbe essere privo della policy AmazonSageMakerFeatureStore gestita da Amazon. Esamina le policy collegate al ruolo di esecuzione. Quindi, se è assente, collega la policy AmazonSageMakerFeatureStoreAccess:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetBucketAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::*SageMaker*",
        "arn:aws:s3:::*Sagemaker*",
        "arn:aws:s3:::*sagemaker*"
      ]
    }
  ]
}

La creazione del Feature Group potrebbe non riuscire anche dopo avere aggiunto la policy AmazonSageMakerFeatureStoreAccess. Dato che la policy è gestita da Amazon ed è archiviata in un bucket S3, il bucket deve contenere la parola "sagemaker" nel nome.

Autorizzazioni Lake Formation mancanti

La creazione del Feature Group potrebbe non riuscire a causa di autorizzazioni insufficienti per AWS Lake Formation. Quando viene creato un Feature Group, viene creato automaticamente un database AWS Glue. Tutti i Feature Group creati con SageMaker vengono creati come tabelle all'interno di questo database AWS Glue.

Verifica che al ruolo di esecuzione utilizzato sia concessa l'autorizzazione per creare un database AWS Glue. Se il ruolo di esecuzione non dispone dell'autorizzazione, procedi come segue:

Nota: AWS Lake Formation richiede che ogni principale (utente o ruolo) sia autorizzato a eseguire operazioni sulle risorse gestite da Lake Formation.

  1. Apri la console LakeFormation
  2. Dalla barra laterale a sinistra, seleziona Permissions (Autorizzazioni), quindi seleziona Data Permissions (Autorizzazioni dati)
  3. Scegli Grant (Concedi)
  4. Scegli il ruolo di esecuzione IAM dal menu a discesa Principals (Principali), quindi concedi le autorizzazioni richieste

Per ulteriori informazioni sulla concessione delle autorizzazioni per il database, consulta la sezione Concessione delle autorizzazioni per un database o una tabella condivisi con l'account.

Policy AWS KMS mancante

La chiamata all'API CreateFeatureGroup potrebbe non riuscire a causa dell'assenza delle policy AWS KMS. Per verificare, esamina le policy IAM del ruolo di esecuzione, quindi conferma che le policy seguenti siano collegate:

kms:GenerateDataKey
kms:Decrypt
kms: Encrypt

Se le policy precedenti non sono visibili dopo avere eseguito il comando della CLI, collega le policy e riprova.

Policy relative ai bucket S3

Gli errori "AccessDenied" potrebbero verificarsi anche a causa di una policy relativa ai bucket Amazon S3 che impedisce l'accesso al bucket. Esamina la policy relativa ai bucket S3, quindi verifica se il ruolo di esecuzione utilizzato per creare il Feature Group dispone dell'accesso al bucket.