이 페이지의 표에는 기본 AWS IAM 역할을 만들 때 사용되는 모든 권한이 나열되어 있습니다. 기본 권한으로 이러한 정책을 만들려면 AWS IAM 역할 만들기를 참조하세요.
- GKE Multi-Cloud API 서비스 에이전트 역할
- GKE Multi-Cloud API는 이 AWS IAM 역할을 사용해서 AWS API를 사용하여 리소스를 관리합니다. 이 역할은 서비스 에이전트라고 하는 Google 관리 서비스 계정에 사용됩니다.
- 제어 영역 AWS IAM 역할
- 클러스터 제어 영역은 이 역할을 사용해서 노드 풀을 제어합니다.
- 노드 풀 AWS IAM 역할
- 제어 영역은 이 역할을 사용하여 노드 풀 VM을 만듭니다.
조직 요구사항에 따라 AWS용 GKE에 대해 클러스터 관리를 위해 커스텀 AWS IAM 정책을 만들도록 선택할 수 있습니다. 이러한 정책은 기본 버전을 대체합니다. 그런 후 이러한 정책을 AWS IAM 역할에 적용하고 클러스터를 만들 때 이를 제공합니다.
각 역할의 목적에 대한 자세한 내용은 AWS용 GKE에 대한 AWS IAM 역할을 참조하세요.
이러한 정책을 만들려면 리소스를 제한할 수준을 선택합니다. 예를 들어 VPC의 Amazon 리소스 이름(ARN)을 사용하여 특정 AWS VPC로 정책을 제한할 수 있습니다. 자세한 내용은 정책을 사용하여 AWS 리소스로 액세스 제어를 참조하세요.
GKE Multi-cloud 서비스 에이전트의 IAM 정책
리소스 유형 | ARN | 권한 필요 | 목적 | 참조 |
---|---|---|---|---|
보안 그룹 | arn:aws:ec2:*:*:security-group/sg-* |
ec2:DescribeSecurityGroups (만들기, 업데이트, 삭제)ec2:CreateSecurityGroup (만들기)ec2:CreateTags (만들기)ec2:RevokeSecurityGroupEgress (만들기)ec2:DeleteSecurityGroup (삭제) |
제어 영역 보안 그룹 | |
보안 그룹 | 노드 풀 보안 그룹 | |||
보안 그룹 규칙 | arn:aws:ec2:*:*:security-group-rule/sgr-* |
ec2:AuthorizeSecurityGroupEgress (만들기)ec2:RevokeSecurityGroupEgress (삭제)ec2:CreateTags (만들기) |
제어 영역 이그레스 보안 그룹 규칙 | |
보안 그룹 규칙 | ec2:AuthorizeSecurityGroupIngress (만들기)ec2:RevokeSecurityGroupIngress (삭제)ec2:CreateTags (만들기) |
제어 영역 인그레스 보안 그룹 규칙 | ||
보안 그룹 규칙 | ec2:AuthorizeSecurityGroupEgress (만들기)ec2:RevokeSecurityGroupEgress (삭제)ec2:CreateTags (만들기) |
제어 영역 이그레스 보안 그룹 규칙 | ||
보안 그룹 규칙 | ec2:AuthorizeSecurityGroupIngress (만들기)ec2:RevokeSecurityGroupIngress (삭제)ec2:CreateTags (만들기) |
제어 영역 인그레스 보안 그룹 규칙 | ||
네트워크 부하 분산기 | arn:aws:elasticloadbalancing:*:*:loadbalancer/net/gke-* |
elasticloadbalancing:DescribeLoadBalancers (만들기, 삭제) elasticloadbalancing:CreateLoadBalancer (만들기)ec2:CreateSecurityGroup (만들기)ec2:DescribeAccountAttributes (만들기) ec2:DescribeInternetGateways (만들기)ec2:DescribeSecurityGroups (만들기)ec2:DescribeSubnets (만들기)ec2:DescribeVpcs (만들기)iam:CreateServiceLinkedRole (만들기)elasticloadbalancing:DeleteLoadBalancer (삭제) |
Kubernetes api-server 부하 분산기 | Elastic Load Balancing API 권한 |
대상 그룹 | arn:aws:elasticloadbalancing:*:*:targetgroup/gke-* |
elasticloadbalancing:DescribeTargetGroups (만들기, 업데이트, 삭제)elasticloadbalancing:DescribeTargetHealth (만들기, 업데이트)elasticloadbalancing:CreateTargetGroup (만들기)elasticloadbalancing:ModifyTargetGroupAttributes (만들기)ec2:DescribeInternetGateways (만들기)ec2:DescribeVpcs (만들기)elasticloadbalancing:DeleteTargetGroup (삭제) |
https 대상 그룹 | Elastic Load Balancing API 권한 |
대상 그룹 | konnectivity 에이전트의 https 대상 그룹 | |||
리스너 | arn:aws:elasticloadbalancing:*:*:listener/net/gke-* |
elasticloadbalancing:CreateListener (만들기)elasticloadbalancing:DeleteListener (삭제)
elasticloadbalancing:DescribeListeners (삭제)elasticloadbalancing:DeleteListener (삭제) |
https 리스너 | |
리스너 | konnectivity 에이전트의 https 리스너 | |||
볼륨 | arn:aws:ec2:*:*:volume/vol-* |
ec2:CreateVolume (만들기)ec2:CreateTags (만들기)ec2:DeleteVolume (삭제) |
etcd 볼륨 | |
네트워크 인터페이스 | arn:aws:ec2:*:*:network-interface/eni-* |
ec2:DescribeNetworkInterfaces 업데이트ec2:CreateNetworkInterface (만들기)ec2:CreateTags (만들기)ec2:ModifyNetworkInterfaceAttribute (업데이트)ec2:DeleteNetworkInterface (삭제) |
etcd NIC | |
출시 템플릿 | arn:aws:ec2:*:*:launch-template/lt-* |
ec2:CreateLaunchTemplate (만들기, 업데이트)ec2:CreateTags (만들기, 업데이트)ec2:DeleteLaunchTemplate (삭제) |
제어 영역 인스턴스의 출시 템플릿 | |
출시 템플릿 | 노드 풀 인스턴스의 출시 템플릿 | |||
자동 확장 그룹 | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
autoscaling:DescribeAutoScalingGroups (만들기, 업데이트, 삭제)autoscaling:CreateAutoScalingGroup (만들기)autoscaling:CreateOrUpdateTags (업데이트)autoscaling:UpdateAutoScalingGroup (업데이트, 삭제)autoscaling:TerminateInstanceInAutoScalingGroup (업데이트)autoscaling:DeleteTags (업데이트, 삭제)autoscaling:DeleteAutoScalingGroup (삭제)iam:CreateServiceLinkedRole (만들기)ec2:RunInstances (만들기)iam:PassRole (만들기) |
제어 영역 인스턴스의 자동 확장 그룹 | Amazon EC2 자동 확장에 필요한 API 권한 |
자동 확장 그룹 | arn:aws:autoscaling:*:*:autoScalingGroup:*: |
노드 풀 인스턴스의 자동 확장 그룹 | 서비스 연결 역할을 만드는 데 필요한 권한 | |
EC2 키 쌍 | ec2:DescribeKeyPairs (만들기) |
클러스터 머신에 로그인하는 데 사용되는 EC2 키 쌍이 있는지 확인합니다. | ||
서브넷 | ec2:DescribeSubnets (만들기) |
VPC의 추가 서브넷 액세스 | ||
VPC | ec2:DescribeVpcs (만들기) |
AWS VPC 정보 | ||
EC2 콘솔 출력 | ec2:GetConsoleOutput (만들기, 업데이트) |
콘솔 로그에서 오류 확인 | ||
KMS 키 | For more information on KMS key policies for GKE on AWS
Creating KMS keys with specific permissions
|
제어 영역 역할의 IAM 정책
목적 | 권한 필요 | 참조 |
---|---|---|
클러스터 자동 확장 처리 | autoscaling:DescribeAutoScalingGroups (만들기, 업데이트)autoscaling:DescribeAutoScalingInstances (만들기, 업데이트)autoscaling:DescribeLaunchConfigurations (만들기, 업데이트)autoscaling:DescribeTags (만들기, 업데이트)ec2:DescribeInstanceTypes (만들기, 업데이트)ec2:DescribeLaunchTemplateVersions (만들기, 업데이트)autoscaling:SetDesiredCapacity autoscaling:TerminateInstanceInAutoScalingGroup |
https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md |
cloud-provider-aws | autoscaling:DescribeAutoScalingGroups autoscaling:DescribeLaunchConfigurations autoscaling:DescribeTags (만들기)ec2:DescribeInstances (만들기)ec2:DescribeRegions ec2:DescribeRouteTables ec2:DescribeSecurityGroups ec2:DescribeSubnets ec2:DescribeVolumes ec2:CreateSecurityGroup ec2:CreateTags ec2:CreateVolume ec2:ModifyInstanceAttribute ec2:ModifyVolume ec2:AttachVolume (만들기)ec2:AuthorizeSecurityGroupIngress ec2:CreateRoute ec2:DeleteRoute ec2:DeleteSecurityGroup ec2:DeleteVolume ec2:DetachVolume ec2:RevokeSecurityGroupIngress ec2:DescribeVpcs elasticloadbalancing:AddTags elasticloadbalancing:AttachLoadBalancerToSubnets elasticloadbalancing:ApplySecurityGroupsToLoadBalancer elasticloadbalancing:CreateLoadBalancer elasticloadbalancing:CreateLoadBalancerPolicy elasticloadbalancing:CreateLoadBalancerListeners elasticloadbalancing:ConfigureHealthCheck elasticloadbalancing:DeleteLoadBalancer elasticloadbalancing:DeleteLoadBalancerListeners elasticloadbalancing:DescribeLoadBalancers elasticloadbalancing:DescribeLoadBalancerAttributes elasticloadbalancing:DetachLoadBalancerFromSubnets elasticloadbalancing:DeregisterInstancesFromLoadBalancer elasticloadbalancing:ModifyLoadBalancerAttributes elasticloadbalancing:RegisterInstancesWithLoadBalancer elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer elasticloadbalancing:AddTags elasticloadbalancing:CreateListener elasticloadbalancing:CreateTargetGroup elasticloadbalancing:DeleteListener elasticloadbalancing:DeleteTargetGroup elasticloadbalancing:DescribeListeners elasticloadbalancing:DescribeLoadBalancerPolicies elasticloadbalancing:DescribeTargetGroups elasticloadbalancing:DescribeTargetHealth elasticloadbalancing:ModifyListener elasticloadbalancing:ModifyTargetGroup elasticloadbalancing:RegisterTargets elasticloadbalancing:DeregisterTargets elasticloadbalancing:SetLoadBalancerPoliciesOfListener iam:CreateServiceLinkedRole kms:DescribeKey |
https://github.com/kubernetes/cloud-provider-aws/blob/master/docs/prerequisites.md |
부하 분산기 만들기 | elasticloadbalancing:CreateLoadBalancer ec2:DescribeAccountAttributes ec2:DescribeInternetGateways ec2:DescribeSecurityGroups ec2:DescribeSubnets ec2:DescribeVpcs |
https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html |
aws-ebs-csi-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:DescribeDhcpOptions ec2:DescribeInstances ec2:DescribeVpcs |
|
elasticloadbalancing:ModifyTargetGroupAttributes |
||
ec2:DescribeSnapshots ec2:CreateSnapshot ec2:DeleteSnapshot |
CSI 스냅샷 | Kubernetes 외부 스냅샷 |
AWS용 GKE 노드 에이전트 etcd에 NIC 연결 |
ec2:AttachNetworkInterface (만들기, 업데이트) |
|
Secret Manager에서 프록시 구성 읽기 | secretsmanager:GetSecretValue (만들기, 업데이트) |
|
KMS 키와 상호작용 | kms:Encrypt (만들기, 업데이트)kms:Decrypt (만들기, 업데이트)kms:CreateGrant (만들기, 업데이트) |
노드 풀 역할의 IAM 정책
목적 | 권한 필요 | 참조 |
---|---|---|
Secret Manager에서 프록시 구성 읽기 | secretsmanager:GetSecretValue (만들기, 업데이트) |
|
노드 풀 구성 암호화를 복호화하는 KMS 키 | kms:Decrypt (만들기, 업데이트) |
AWS KMS 키 만들기 |