Amazon ECS CodeDeploy IAM-Rolle
Bevor Sie den CodeDeploy Blau/Grün-Bereitstellungstyp mit Amazon ECS verwenden können, benötigt der CodeDeploy-Service die Berechtigungen, um Ihren Amazon-ECS-Service in Ihrem Namen zu aktualisieren. Diese Berechtigungen werden von der CodeDeploy-IAM-Rolle bereitgestellt (ecsCodeDeployRole).
Es werden zwei verwaltete Richtlinien bereitgestellt. Weitere Informationen finden Sie unter einem der folgenden Einträgen im Referenzleitfaden für AWS-verwaltete Richtlinien:
Die -CodeDeploy-Rolle erstellen
Sie können die folgenden Vorgehensweisen nutzen, um eine CodeDeployy-Rolle für Amazon ECS zu erstellen
- AWS Management Console
-
So erstellen Sie die Servicerolle für CodeDeploy (IAM-Konsole)
Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.
-
Klicken Sie im Navigationsbereich der IAM-Konsole auf Rollen, und wählen Sie dann Rolle erstellen.
-
Wählen Sie für Vertrauenswürdige Entität die Option AWS-Service aus.
-
Wählen Sie für Service oder Anwendungsfall die Option CodeDeploy und dann den Anwendungsfall CodeDeploy – ECS aus.
-
Wählen Sie Weiter aus.
-
Stellen Sie sicher, dass im Abschnitt Zugriffsrichtlinie anhängen die Richtlinie AWSCodeDeployRoleForECS ausgewählt ist.
-
Wählen Sie Weiter aus.
-
Geben Sie als Rollenname ecsCodeDeployRole ein.
-
Prüfen Sie die Rolle und klicken Sie dann auf Create Role (Rolle erstellen).
- AWS CLI
-
Ersetzen Sie jede Benutzereingabe durch Ihre eigenen Informationen.
-
Erstellen Sie eine Datei namens codedeploy-trust-policy.json, die die Vertrauensrichtlinie enthält, die für die CodeDeploy-IAM-Rolle verwendet werden soll.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": ["codedeploy.amazonaws.com"]
},
"Action": "sts:AssumeRole"
}
]
}
-
Erstellen Sie eine IAM-Rolle namens ecsCodedeployRole, die im vorherigen Schritt erstellte Vertrauensrichtlinie verwendet.
aws iam create-role \
--role-name ecsCodedeployRole \
--assume-role-policy-document file://codedeploy-trust-policy.json
-
Hängen Sie die verwaltete Richtlinie AWSCodeDeployRoleForECS oder AWSCodeDeployRoleForECSLimited an die Rolle ecsTaskRole an.
aws iam attach-role-policy \
--role-name ecsCodedeployRole \
--policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS
aws iam attach-role-policy \
--role-name ecsCodedeployRole \
--policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECSLimited
Wenn die Aufgaben in Ihrem Service eine Aufgabenausführungsrolle benötigen, müssen Sie die iam:PassRole-Berechtigung für jede Aufgabenausführungsrolle oder jeden Aufgabenrollen-Überschreibung als Richtlinie zur CodeDeploy-Rolle hinzufügen.
Berechtigungen der Aufgabenausführungsrolle
Wenn die Aufgaben in Ihrem Service eine Aufgabenausführungsrolle benötigen, müssen Sie die iam:PassRole-Berechtigung für jede Aufgabenausführungsrolle oder jeden Aufgabenrollen-Überschreibung als Richtlinie zur CodeDeploy-Rolle hinzufügen. Weitere Informationen erhalten Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung und Aufgaben-IAM-Rolle für Amazon ECS. Anschließend hängen Sie diese Richtlinie der CodeDeploy-Rolle an.
Erstellen der -Richtlinie
- AWS Management Console
-
So verwenden Sie den JSON-Richtlinieneditor zum Erstellen einer Richtlinie
Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.
-
Wählen Sie im Navigationsbereich auf der linken Seite Policies (Richtlinien).
Wenn Sie zum ersten Mal Policies (Richtlinien) auswählen, erscheint die Seite Welcome to Managed Policies (Willkommen bei verwalteten Richtlinien). Wählen Sie Get Started.
-
Wählen Sie oben auf der Seite Create policy (Richtlinie erstellen) aus.
-
Wählen Sie im Bereich Policy editor (Richtlinien-Editor) die Option JSON aus.
-
Geben Sie folgendes JSON-Richtliniendokument ein:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"]
}
]
}
-
Wählen Sie Weiter aus.
Sie können jederzeit zwischen den Editoroptionen Visual und JSON wechseln. Wenn Sie jedoch Änderungen vornehmen oder im Visual-Editor Weiter wählen, strukturiert IAM Ihre Richtlinie möglicherweise um, um sie für den visuellen Editor zu optimieren. Weitere Informationen finden Sie unter Richtlinienrestrukturierung im IAM-Benutzerhandbuch.
-
Geben Sie auf der Seite Prüfen und erstellen unter Richtlinienname einen Namen und unter Beschreibung (optional) eine Beschreibung für die Richtlinie ein, die Sie erstellen. Überprüfen Sie Permissions defined in this policy (In dieser Richtlinie definierte Berechtigungen), um die Berechtigungen einzusehen, die von Ihrer Richtlinie gewährt werden.
-
Wählen Sie Create policy (Richtlinie erstellen) aus, um Ihre neue Richtlinie zu speichern.
Nachdem Sie die Richtlinie erstellt haben, hängen Sie die Richtlinie der CodeDeploy-Rolle an. Informationen zum Anhängen der Richtlinie an die Rolle finden Sie unter Aktualisieren der Berechtigungen für eine Rolle im Benutzerhandbuch für AWS Identity and Access Management.
- AWS CLI
-
Ersetzen Sie jede Benutzereingabe durch Ihre eigenen Informationen.
-
Erstellen Sie eine Datei mit dem Namen blue-green-iam-passrole.json und folgendem Inhalt.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::*:role/code-deploy-role"],
"Condition": {
"StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"}
}
}
]
}
-
Verwenden Sie den folgenden Befehl, um die IAM-Richtlinie mit der JSON-Richtliniendokumentdatei zu erstellen.
aws iam create-policy \
--policy-name cdTaskExecutionPolicy \
--policy-document file://blue-green-iam-passrole.json
-
Rufen Sie mit dem folgenden Befehl den ARN der IAM-Richtlinie ab, die Sie erstellt haben.
aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy`].Arn'
-
Verwenden Sie den folgenden Befehl, um die Richtlinie der CodeDeploy-IAM-Rolle anzufügen.
aws iam attach-role-policy \
--role-name ecsCodedeployRole \
--policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy