Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Come posso concedere l'accesso multi-account all'API Amazon Bedrock?
Desidero utilizzare l'API Amazon Bedrock su diversi account AWS.
Breve descrizione
Quando utilizzi l'API Amazon Bedrock su più account, gestisci le autorizzazioni per il client API in un account e ospiti i tuoi carichi di lavoro in altri account.
Prima di configurare l'accesso multi-account per la tua API Amazon Bedrock, assicurati di poter accedere ai modelli di fondazione. Per richiedere l'accesso, consulta Add model access (Aggiungi l'accesso al modello).
Nota: per informazioni sulle best practice in riferimento all'accesso multi-account, consulta Best practice per la sicurezza in IAM.
Risoluzione
Nella seguente risoluzione, l'account A contiene i modelli di fondazione. L'account B contiene il notebook Amazon SageMaker che invoca l'API Amazon Bedrock nell'account A per accedere ai modelli di fondazione.
Account A
Per creare un ruolo IAM che fornisca l'accesso ad Amazon Bedrock, completa i seguenti passaggi:
- Apri la console IAM.
- Crea un ruolo IAM per l'account A.
- Assicurati che il ruolo IAM abbia la policy AmazonBedrockFullAccess per consentire l'accesso ad Amazon Bedrock.
- Aggiungi le autorizzazioni per invocare il notebook SageMaker nell'account B:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "sagemaker.amazonaws.com", "events.amazonaws.com", "bedrock.amazonaws.com" ], "AWS":[ "arn:aws:iam::`<Account B ID>`:role/RoleB" ] }, "Action":"sts:AssumeRole" } ] }
Account B
Per assumere il ruolo nell'account A, completa i seguenti passaggi:
- Apri la console IAM.
- Crea un ruolo IAM per il notebook SageMaker da eseguire nell'account.
- Assicurati che la policy IAM consenta al ruolo nell'account B di assumere il ruolo nell'account A:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::`<Account A ID>`:role/RoleA" ] } ] }
Dopo la configurazione, il ruolo nell'account B utilizza credenziali Boto3 temporanee per assumere il ruolo nell'account A.
Verifica la configurazione dall'account B
Utilizza il ruolo associato alla policy IAM nell'account B per eseguire la seguente cella su qualsiasi notebook SageMaker:
import boto3 # ARN of Role A to assume role_to_assume = 'arn:aws:iam::`<Account A ID>`:role/RoleA' # Use STS to assume role credentials = boto3.client('sts').assume_role( RoleArn=role_to_assume, RoleSessionName='RoleBSession' )['Credentials'] # Create Bedrock client with temporary credentials bedrock_session = boto3.session.Session( aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'] ) bedrock = bedrock_session.client('bedrock-runtime')
Il client Amazon Bedrock può ora utilizzare le credenziali temporanee del ruolo nell'account A per invocare API.
Best practice
Quando utilizzi l'API Amazon Bedrock su più account, applica le seguenti best practice:
- Controlla i log di AWS CloudTrail per eventuali errori e verifiche. I log mostrano gli eventi AssumeRole di Servizio di token di sicurezza AWS (AWS STS) nell'account B e gli eventi di Amazon Bedrock nell'account A.
- La durata predefinita del ruolo assunto è di 1 ora. Tuttavia, è possibile utilizzare il parametro DurationSeconds per modificare la durata. La durata non può superare la durata massima della sessione del ruolo.
Video correlati


Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 2 anni fa