Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS endet der Support für AWS Proton. Nach dem 7. Oktober 2026 werden Sie nicht mehr auf die AWS Proton Konsole oder AWS Proton die Ressourcen zugreifen können. Ihre bereitgestellte Infrastruktur bleibt intakt. Weitere Informationen finden Sie im AWS Proton Service Deprecation and Migration Guide.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
CodeBuild Bereitstellung, Erstellung von Rollen
Infrastructure as a Code (IaaC) -Tools wie CloudFormation und Terraform benötigen Berechtigungen für die vielen verschiedenen Arten von Ressourcen. AWS Wenn eine IaaC-Vorlage beispielsweise einen Amazon S3-Bucket deklariert, benötigt sie Berechtigungen zum Erstellen, Lesen, Aktualisieren und Löschen von Amazon S3-Buckets. Es wird als bewährte Sicherheitsmethode angesehen, Rollen auf die minimal erforderlichen Berechtigungen zu beschränken. Angesichts der Breite der AWS Ressourcen ist es schwierig, Richtlinien für IaaC-Vorlagen zu erstellen, bei denen die geringsten Rechte gelten, vor allem, wenn sich die Ressourcen, die mit diesen Vorlagen verwaltet werden, später ändern können. Beispielsweise fügen Sie bei Ihren letzten Änderungen an einer Vorlage, die von verwaltet wird AWS Proton, eine RDS-Datenbankressource hinzu.
Die Konfiguration der richtigen Berechtigungen trägt zu einer reibungslosen Bereitstellung Ihres IaC bei. AWS Proton CodeBuild Provisioning führt beliebige vom Kunden bereitgestellte CLI-Befehle in einem CodeBuild Projekt aus, das sich im Konto des Kunden befindet. In der Regel erstellen und löschen diese Befehle eine Infrastruktur mithilfe eines Infrastructure as Code (IaaC) -Tools wie. AWS CDK Wenn eine AWS Ressource bereitgestellt wird, deren Vorlage CodeBuild Provisioning verwendet, AWS wird ein Build in einem CodeBuild Projekt gestartet, das von verwaltet wird. AWS Es wird eine Rolle an übergeben CodeBuild, die davon CodeBuild ausgeht, Befehle auszuführen. Diese Rolle, die als CodeBuild Provisioning-Rolle bezeichnet wird, wird vom Kunden bereitgestellt und enthält die für die Bereitstellung der Infrastruktur erforderlichen Berechtigungen. Sie sollte nur von Ihnen übernommen werden CodeBuild und AWS Proton kann sie auch nicht übernehmen.
Erstellen der -Rolle
Die CodeBuild Provisioning-Rolle kann in der IAM-Konsole oder in der erstellt werden. AWS CLI Um sie zu erstellen 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
Damit wird auch der angehängtAWSProtonCodeBuildProvisioningBasicAccess, der die minimalen Berechtigungen enthält, die der CodeBuild Dienst benötigt, um einen Build auszuführen.
Wenn Sie lieber die Konsole verwenden möchten, achten Sie beim Erstellen der Rolle auf Folgendes:
-
Wählen Sie für eine vertrauenswürdige Entität AWS Dienst und dann aus CodeBuild.
-
Wählen Sie im Schritt Berechtigungen hinzufügen alle anderen Richtlinien aus
AWSProtonCodeBuildProvisioningBasicAccess, die Sie anhängen möchten.
Administratorzugriff
Wenn Sie die AdministratorAccess Richtlinie an die CodeBuild Provisioning-Rolle anhängen, wird garantiert, dass keine IAAC-Vorlage aufgrund fehlender Berechtigungen fehlschlägt. Das bedeutet auch, dass jeder, der eine Umgebungs- oder Servicevorlage erstellen kann, Aktionen auf Administratorebene ausführen kann, auch wenn dieser Benutzer kein Administrator ist. AWS Proton empfiehlt nicht, sie AdministatorAccess zusammen mit der CodeBuild Provisioning-Rolle zu verwenden. Wenn Sie sich für die Verwendung AdministratorAccess mit der CodeBuild Provisioning-Rolle entscheiden, tun Sie dies in einer Sandbox-Umgebung.
Sie können eine Rolle AdministratorAccess in der IAM-Konsole oder durch Ausführen des folgenden Befehls erstellen:
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
Eine Minimally-Scoped Rolle erstellen
Wenn Sie eine Rolle mit Mindestberechtigungen erstellen möchten, gibt es mehrere Möglichkeiten:
-
Stellen Sie die Rolle mit Administratorberechtigungen bereit und schränken Sie dann den Umfang der Rolle ein. Wir empfehlen die Verwendung von IAM Access Analyzer.
-
Verwenden Sie verwaltete Richtlinien, um Zugriff auf die Dienste zu gewähren, die Sie verwenden möchten.
AWS CDK
Wenn Sie es AWS CDK mit AWS Proton verwenden und in jeder Umgebung cdk bootstrap ausgeführt haben account/Region, gibt es bereits eine Rolle fürcdk deploy. In diesem Fall fügen Sie der CodeBuild Provisioning-Rolle die folgende Richtlinie hinzu:
{ "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" }
Benutzerdefinierte VPC
Wenn Sie sich für die Ausführung CodeBuild in einer benutzerdefinierten VPC entscheiden, benötigen Sie in Ihrer CodeBuild Rolle die folgenden Berechtigungen:
{ "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" } } }
Sie können auch die AmazonEC2FullAccess verwaltete Richtlinie verwenden, obwohl diese Berechtigungen beinhaltet, die Sie möglicherweise nicht benötigen. So hängen Sie die verwaltete Richtlinie mithilfe der CLI an:
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