Google Cloud에서 프로젝트 수준, 폴더 수준, 조직 수준의 서비스 에이전트는
Google Cloud 서비스를 사용 설정하고 사용할 때 자동으로 생성됩니다.
경우에 따라 이러한 서비스 에이전트에는 사용자 대신 리소스를 만들고 액세스할 수 있게
해주는 역할이 자동으로 부여됩니다.
필요에 따라 서비스를 사용하기 전 Google Cloud에 서비스에 대해
프로젝트 수준, 폴더 수준, 조직 수준 서비스 에이전트를 만들도록 요청할 수도 있습니다.
Google Cloud에 서비스 에이전트를 만들도록 요청하면 서비스 사용 전 서비스 에이전트에 역할을 부여할 수 있습니다.
서비스 에이전트가 아직 생성되지 않았으면 서비스 에이전트에 역할을 부여할 수 없습니다.
이 옵션은 허용 정책 관리를 위해 다음 전략 중 하나를 사용할 때 유용합니다.
Terraform과 같은 선언적 프레임워크. Terraform 구성에 서비스 에이전트 역할이 포함되지 않은 경우
구성을 적용할 때 해당 역할이 취소됩니다.
Terraform 구성에서 서비스 에이전트를 만들고 여기에 역할을 부여하면 해당 역할이 취소되지 않습니다.
코드 저장소에 현재 허용 정책의 사본을 저장하는 코드형 정책 시스템.
Google Cloud가 서비스 에이전트에 자동으로 역할을 부여하도록 설정하면 해당 역할이 실제 허용 정책에 표시되지만
저장된 허용 정책 사본에는 표시되지 않습니다.
이러한 불일치를 해결하기 위해 이러한 역할을 잘못 취소할 수 있습니다.
서비스 에이전트를 만들고 여기에 역할을 미리 부여하면 코드 저장소와
실제 허용 정책 간의 차이를 방지하는 데 도움이 될 수 있습니다.
서비스 에이전트 만들기를 트리거한 후에는 일반적으로 자동으로 부여되는 역할을 서비스 에이전트에 부여해야 합니다.
그렇지 않으면 일부 서비스가 올바르게 작동하지 않을 수 있습니다.
이것은 사용자 요청으로 생성된 서비스 에이전트에 권한이 자동으로 부여되지 않기 때문입니다.
AWS EKS에서는 아래와 같이 표현한다.
그래 설명은 알겠다. iac/api 로 설치를 하는데 있어서는 필요하다고 쳐도 그럼 왜 일반 관리형 서비스계정으로는 설치가 안되는것인가? 에 대한 의문은 아직 해소 되지 않았다.
기본적으로 IAM 사용자 및 역할은 Amazon EKS 리소스를 생성하거나 수정할 수 있는 권한이 없습니다.
또한 AWS Management Console, AWS CLI또는 AWSAPI를 사용해 태스크를 수행할 수 없습니다.
IAM 관리자는 지정된 리소스에서 특정 API 태스크를 수행할 수 있는 권한을 사용자와 역할에게 부여하는 IAM 정책을 생성해야 합니다.
그런 다음 관리자는 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 정책을 연결해야 합니다.
이러한 예제 JSON 정책 문서를 사용하여 IAM ID 기반 정책을 생성하는 방법을 알아보려면
IAM 사용 설명서의 JSON 탭에서 정책 생성을 참조하세요.
Amazon EKS 클러스터를 생성할 경우 클러스터를 생성하는 IAM 보안 주체에게는 Amazon EKS 제어 영역의 클러스터
역할 기반 액세스 제어(RBAC) 구성에 system:masters 권한이 자동으로 부여됩니다.
이 보안 주체는 표시되는 구성에 나타나지 않으므로 클러스터를 원래 생성한 보안 주체를 추적해야 합니다.
추가 IAM 보안 주체에 클러스터와 상호 작용할 수 있는 기능을 부여하려면
Kubernetes 내에서 aws-auth ConfigMap을 편집하고
aws-auth ConfigMap에 지정하는 group의 이름으로 Kubernetes rolebinding 또는 clusterrolebinding을 생성합니다.