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 di ruoli di provisioning
Gli strumenti Infrastructure as a Code (IaaC) come AWS CloudFormation Terraform richiedono autorizzazioni per i diversi tipi di risorse. AWS Ad esempio, se un modello IaaC dichiara un bucket Amazon S3, necessita delle autorizzazioni per creare, leggere, aggiornare ed eliminare i bucket Amazon S3. Limitare i ruoli alle autorizzazioni minime richieste è considerata una best practice di sicurezza. 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 seguito. Ad esempio, nelle ultime modifiche apportate a un modello gestito da, si aggiunge una risorsa di database. AWS Proton RDS
La configurazione delle autorizzazioni corrette aiuta a semplificare le implementazioni del tuo IAc. AWS Proton CodeBuild Il provisioning esegue CLI comandi 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 Infrastructure as Code (IaaC) come. AWS CDK Quando una AWS risorsa distribuisce il cui modello utilizza CodeBuild Provisioning, AWS avvia una compilazione in un CodeBuild progetto gestito da. AWS Viene passato un ruolo a CodeBuild, che CodeBuild presuppone l'esecuzione di comandi. Questo ruolo, denominato CodeBuild Provisioning Role, viene fornito dal cliente e contiene le autorizzazioni necessarie per il provisioning dell'infrastruttura. È pensato per essere assunto solo da CodeBuild e nemmeno AWS Proton può assumerlo.
Creazione del ruolo
Il ruolo CodeBuild Provisioning può essere creato nella IAM console 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:
-
Per entità affidabile, seleziona AWS servizio, quindi seleziona CodeBuild.
-
Nel passaggio Aggiungi autorizzazioni, seleziona
AWSProtonCodeBuildProvisioningBasicAccess
e tutte le altre politiche che desideri allegare.
Accesso amministratore
Se alleghi la AdministratorAccess
policy al CodeBuild Provisioning Role, 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 l'utente non è un amministratore. AWS Proton non ne consiglia l'utilizzo AdministatorAccess
con il Provisioning Role CodeBuild . Se decidi di utilizzarlo AdministratorAccess
con il CodeBuild Provisioning Role, fallo in un ambiente sandbox.
Puoi creare un ruolo AdministratorAccess
nella IAM console 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 ruolo con ambito minimo
Se desideri creare un ruolo con autorizzazioni minime, esistono diversi approcci:
-
Esegui la distribuzione con autorizzazioni di amministratore, quindi riduci l'ambito del ruolo. Ti consigliamo di utilizzare IAMAccess Analyzer.
-
Utilizza le policy gestite per consentire l'accesso ai servizi che intendi utilizzare.
AWS CDK
Se utilizzi AWS CDK with e AWS Proton l'hai eseguito cdk bootstrap
su ogni account/area di ambiente, esiste già un ruolo per. cdk deploy
In questo caso, allega la seguente politica 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" }
Personalizzato VPC
Se decidi di utilizzare CodeBuild un programma personalizzato VPC, avrai bisogno delle seguenti autorizzazioni per il tuo CodeBuild ruolo:
{ "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 politica AmazonEC2FullAccess
gestita, sebbene includa autorizzazioni che potrebbero non essere necessarie. Per allegare la politica gestita utilizzando: 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