È possibile integrare watsonx.governance as a Service su AWS con Amazon SageMaker per portare le funzionalità di governance, rischio e conformità di watsonx.governance nei modelli di Amazon SageMaker.
Prima di iniziare
È necessario disporre dei seguenti servizi:
- Un'istanza di watsonx.governance
- Un'istanza di Amazon SageMaker
Configurare i seguenti servizi su AWS:
- CloudTrail: Gli eventi di Amazon SageMaker vengono pubblicati su CloudTrail.
- Servizio di coda semplice (SQS): Utilizzare questo servizio per impostare una coda per i modelli Amazon SageMaker. Per ulteriori informazioni, vedere Impostazione di Amazon SQS.
- EventBridge: Utilizzare questo servizio per definire regole che estraggono le modifiche della scheda modello di Amazon SageMaker in una coda FIFO di Simple Queue Service (SQS).
- Resource Access Manager: Utilizzare questo servizio per creare registri centrali dei modelli e raggruppare le risorse per gestirle. Per ulteriori informazioni, vedere Impostazione e configurazione di Resource Explorer.
Assicurarsi che i servizi CloudTrail ed EventBridge siano in esecuzione.
Pianificazione della configurazione
Credenziali per la connessione
Decidere come configurare l'accesso tra watsonx.governance e Amazon SageMaker. È possibile utilizzare un ruolo o chiavi di accesso trasversali.
- Per utilizzare un ruolo di cross-account, vedere Impostazione di un ruolo di cross-account.
- Per utilizzare i tasti di accesso, vedere Impostazione dei tasti di accesso.
Account
Ciascuna connessione ad Amazon SageMaker è destinata a un account che possiede un registro di modelli centralizzato. È possibile collegarsi a un massimo di dieci account diversi, ciascuno con un modello di registro. Per ulteriori informazioni sull'utilizzo di più di un singolo registro centrale dei modelli, consultare la Guida alla governance dei modelli Machine Learning con più account su AWS.
Entità di business padre
Decidete quali entità aziendali volete utilizzare. È necessaria un'entità aziendale separata per ogni connessione Amazon SageMaker configurata. Questa entità aziendale deve trovarsi al livello principale e non deve essere figlia di altre entità aziendali. Solo i casi d'uso nell'ambito dell'entità aziendale configurata, insieme ai gruppi di modelli e ai modelli associati, sono governati da watsonx.governance e Amazon SageMaker.
L'entità aziendale è il genitore dei casi d'uso, ma non è necessario che sia il genitore principale. È possibile utilizzare l'entità commerciale per altri scopi.
Gli utenti devono selezionare l'entità aziendale quando creano i casi d'uso. Assicuratevi che gli utenti sappiano quale entità aziendale utilizzare. Inoltre, assicuratevi che chi approva i casi d'uso verifichi che l'entità aziendale sia impostata correttamente prima di approvare un caso d'uso. Se l'entità aziendale non è impostata correttamente prima dell'approvazione di un caso d'uso, il caso d'uso e i suoi gruppi di modelli e modelli figli non si sincronizzeranno con Amazon SageMaker.
Ad esempio, se un utente seleziona un figlio dell'entità aziendale configurata e il caso d'uso viene approvato, il lavoro di sincronizzazione non sincronizza il caso d'uso con Amazon SageMaker.
Per aiutare gli utenti, utilizzare i domini di sicurezza per consentire l'accesso alle entità aziendali specifiche di cui hanno bisogno.
Effettuare le operazioni riportate di seguito:
- Per ogni connessione, decidere quale entità aziendale utilizzare. Se si desidera utilizzare una nuova entità aziendale, crearla prima di configurare la connessione ad Amazon SageMaker. Per creare un'entità commerciale, è necessario disporre dei permessi di amministrazione.
- Nella console di governance, assegnare agli utenti l'accesso al dominio di sicurezza dell'entità aziendale. Ad esempio, creare un gruppo, aggiungere utenti al gruppo e quindi associare il gruppo al dominio di sicurezza dell'entità aziendale. Per ulteriori informazioni, vedere Domini di sicurezza.
Profilo predefinito e utente predefinito
Per ogni connessione sono necessari un profilo e un utente predefiniti.
Il profilo predefinito viene utilizzato per generare i collegamenti pre-firmati nelle viste attività. Questi collegamenti aprono Amazon SageMaker utilizzando il profilo predefinito. Assegnare al profilo predefinito i diritti di accesso minimi necessari agli utenti della governance per ottenere maggiori informazioni sui gruppi di modelli e sui modelli in Amazon SageMaker.
Il link pre-firmato è valido per cinque minuti. Dopo questo periodo, gli utenti devono aggiornare la vista attività per rigenerare il collegamento.
L'utente predefinito viene utilizzato nei seguenti casi:
- Quando un modello non ha un proprietario assegnato, il proprietario del modello viene impostato su questo utente predefinito.
- Quando il proprietario di un modello non ha un account nella console di governance, il proprietario del modello viene impostato su questo utente predefinito.
Impostazione delle credenziali
Per connettersi ad Amazon SageMaker è possibile utilizzare un ruolo o chiavi di accesso incrociate. Prendete in considerazione l'utilizzo di un ruolo per più account per migliorare la sicurezza.
Impostazione di un ruolo trasversale al conto
Questa attività è necessaria se si desidera utilizzare un ruolo cross-account per integrare Amazon SageMaker con watsonx.governance. Per ulteriori informazioni, vedere Accesso alle risorse dell'account incrociato in IAM.
Per impostare il ruolo cross-account, procedere come segue:
- Generare un ID esterno per l'account AWS.
- Allegare al ruolo le seguenti politiche:
AmazonSageMakerFullAccess
eAmazonSQSFullAccess
. - Aggiungere l'ID esterno al criterio di fiducia del ruolo.
Esempio di definizione del ruolo
È possibile utilizzare il seguente script Terraform come guida per creare il ruolo cross-account.
Lo script esegue le seguenti operazioni:
- Lo script crea un ruolo IAM chiamato
Aws_Sagemaker_Sqs_Cross_Account_Role
. - Lo script assegna al ruolo l'ID esterno
123456
. - Lo script dà al ruolo l'accesso ai seguenti servizi:
sqs.amazonaws.com
sagemaker.amazonaws.com
- Lo script aggiunge quindi i seguenti criteri al ruolo:
AmazonSQSFullAccess
AmazonSageMakerFullAccess
Nella riga seguente, sostituire 999999999999
con l'ID dell'account di produzione di watsonx.governance.
+ AWS = "arn:aws:iam::999999999999:root"
dove:
arn:aws:iam::767397658217:root
è l'ID dell'account di produzione watsonx.governance quando il cliente installa un'istanza da AWS Marketplace.arn:aws:iam::384547875043:root
è l'ID dell'account di produzione watsonx.governance quando l'utente installa un'istanza da IBM.# module.iam.aws_iam_role.aws_sagemaker_sqs_cross_account_role[0] will be created + resource "aws_iam_role" "aws_sagemaker_sqs_cross_account_role" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Condition = { + StringEquals = { + "sts:ExternalId" = "123456" } } + Effect = "Allow" + Principal = { + AWS = "arn:aws:iam::999999999999:root" + Service = [ + "sqs.amazonaws.com", + "sagemaker.amazonaws.com", ] } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = (known after apply) + max_session_duration = 3600 + name = "Aws_Sagemaker_Sqs_Cross_Account_Role" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) } # module.iam.aws_iam_role_policy_attachment.AmazonSQSFullAccess_role_policy_attach[0] will be created + resource "aws_iam_role_policy_attachment" "AmazonSQSFullAccess_role_policy_attach" { + id = (known after apply) + policy_arn = "arn:aws:iam::aws:policy/AmazonSQSFullAccess" + role = "Aws_Sagemaker_Sqs_Cross_Account_Role" } # module.iam.aws_iam_role_policy_attachment.AmazonSageMakerFullAccess_cross_role_policy_attach[0] will be created + resource "aws_iam_role_policy_attachment" "AmazonSageMakerFullAccess_cross_role_policy_attach" { + id = (known after apply) + policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess" + role = "Aws_Sagemaker_Sqs_Cross_Account_Role" }
Impostazione di una chiave di accesso
Eseguire questa operazione se si desidera utilizzare le chiavi di accesso per connettere Amazon SageMaker con watsonx.governance.
In AWS, impostare una chiave di accesso a lungo termine per l'integrazione con watsonx.governance. Le credenziali devono avere il seguente accesso:
- Accesso programmatico al servizio Simple Queue (SQS)
- Accesso programmatico alle API di Amazon SageMaker
- Autorizzazioni per l'aggiornamento delle schede modello in Amazon SageMaker
Per ulteriori informazioni, vedere Credenziali di sicurezzaAWS.
Impostazione dei servizi AWS per l'integrazione
Effettuare le operazioni riportate di seguito:
- Impostare una coda SQS
- Impostare un Amazon EventBridge rule and add your SQS queue as the target for the rule.
Impostazione di una coda SQS
L'integrazione utilizza una coda SQS per ricevere le notifiche di eventuali modifiche ai gruppi di modelli e ai modelli.
Per ogni connessione, impostare una coda SQS nell'account.
Per impostare una coda SQS, procedere come segue:
- Dalla console AWS, selezionare il servizio Simple Queue.
- Fare clic su Crea coda.
- Digitare un nome per la coda, quindi inserire le seguenti informazioni:
- Tipo: FIFO
- Timeout di visibilità: 30 secondi
- Periodo di conservazione dei messaggi: 4 giorni
- Dimensione massima del messaggio: 256 KB
- Ritardo nella consegna: 0
- Tempo di attesa del messaggio di ricezione: 0
- In Impostazioni coda FIFO, attivare le seguenti opzioni:
- Deduplicazione basata sui contenuti
- Coda FIFO ad alto rendimento
La coda SQS è definita. Quindi, impostare una regola EventBridge.
Impostazione di una regola EventBridge
Per impostare una regola EventBridge e aggiungere la coda SQS come target, procedere come segue:
- Dalla console AWS, selezionare il servizio Amazon EventBridge.
- Fare clic su Crea regola.
- Digitare un nome per la regola, quindi fare clic su Avanti.
- Per la fonte dell'evento, fare clic su Altro.
- Per il metodo di creazione, fare clic su Modello personalizzato (editor JSON), quindi inserire il seguente JSON per il modello Evento:
{ "source": ["aws.sagemaker"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["sagemaker.amazonaws.com"], "eventName": ["CreateModelPackage", "CreateModelPackageGroup" "DeleteModelPackage", "DeleteModelPackageGroup", "UpdateModelPackage"] } }
- Fare clic su Avanti.
- Impostare la destinazione sulla coda SQS creata.
- Fare clic su Avanti nelle pagine rimanenti, quindi su Crea regola.
Ora avete una regola EventBridge con la vostra coda SQS come target della regola.
Configurazione dell'integrazione
Per eseguire questa operazione, è necessario disporre delle credenziali AWS.
- Se si utilizza un ruolo trasversale, sono necessarie le seguenti informazioni:
- Il nome risorsa Amazon (ARN) del ruolo.
- L'ID esterno del ruolo.
- L' URL del servizio Amazon SQS impostato per l'integrazione.
- L'ARN del profilo predefinito per gli URL presegnalati.
- Se si utilizzano le chiavi di accesso, sono necessarie le seguenti informazioni:
- L'ID dell'account AWS.
- L'ID della chiave di accesso e l'ID segreto impostati per l'integrazione.
- L' URL del servizio Amazon SQS impostato per l'integrazione.
- L'ARN del profilo predefinito per gli URL presegnalati.
Autorizzazione richiesta: È necessaria l'autorizzazione All/SOX/Administration/SageMaker nella console di governance.
Per configurare l'integrazione, procedere come segue:
- Accedere alla console di governance come amministratore.
- Fare clic su > Integrazioni > Amazon SageMaker.
- Fare clic su Nuova connessione.
- In Configurazione generale, eseguire le seguenti operazioni:
- Immetti una descrizione.
- Selezionare l'entità aziendale madre per questa connessione ad Amazon SageMaker. Utilizzare un'entità aziendale diversa per ogni connessione configurata. Per ulteriori informazioni, vedere Entità commerciali.
- Selezionare un utente predefinito. Per ulteriori informazioni, vedere Profilo predefinito e utente predefinito.
- In credenziali dell'accountAWS, inserire le credenziali dell'account AWS e la regione.
- Nel campo ARN del profilo predefinito, digitare l'ARN del profilo predefinito creato per l'account.
- Immettere le credenziali.
- Per impostare l'accesso utilizzando un ruolo, fare clic su Ruolo trasversale. Inserire l' ARN del ruolo e l' ID esterno.
- Per impostare l'accesso tramite chiavi, fare clic su Chiavi di accesso. Immettere l'ID dell'account AWS, l'ID della chiave di accesso e l'ID della chiave segreta.
- Digitare la regione dell'istanza di watsonx.governance, ad esempio
us-east-1
.
- In Model SQS URL, inserire l' URL della coda SQS configurata per l'account.
- Fare clic su Prova connessione, quindi su Salva.
- Fare clic sulla levetta per attivare l'integrazione. Si avvia il processo di sincronizzazione automatica. Per vedere l'avanzamento, fare clic su Altro > Processi in background. Questo processo sincronizza gli aggiornamenti da questo momento in poi.
- Se si dispone di modelli esistenti in Amazon SageMaker, necessario eseguire una sincronizzazione manuale. Fare clic su Sincronizza le informazioni del modello esistente. La tabella delle sincronizzazioni di SageMaker mostra l'avanzamento della sincronizzazione manuale del conto.
I modelli Amazon SageMaker sono ora disponibili nella console di governance.
Se in Amazon SageMaker sono già presenti gruppi di modelli e modelli creati al di fuori del flusso di lavoro dei casi d'uso di watsonx.governance, è necessario collegare manualmente i gruppi di modelli ai casi d'uso associati.
Sincronizzazione dati
Il processo di sincronizzazione automatica è in ascolto delle seguenti azioni:
- Pacchetto modello creato in Amazon SageMakerCreateModelPackage )
- Pacchetto modello aggiornato in Amazon SageMakerUpdateModelPackage )
- Pacchetto modello eliminato in Amazon SageMakerDeleteModelPackage )
- Gruppo di modelli creato CreateModelPackageGroup )
- Gruppo di modelli cancellato DeleteModelPackageGroup )
Per visualizzare lo stato dei processi di sincronizzazione automatica, fare clic su Altro > Processi in background.
Per visualizzare lo stato dei processi di sincronizzazione manuale, fare clic su > Integrazioni > Amazon SageMaker. La tabella delle sincronizzazioni di SageMaker elenca i processi di sincronizzazione manuale per tutte le connessioni. Per visualizzare lo stato di una connessione specifica, fare clic sul suo nome nella tabella Connessioni.
Ulteriori informazioni
Per saperne di più su questi flussi di processo:
Argomento principale: Impostazione dell'ambiente watsonx.governance su AWS