In den Tabellen auf dieser Seite werden alle Berechtigungen aufgeführt, die zum Erstellen der AWS IAM-Standardrollen verwendet werden. Informationen zum Erstellen dieser Richtlinien mit Standardberechtigungen finden Sie unter AWS-IAM-Rollen erstellen.
- Rolle „GKE Multi-Cloud API-Dienst-Agent“
- Die GKE Multi-Cloud API verwendet diese AWS IAM-Rolle, um Ressourcen mit AWS APIs zu verwalten. Diese Rolle wird von einem von Google verwalteten Dienstkonto verwendet, das als Dienst-Agent bezeichnet wird.
- AWS-IAM-Rolle der Steuerungsebene
- Ihre Clustersteuerungsebene verwendet diese Rolle zur Steuerung der Knotenpools.
- AWS-IAM-Rolle für Knotenpool
- Die Steuerungsebene verwendet diese Rolle zum Erstellen von Knotenpool-VMs.
Je nach den Anforderungen Ihrer Organisation können Sie benutzerdefinierte AWS IAM-Richtlinien für GKE on AWS erstellen, um Ihre Cluster zu verwalten. Diese Richtlinien ersetzen die Standardversionen. Anschließend wenden Sie diese Richtlinien auf AWS IAM-Rollen an und geben sie beim Erstellen eines Clusters an.
Weitere Informationen zum Zweck der einzelnen Rollen finden Sie unter AWS IAM-Rollen für GKE on AWS.
Wählen Sie zum Erstellen dieser Richtlinien die Ebene aus, auf die Sie Ihre Ressourcen einschränken möchten. Beispielsweise können Sie eine Richtlinie mit dem Amazon Resource Name (ARN) der VPC auf eine bestimmte AWS-VPC beschränken. Weitere Informationen finden Sie unter Zugriff auf AWS-Ressourcen mithilfe von Richtlinien steuern.
IAM-Richtlinien für GKE Multi-Cloud-Dienst-Agents
| Ressourcentyp | ARN | Berechtigung erforderlich | Zweck | Referenz |
|---|---|---|---|---|
| Sicherheitsgruppe | arn:aws:ec2:*:*:security-group/sg-* |
ec2:DescribeSecurityGroups (Erstellen, aktualisieren, löschen)ec2:CreateSecurityGroup (Erstellen)ec2:CreateTags (Erstellen)ec2:RevokeSecurityGroupEgress (Erstellen)ec2:DeleteSecurityGroup (Löschen) |
Sicherheitsgruppe "Steuerungsebene" | |
| Sicherheitsgruppe | Sicherheitsgruppe "Knotenpool" | |||
| Sicherheitsgruppenregel | arn:aws:ec2:*:*:security-group-rule/sgr-* |
ec2:AuthorizeSecurityGroupEgress (Erstellen)ec2:RevokeSecurityGroupEgress (Löschen)ec2:CreateTags (Erstellen) |
Sicherheitsgruppenregel für ausgehenden Traffic auf Steuerungsebene | |
| Sicherheitsgruppenregel | ec2:AuthorizeSecurityGroupIngress (Erstellen)ec2:RevokeSecurityGroupIngress (Löschen)ec2:CreateTags (Erstellen) |
Sicherheitsgruppenregel für eingehenden Traffic auf Steuerungsebene | ||
| Sicherheitsgruppenregel | ec2:AuthorizeSecurityGroupEgress (Erstellen)ec2:RevokeSecurityGroupEgress (Löschen)ec2:CreateTags (Erstellen) |
Sicherheitsgruppenregel für ausgehenden Traffic auf Steuerungsebene | ||
| Sicherheitsgruppenregel | ec2:AuthorizeSecurityGroupIngress (Erstellen)ec2:RevokeSecurityGroupIngress (Löschen)ec2:CreateTags (Erstellen) |
Sicherheitsgruppenregel für eingehenden Traffic auf Steuerungsebene | ||
| Netzwerk-Load-Balancer | arn:aws:elasticloadbalancing:*:*:loadbalancer/net/gke-* |
elasticloadbalancing:DescribeLoadBalancers (Erstellen, Löschen) elasticloadbalancing:CreateLoadBalancer (Erstellen)ec2:CreateSecurityGroup (Erstellen)ec2:DescribeAccountAttributes (Erstellen)ec2:DescribeInternetGateways (Erstellen)ec2:DescribeSecurityGroups (Erstellen)ec2:DescribeSubnets (Erstellen)ec2:DescribeVpcs (Erstellen)iam:CreateServiceLinkedRole (Erstellen)elasticloadbalancing:DeleteLoadBalancer (Löschen) |
Kubernetes API-Server-Load-Balancer | Elastic Load Balancing API-Berechtigungen |
| Zielgruppe | arn:aws:elasticloadbalancing:*:*:targetgroup/gke-* |
elasticloadbalancing:DescribeTargetGroups (Erstellen, aktualisieren, löschen)elasticloadbalancing:DescribeTargetHealth (Erstellen, aktualisieren)elasticloadbalancing:CreateTargetGroup (Erstellen)elasticloadbalancing:ModifyTargetGroupAttributes (Erstellen)ec2:DescribeInternetGateways (Erstellen)ec2:DescribeVpcs (Erstellen)elasticloadbalancing:DeleteTargetGroup (Löschen) |
Zielgruppe für https | Elastic Load Balancing API-Berechtigungen |
| Zielgruppe | Zielgruppe für https für Konnectivity-Agent | |||
| Listener | arn:aws:elasticloadbalancing:*:*:listener/net/gke-* |
elasticloadbalancing:CreateListener (Erstellen)elasticloadbalancing:DeleteListener (Löschen)
elasticloadbalancing:DescribeListeners (Löschen)elasticloadbalancing:DeleteListener (Löschen) |
Listener für https | |
| Listener | Listener für https für Konnectivity-Agent | |||
| Volume | arn:aws:ec2:*:*:volume/vol-* |
ec2:CreateVolume (Erstellen)ec2:CreateTags (Erstellen)ec2:DeleteVolume (Löschen) |
etcd-Volumes | |
| Netzwerkschnittstelle | arn:aws:ec2:*:*:network-interface/eni-* |
ec2:DescribeNetworkInterfacesAktualisierenec2:CreateNetworkInterface (Erstellen)ec2:CreateTags (Erstellen)ec2:ModifyNetworkInterfaceAttribute (Aktualisieren)ec2:DeleteNetworkInterface (Löschen) |
etcd-NICs | |
| Vorlage starten | arn:aws:ec2:*:*:launch-template/lt-* |
ec2:CreateLaunchTemplate (Erstellen, Aktualisieren)ec2:CreateTags (Erstellen, Aktualisieren)ec2:DeleteLaunchTemplate (Löschen) |
Vorlage für Instanzen der Steuerungsebene starten | |
| Vorlage starten | Startvorlage für Knotenpoolinstanzen | |||
| Autoscaling-Gruppe | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
autoscaling:DescribeAutoScalingGroups (Erstellen, aktualisieren, löschen)autoscaling:CreateAutoScalingGroup (Erstellen)autoscaling:CreateOrUpdateTags (Aktualisieren)autoscaling:UpdateAutoScalingGroup (Aktualisieren, Löschen)autoscaling:TerminateInstanceInAutoScalingGroup (Aktualisieren)autoscaling:DeleteTags Aktualisieren, (Löschen)autoscaling:DeleteAutoScalingGroup (Löschen)iam:CreateServiceLinkedRole (Erstellen)ec2:RunInstances (Erstellen)iam:PassRole (Erstellen) |
Autoscaling-Gruppen für Steuerungsebeneninstanzen | Erforderliche API-Berechtigungen für Amazon EC2 Auto Scaling |
| Autoscaling-Gruppe | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
Autoscaling-Gruppen für Knotenpoolinstanzen | Erforderliche Berechtigungen zum Erstellen einer mit einem Dienst verknüpften Rolle | |
| EC2-Schlüsselpaare | ec2:DescribeKeyPairs (Erstellen) |
Achten Sie darauf, dass das EC2-Schlüsselpaar vorhanden ist, das zur Anmeldung bei Clustermaschinen verwendet wird. | ||
| Subnetze | ec2:DescribeSubnets (Erstellen) |
Zugriff auf zusätzliche Subnetze in Ihrer VPC | ||
| VPC | ec2:DescribeVpcs (Erstellen) |
Informationen zu Ihrer AWS-VPC | ||
| Ausgabe der EC2-Konsole | ec2:GetConsoleOutput (Erstellen/aktualisieren) |
Konsolenlogs auf Fehler prüfen | ||
| KMS-Schlüssel | For more information on KMS key policies for GKE on AWS
Creating KMS keys with specific permissions
|
IAM-Richtlinie für die Rolle der Steuerungsebene
| Zweck | Berechtigung erforderlich | Referenz |
|---|---|---|
| Cluster Autoscaler | autoscaling:DescribeAutoScalingGroups (Erstellen, aktualisieren)autoscaling:DescribeAutoScalingInstances (Erstellen, aktualisieren)autoscaling:DescribeLaunchConfigurations (Erstellen, aktualisieren)autoscaling:DescribeTags (Erstellen, Aktualisieren)ec2:DescribeInstanceTypes (Erstellen, Aktualisieren)ec2:DescribeLaunchTemplateVersions (Erstellen, Aktualisieren)autoscaling:SetDesiredCapacityautoscaling:TerminateInstanceInAutoScalingGroup |
https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md |
| cloud-provider-aws | autoscaling:DescribeAutoScalingGroupsautoscaling:DescribeLaunchConfigurationsautoscaling:DescribeTags (Erstellen)ec2:DescribeInstances (Erstellen)ec2:DescribeRegionsec2:DescribeRouteTablesec2:DescribeSecurityGroupsec2:DescribeSubnetsec2:DescribeVolumesec2:CreateSecurityGroupec2:CreateTagsec2:CreateVolumeec2:ModifyInstanceAttributeec2:ModifyVolumeec2:AttachVolume (Erstellen)ec2:AuthorizeSecurityGroupIngressec2:CreateRouteec2:DeleteRouteec2:DeleteSecurityGroupec2:DeleteVolumeec2:DetachVolumeec2:RevokeSecurityGroupIngressec2:DescribeVpcselasticloadbalancing:AddTagselasticloadbalancing:AttachLoadBalancerToSubnetselasticloadbalancing:ApplySecurityGroupsToLoadBalancerelasticloadbalancing:CreateLoadBalancerelasticloadbalancing:CreateLoadBalancerPolicyelasticloadbalancing:CreateLoadBalancerListenerselasticloadbalancing:ConfigureHealthCheckelasticloadbalancing:DeleteLoadBalancerelasticloadbalancing:DeleteLoadBalancerListenerselasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeLoadBalancerAttributeselasticloadbalancing:DetachLoadBalancerFromSubnetselasticloadbalancing:DeregisterInstancesFromLoadBalancerelasticloadbalancing:ModifyLoadBalancerAttributeselasticloadbalancing:RegisterInstancesWithLoadBalancerelasticloadbalancing:SetLoadBalancerPoliciesForBackendServerelasticloadbalancing:AddTagselasticloadbalancing:CreateListenerelasticloadbalancing:CreateTargetGroupelasticloadbalancing:DeleteListenerelasticloadbalancing:DeleteTargetGroupelasticloadbalancing:DescribeListenerselasticloadbalancing:DescribeLoadBalancerPolicieselasticloadbalancing:DescribeTargetGroupselasticloadbalancing:DescribeTargetHealthelasticloadbalancing:ModifyListenerelasticloadbalancing:ModifyTargetGroupelasticloadbalancing:RegisterTargetselasticloadbalancing:DeregisterTargetselasticloadbalancing:SetLoadBalancerPoliciesOfListeneriam:CreateServiceLinkedRolekms:DescribeKey |
https://github.com/kubernetes/cloud-provider-aws/blob/master/docs/prerequisites.md |
| Load-Balancer erstellen | elasticloadbalancing:CreateLoadBalancerec2:DescribeAccountAttributesec2:DescribeInternetGatewaysec2:DescribeSecurityGroupsec2:DescribeSubnetsec2:DescribeVpcs |
https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html |
| aws-ebs-cser-driver | ec2:DescribeVolumesModifications
ec2:DescribeAvailabilityZones |
https://github.com/kubernetes-sigs/aws-ebs-csi-driver/tree/master/docs#set-up-driver-permission |
| gke-aws-controller-manager | ec2:DescribeDhcpOptionsec2:DescribeInstancesec2:DescribeVpcs |
|
elasticloadbalancing:ModifyTargetGroupAttributes |
||
ec2:DescribeSnapshotsec2:CreateSnapshotec2:DeleteSnapshot |
CSI-Snapshotter | Externer Snapshotter in Kubernetes |
| GKE on AWS-Knoten-Agent NIC an etcd anhängen |
ec2:AttachNetworkInterface (Erstellen/aktualisieren) |
|
| Proxy-Konfiguration aus Secrets Manager lesen | secretsmanager:GetSecretValue (Erstellen/aktualisieren) |
|
| Mit KMS-Schlüsseln interagieren | kms:Encrypt (Erstellen, aktualisieren)kms:Decrypt (Erstellen, aktualisieren)kms:CreateGrant (Erstellen, aktualisieren) |
IAM-Richtlinie für die Rolle des Knotenpools
| Zweck | Berechtigung erforderlich | Referenz |
|---|---|---|
| Proxy-Konfiguration aus Secrets Manager lesen | secretsmanager:GetSecretValue (Erstellen/aktualisieren) |
|
| KMS-Schlüssel zum Entschlüsseln der Konfiguration von Knotenpools | kms:Decrypt (Erstellen/aktualisieren) |
AWS KMS-Schlüssel erstellen |