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à.
Consentono CodeBuild di interagire con altri AWS servizi
Se segui la procedura di accesso Nozioni di base utilizzando la console AWS CodeBuild per la prima volta, probabilmente non hai bisogno delle informazioni contenute in questo argomento. Tuttavia, continuando a utilizzare CodeBuild, potresti voler fare cose come consentire CodeBuild l'interazione con altri AWS servizi.
CodeBuild Per consentire l'interazione con i AWS servizi dipendenti per conto dell'utente, è necessario un ruolo AWS CodeBuild di servizio. È possibile creare un ruolo di CodeBuild servizio utilizzando le AWS CodePipeline console CodeBuild or. Per informazioni, consulta:
Se non si prevede di utilizzare queste console, questa sezione descrive come creare un ruolo di CodeBuild servizio con la IAM console o il. AWS CLI
Importante
CodeBuild utilizza il ruolo di servizio per tutte le operazioni eseguite per conto dell'utente. Se il ruolo include le autorizzazioni di cui l'utente non dovrebbe disporre, puoi riassegnare involontariamente le autorizzazioni di un utente. Assicurati che il ruolo garantisca i privilegi minimi.
Il ruolo di servizio descritto in questa pagina contiene una politica che concede le autorizzazioni minime richieste per l'utilizzo. CodeBuild Potrebbe essere necessario aggiungere autorizzazioni aggiuntive, a seconda del caso d'uso.
Per creare un ruolo CodeBuild di servizio (console)
Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
. È necessario aver effettuato l'accesso alla console utilizzando uno dei seguenti metodi:
-
Il tuo account AWS root. Questo non è consigliato. Per ulteriori informazioni, consulta L'utente Account AWS root nella guida per l'utente.
-
Un utente amministratore nel tuo AWS account. Per ulteriori informazioni, consulta Creazione del primo utente e gruppo Account AWS root nella Guida per l'utente.
-
Un utente del tuo AWS account con l'autorizzazione a eseguire il seguente set minimo di azioni:
iam:AddRoleToInstanceProfile iam:AttachRolePolicy iam:CreateInstanceProfile iam:CreatePolicy iam:CreateRole iam:GetRole iam:ListAttachedRolePolicies iam:ListPolicies iam:ListRoles iam:PassRole iam:PutRolePolicy iam:UpdateAssumeRolePolicy
Per ulteriori informazioni, vedere Panoramica delle IAM politiche nella Guida per l'utente.
-
-
Nel pannello di navigazione, selezionare Policies (Policy).
-
Scegliere Create Policy (Crea policy).
-
Nella pagina Crea politica, scegli JSON.
-
Per la JSON politica, inserisci quanto segue, quindi scegli Rivedi politica:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*" }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "*" }, { "Sid": "ECRPullPolicy", "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" }, { "Sid": "ECRAuthPolicy", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
Nota
Questa politica contiene istruzioni che consentono l'accesso a un numero potenzialmente elevato di AWS risorse. Per limitare l'accesso AWS CodeBuild a AWS risorse specifiche, modificate il valore dell'
Resource
array. Per ulteriori informazioni, consulta la documentazione sulla sicurezza del AWS servizio. -
Nella pagina Review policy (Rivedi policy), in Policy Name (Nome policy), immettere un nome per la policy (ad esempio
CodeBuildServiceRolePolicy
), quindi selezionare Create policy (Crea policy).Nota
Se si utilizza un nome diverso, assicurarsi di ripeterlo in tutta questa procedura.
-
Nel pannello di navigazione, seleziona Roles (Ruoli).
-
Selezionare Create role (Crea ruolo).
-
Nella pagina Crea ruolo, con AWS Servizio già selezionato, scegli CodeBuild, quindi scegli Avanti:Autorizzazioni.
-
Nella pagina Allega criteri di autorizzazione, seleziona CodeBuildServiceRolePolicy, quindi scegli Avanti: revisione.
-
Nella pagina Create role and review (Crea ruolo e rivedi), in Role name (Nome ruolo), immettere un nome per il ruolo (ad esempio,
CodeBuildServiceRole
), quindi selezionare Create role (Crea ruolo).
Per creare un ruolo CodeBuild di servizio ()AWS CLI
-
Assicurati di averlo configurato AWS CLI con la chiave di AWS accesso e la chiave di accesso AWS segreta che corrispondono a una delle IAM entità, come descritto nella procedura precedente. Per ulteriori informazioni, consulta Come configurare AWS Command Line Interface nella Guida per l'utente di AWS Command Line Interface .
-
In una directory vuota della workstation o dell'istanza locale in cui AWS CLI è installato, create due file denominati
create-role.json
andput-role-policy.json
. Se si utilizzano nomi file diversi, assicurarsi di ripeterli in tutta questa procedura.create-role.json
:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Nota
Si consiglia di utilizzare il le chiavi di condizione
aws:SourceAccount
eaws:SourceArn
per proteggersi dal problema del "confused deputy". Ad esempio, è possibile modificare la precedente politica di attendibilità con i seguenti blocchi di condizioni. Ilaws:SourceAccount
è il proprietario del CodeBuild progetto e ilaws:SourceArn
è il CodeBuild progettoARN.Se desideri limitare il tuo ruolo di servizio a un AWS account,
create-role.json
potresti avere un aspetto simile a questo:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": [ "
account-ID
" ] } } } ] }Se desideri limitare il tuo ruolo di servizio a un CodeBuild progetto specifico,
create-role.json
potresti avere un aspetto simile a questo:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:codebuild:
region-ID
:account-ID
:project/project-name
" } } } ] }Nota
Se non conosci o non hai ancora deciso un nome per il tuo CodeBuild progetto e desideri una restrizione della politica di fiducia su un particolare ARN modello, puoi sostituire quella parte ARN con un carattere jolly (*). Dopo aver creato il progetto, puoi aggiornare la politica di attendibilità.
put-role-policy.json
:{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*" }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
Nota
Questa politica contiene istruzioni che consentono l'accesso a un numero potenzialmente elevato di AWS risorse. Per limitare l'accesso AWS CodeBuild a AWS risorse specifiche, modificate il valore dell'
Resource
array. Per ulteriori informazioni, consulta la documentazione sulla sicurezza del AWS servizio. -
Passare alla directory in cui sono stati salvati i file precedenti, quindi eseguire i seguenti due comandi, uno alla volta, in questo ordine. È possibile utilizzare valori diversi per
CodeBuildServiceRole
eCodeBuildServiceRolePolicy
, ma assicurarsi di specificarli qui.aws iam create-role --role-name CodeBuildServiceRole --assume-role-policy-document file://create-role.json
aws iam put-role-policy --role-name CodeBuildServiceRole --policy-name CodeBuildServiceRolePolicy --policy-document file://put-role-policy.json