IT/AWS

    [AWS] IRSA 란? (IAM Roles for Service Accounts)

    Intro AWS에는 IAM(Identity and Access Management)이라는 강력한(?) RABAC기반 접근관리 서비스가 있습니다. 이 IAM의 Role(역할)을 통해서 리소스와 리소스간 접근 관리도 할 수 있고, User(사용자)에게 적절한 접근 정책을 줘서 유저의 접근 관리도 할 두 있습니다. 일반적으로 EC2에 IAM Role을 할당하여 EC2 위에서 동작하는 application이 AWS SDK를 사용하거나 AWS CLI를 사용할때 EC2에 부여된 IAM Role의 권한으로 S3나 Secretmanager와 같은 리소스에 접근할 수 있도록 사용할수 있죠. 그러면 EKS Cluster안에서 동작하는 kubernetes Pod에는 어떻게 IAM Role을 줄 수 있을까요? 오늘 이야기할..

    [AWS] EKS내부 pod가 Node의 IAM Role 권한 가져오지 못하는 이슈 (feat.IMDSv2)

    이슈 EKS cluster에서 생성한 pod가 Node의 IAM Role 권한을 가져오지 못하고 있었습니다. 이슈를 트래킹 해보니 우선 첫번째로 pod, node모두에서 메타데이터를 호출하는 ipv4 주소 curl -v 169.254.169.254 를 호출하지도 못하고 있었습니다. 두번째로는 aws sts get-caller-identity 로 권한 조회도 되지 않았습니다. 원인1 - EC2가 IMDSv2로만 설정이 되어있었다 terraform EKS Module에 Node instance생성할때 IMDSv2만 사용하도록하는 설정이 default로 들어가 있었습니다. ( 바로 여기에요 https://github.com/terraform-aws-modules/terraform-aws-eks/blob/mas..

    [AWS] 타계정에서 메인계정 ECR repository를 push/pull하는 권한 설정 방법

    Intro ECR은 AWS에서 제공하는 docker hub repository 입니다. 만약 여러 AWS계정을 사용할 경우 (e.g. prod/staging/dev 등등) ECR을 각각 가져갈 필요없이 main으로 사용할 AWS계정에서 ECR을 만들고 타계정에서 메인계정의 ECR을 접근할 수 있도록 설정해주면 됩니다. 오늘은 이 작업을 어떻게 하는지에 대해 알려드리도록 하겠습니다. 물론 AWS DOC에 잘 나와있습니다만, 잘 이해가 되지 않는 부분도 있기 때문에 명확하게 설정하는 방법을 알려드리겠습니다. 타계정에서 메인계정 ECR에 push/pull 하는 방법 타계정(secondary account) 에서 타계정의 IAM user에 "AmazonEC2ContainerRegistryPowerUser" 권한..

    [AWS] PaaS형 서비스 Auto Failover에 대해(elasticache, RDS, AuroraDB)

    RDS 의 Auto failover RDS는 Multi-AZ기능을 사용하였을 경우 Auto failover를 할 수 있습니다. Primary DB가 있는 AZ에서 Downtime이 발생했을 때, Auto Failover 를 통해서 짧은 시간 안에 Secondary DB를 승격시켜서 DB를 정상화시킬 수 있습니다. 일반적으로 Failover시간은 2-3분이내로 알려져있습니다. RDS의 Multi-AZ가 아닌 RR(Read Replica)만을 사용하였을 경우 Auto failover가 되지 않지만 수동으로는 승격시킬 수는 있습니다. Aurora DB의 Auto failover Aurora DB는 RDS와 다르게 Multi-AZ를 지원하지 않습니다. 대신 오로라는 RR(Read Replica)를 Auto fa..