Cloud & DevOps/AWS

[AWS] EKS Service Account -> IAM role assume을 위한 configuration 파일 설정

백곰곰 2023. 1. 3. 21:23
728x90
반응형

EKS에 띄운 Pod 내에서 여러 role을 ~/.aws/config 파일에 설정하고 profile을 변경하며 작업을 하고 싶어 설정을 해봤습니다.

 

1. IAM role 생성

   - role-service-account

   - role-assumed (타 계정)

 

2. Trust Policy 설정

      2-1. role-service-account : OIDC Provider Trust Policy 설정 추가

           참고 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-pods-iam-role-service-accounts/

      2-2. role-assumed : role-service-account role Trust Policy 설정 추가

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:role/role-service-account"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

3. Service Account 생성

apiVersion: v1
kind: ServiceAccount
metadata:
  name: sample-service-account
  namespace: sample
  annotations: 
    eks.amazonaws.com/role-arn: arn:aws:iam::111111111111:role/role-service-account

 

4. Pod 내 ~./aws/config 파일 생성

[default]
role_arn = arn:aws:iam::111111111111:role/role-service-account
web_identity_token_file = /var/run/secrets/eks.amazonaws.com/serviceaccount/token

[profile account02]
role_arn = arn:aws:iam::222222222222:role/role-assumed
source_profile = default

* 영구 사용을 위해서는 Docker Image 빌드 후 Pod를 배포하거나 ConfigMap을 해당 경로(mountPath, subPath)에 마운트하면 됩니다.

    

5. aws cli 테스트

aws s3 ls --profile account02
728x90