View a markdown version of this page

CodeBuild creazione del ruolo di provisioning - AWS Proton

Avviso di fine del supporto: il 7 ottobre 2026, AWS terminerà il supporto per AWS Proton. Dopo il 7 ottobre 2026, non potrai più accedere alla AWS Proton console o AWS Proton alle risorse. L'infrastruttura implementata rimarrà intatta. Per ulteriori informazioni, consulta la AWS Proton Service Deprecation and Migration Guide.

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à.

CodeBuild creazione del ruolo di provisioning

Strumenti Infrastructure as a Code (IaaC) come CloudFormation Terraform richiedono autorizzazioni per i diversi tipi di risorse. AWS Ad esempio, se un modello IAAC dichiara un bucket Amazon S3, ha bisogno delle autorizzazioni per creare, leggere, aggiornare ed eliminare i bucket Amazon S3. È considerata una best practice di sicurezza limitare i ruoli alle autorizzazioni minime richieste. Data l'ampiezza delle AWS risorse, è difficile creare politiche con privilegi minimi per i modelli IAAC, soprattutto quando le risorse gestite da tali modelli possono cambiare in un secondo momento. Ad esempio, nelle ultime modifiche a un modello gestito da AWS Proton, si aggiunge una risorsa di database RDS.

La configurazione delle autorizzazioni corrette aiuta a semplificare le implementazioni del tuo IaC. AWS Proton CodeBuild Il provisioning esegue comandi CLI arbitrari forniti dal cliente in un CodeBuild progetto situato nell'account del cliente. In genere, questi comandi creano ed eliminano l'infrastruttura utilizzando uno strumento IaaC (Infrastructure as Code) come. AWS CDK Quando viene implementata una AWS risorsa il cui modello utilizza il CodeBuild provisioning, AWS verrà avviata una compilazione in un CodeBuild progetto gestito da. AWS Viene passato un ruolo a CodeBuild, che CodeBuild presuppone l'esecuzione di comandi. Questo ruolo, chiamato ruolo di CodeBuild provisioning, viene fornito dal cliente e contiene le autorizzazioni necessarie per il provisioning dell'infrastruttura. È pensato per essere assunto solo da lui CodeBuild e persino non AWS Proton può assumerlo.

Creazione del ruolo

Il ruolo CodeBuild Provisioning può essere creato nella console IAM o in. AWS CLI Per crearlo in: AWS CLI

aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AWSProtonCodeBuildProvisioningBasicAccess

Questo allega anche ilAWSProtonCodeBuildProvisioningBasicAccess, che contiene le autorizzazioni minime necessarie al CodeBuild servizio per eseguire una build.

Se preferisci usare la console, assicurati di quanto segue quando crei il ruolo:

  1. Per entità attendibile, seleziona AWS il servizio, quindi seleziona CodeBuild.

  2. Nella fase Aggiungi autorizzazioni, seleziona tutte AWSProtonCodeBuildProvisioningBasicAccess le altre politiche che desideri allegare.

Accesso amministratore

Se alleghi la AdministratorAccess policy al ruolo di CodeBuild provisioning, garantirai che qualsiasi modello IAAC non fallirà a causa della mancanza di autorizzazioni. Significa anche che chiunque sia in grado di creare un modello di ambiente o un modello di servizio può eseguire azioni a livello di amministratore, anche se tale utente non è un amministratore. AWS Proton non è consigliabile utilizzarlo AdministatorAccess con il ruolo di provisioning. CodeBuild Se decidi di utilizzarlo AdministratorAccess con il ruolo di CodeBuild provisioning, fallo in un ambiente sandbox.

Puoi creare un ruolo con AdministratorAccess nella console IAM o eseguendo questo comando:

aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
Creazione di un Minimally-Scoped ruolo

Se desideri creare un ruolo con autorizzazioni minime, esistono diversi approcci:

  • Esegui la distribuzione con le autorizzazioni di amministratore, quindi riduci l'ambito del ruolo. Ti consigliamo di utilizzare IAM Access Analyzer.

  • Utilizza policy gestite per consentire l'accesso ai servizi che intendi utilizzare.

AWS CDK

Se stai utilizzando AWS CDK con AWS Proton e hai eseguito cdk bootstrap su ogni ambiente account/Region, allora esiste già un ruolo percdk deploy. In questo caso, allega la seguente policy al ruolo di CodeBuild provisioning:

{ "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::account-id:role/cdk-*-deploy-role-*", "arn:aws:iam::account-id:role/cdk-*-file-publishing-role-*" ], "Effect": "Allow" }
VPC personalizzato

Se decidi di funzionare CodeBuild in un VPC personalizzato, avrai bisogno delle seguenti autorizzazioni per il tuo ruolo: CodeBuild

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:subnet/*", "arn:aws:ec2:region:account-id:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:*/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "codebuild.amazonaws.com" } } }

Puoi anche utilizzare la policy AmazonEC2FullAccess gestita, sebbene includa autorizzazioni che potresti non aver bisogno. Per allegare la policy gestita utilizzando la CLI:

aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version": "2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess