Accesso e sicurezza per la personalizzazione del modello - Amazon Bedrock

Accesso e sicurezza per la personalizzazione del modello

Prima di iniziare a personalizzare un modello, assicurarsi di comprendere il tipo di accesso necessario per Amazon Bedrock e prendere in considerazione alcune opzioni per proteggere gli artefatti e i processi di personalizzazione.

Creare un ruolo di servizio IAM per la personalizzazione del modello

Amazon Bedrock ha bisogno di un ruolo di servizio AWS Identity and Access Management (IAM) per accedere al bucket S3 dove archiviare i dati di addestramento e convalida per la personalizzazione del modello. Esistono due modi per eseguire questa operazione:

  • Creare automaticamente il ruolo di servizio utilizzando la Console di gestione AWS.

  • Creare il ruolo di servizio manualmente con le autorizzazioni appropriate per accedere al bucket S3.

Per l’opzione manuale, creare un ruolo IAM e collegare le seguenti autorizzazioni seguendo la procedura descritta in Creazione di un ruolo per delegare le autorizzazioni a un servizio AWS.

  • Relazione di attendibilità

  • Autorizzazioni per accedere ai dati di addestramento e convalida in S3 e per scrivere i dati di output in S3

  • (Facoltativo) Se una delle seguenti risorse è crittografata con una chiave KMS, le autorizzazioni per decrittare la chiave (consultare Crittografia di modelli personalizzati)

    • Un processo di personalizzazione del modello o il modello personalizzato risultante

    • Dati di addestramento, convalida o output per il processo di personalizzazione del modello

Relazione di attendibilità

La seguente policy consente ad Amazon Bedrock di assumere questo ruolo ed eseguire il processo di personalizzazione del modello. Di seguito viene riportato un esempio di policy utilizzabile.

Facoltativamente, è possibile limitare l’ambito dell’autorizzazione per la prevenzione del “confused deputy” multi-servizio utilizzando una o più chiavi di contesto delle condizioni globali con il campo Condition. Per ulteriori informazioni, consulta Chiavi di contesto delle condizioni globali di AWS.

  • Impostare il valore aws:SourceAccount sull’ID dell’account.

  • (Facoltativo) Utilizza la condizione ArnEquals o ArnLike per limitare l’ambito a specifici processi di personalizzazione del modello nell’ID account.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*" } } } ] }

Autorizzazioni per accedere ai file di addestramento e convalida e scrivere i file di output in S3

Collegare la seguente policy per consentire al ruolo di accedere ai dati di addestramento e convalida e al bucket in cui scrivere i dati di output. Sostituire i valori nell’elenco Resource con i nomi effettivi dei bucket.

Per limitare l’accesso a una cartella specifica in un bucket, aggiungere una chiave di condizione s3:prefix con il percorso della cartella. Puoi seguire l’esempio di Policy utente in Esempio 2: recupero di un elenco di oggetti in un bucket con un prefisso specifico.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::training-bucket", "arn:aws:s3:::training-bucket/*", "arn:aws:s3:::validation-bucket", "arn:aws:s3:::validation-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::output-bucket", "arn:aws:s3:::output-bucket/*" ] } ] }

(Facoltativo) Autorizzazioni per creare un processo di distillazione con un profilo di inferenza interregionale

Per utilizzare un profilo di inferenza interregionale per un modello insegnante in un processo di distillazione, il ruolo di servizio deve disporre delle autorizzazioni per invocare il profilo di inferenza in una Regione AWS, oltre al modello in ogni Regione del profilo di inferenza.

Per le autorizzazioni da invocare con un profilo di inferenza interregionale (definito dal sistema), utilizzare la seguente policy come modello per la policy di autorizzazioni da collegare al tuo ruolo di servizio:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CrossRegionInference", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}", "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}", "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}" ] } ] }

(Facoltativo) Crittografia degli artefatti e dei processi di personalizzazione del modello

Crittografare i dati di input e output, i processi di personalizzazione o le richieste di inferenza effettuate su modelli personalizzati. Per ulteriori informazioni, consulta Crittografia di modelli personalizzati.

(Facoltativo) Protezione dei processi di personalizzazione del modello utilizzando un VPC

Durante l’esecuzione, un processo di personalizzazione del modello accede al bucket Amazon S3 per scaricare i dati di input e caricare le metriche del processo. Per controllare l’accesso ai dati, consigliamo di creare un cloud privato virtuale (VPC) con Amazon VPC. Per proteggere ulteriormente i dati, configurare il VPC in modo che non sia disponibile su Internet e creare invece un endpoint di interfaccia VPC con AWS PrivateLink per stabilire una connessione privata ai dati. Per ulteriori informazioni sull’integrazione di Amazon Bedrock con Amazon VPC e AWS PrivateLink, consultare Protezione dei dati con Amazon VPC e AWS PrivateLink.

Eseguire le seguenti fasi per configurare e utilizzare un VPC per l’addestramento, la convalida e i dati di output per i processi di personalizzazione del modello.

Configurare VPC per proteggere i dati durante la personalizzazione del modello

Per configurare un VPC, seguire la procedura descritta in Configurazione di un VPC. Per proteggere ulteriormente il VPC, configurare un endpoint VPC S3 e utilizzare policy IAM basate su risorse per limitare l’accesso al bucket S3 contenente i dati di personalizzazione del modello seguendo la procedura descritta in (Esempio) Limitazione dell’accesso ai dati di Amazon S3 utilizzando VPC.

Associare le autorizzazioni VPC a un ruolo di personalizzazione del modello

Dopo aver completato la configurazione del VPC, assegnare le seguenti autorizzazioni al ruolo di servizio di personalizzazione del modello per consentirgli di accedere al VPC. Modifica questa policy per consentire l’accesso solo alle risorse VPC necessarie per il processo. Sostituisci ${{subnet-ids}} e security-group-id con i valori del VPC.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:us-east-1:123456789012:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/BedrockManaged": [ "true" ] }, "ArnEquals": { "aws:RequestTag/BedrockModelCustomizationJobArn": [ "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] } } }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id", "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2", "arn:aws:ec2:us-east-1:123456789012:security-group/security-group-id" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*", "Condition": { "ArnEquals": { "ec2:Subnet": [ "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id", "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2" ], "ec2:ResourceTag/BedrockModelCustomizationJobArn": [ "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, "StringEquals": { "ec2:ResourceTag/BedrockManaged": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:us-east-1:123456789012:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": [ "CreateNetworkInterface" ] }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "BedrockManaged", "BedrockModelCustomizationJobArn" ] } } } ] }

Aggiungere la configurazione VPC durante l’invio di un processo di personalizzazione del modello

Dopo aver configurato il VPC, nonché le autorizzazioni e i ruoli richiesti e descritti nelle sezioni precedenti, è possibile creare un processo di personalizzazione del modello che utilizza questo VPC.

Una volta specificati le sottoreti e i gruppi di sicurezza del VPC per un processo, Amazon Bedrock crea interfacce di rete elastiche (ENI) che sono associate ai gruppi di sicurezza in una delle sottoreti. Le ENI consentono al processo di Amazon Bedrock di connettersi alle risorse del VPC. Per informazioni sulle ENI, consultare Interfacce di rete elastiche nella Guida per l’utente di Amazon VPC. Amazon Bedrock etichetta le ENI che crea con i tag BedrockManaged e BedrockModelCustomizationJobArn.

Si consiglia di fornire almeno una sottorete in ogni zona di disponibilità.

È possibile utilizzare i gruppi di sicurezza per stabilire delle regole per controllare l’accesso di Amazon Bedrock alle risorse VPC.

È possibile configurare il VPC da utilizzare nella console o tramite l’API. Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

Console

Per la console Amazon Bedrock, specificare le sottoreti e i gruppi di sicurezza del VPC nella sezione facoltativa Impostazioni VPC quando viene creato il processo di personalizzazione del modello. Per ulteriori informazioni sui processi di configurazione, consulta la pagina Inviare un processo di personalizzazione del modello per il fine-tuning o il pre-addestramento continuo.

Nota

Se un processo include la configurazione del VPC, la console non può creare automaticamente un nuovo ruolo di servizio. Segui le indicazioni riportate in Creazione di un ruolo di servizio per la personalizzazione del modello per creare un ruolo personalizzato.

API

Quando viene inviata una richiesta CreateModelCustomizationJob, è possibile includere una VpcConfig come parametro della richiesta per specificare le sottoreti e i gruppi di sicurezza del VPC da utilizzare, come nell’esempio seguente.

"vpcConfig": { "securityGroupIds": [ "${{sg-0123456789abcdef0}}" ], "subnets": [ "${{subnet-0123456789abcdef0}}", "${{subnet-0123456789abcdef1}}", "${{subnet-0123456789abcdef2}}" ] }