AWS IAM 역할 목록

이 페이지의 표에는 기본 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:*:autoScalingGroupName/gke-* 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:*:autoScalingGroupName/gke-* 노드 풀 인스턴스의 자동 확장 그룹 서비스 연결 역할을 만드는 데 필요한 권한
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:DeleteTags

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 키 만들기