본문 바로가기

aws15

AWS CDK 개발 중 The provided role does not have sufficient permissions to access CodeDeploy 오류 발생 👾 개요 및 오류 메세지 AWS CDK로 CodePipeline을 소스코드화 시키는 작업 중 아래와 같은 에러가 발생하였다. The provided role does not have sufficient permissions to access CodeDeploy 다음은 오류가 발생한 cdk 코드이다. (TypeScript) 💁🏼‍♂️ 소스코드 접기/펼치기!! import * as cdk from "@aws-cdk/core"; import * as iam from "@aws-cdk/aws-iam"; import * as s3 from "@aws-cdk/aws-s3"; import * as ec2 from "@aws-cdk/aws-ec2"; import * as codepipeline from "@aws-cd.. 2021. 6. 17.
AWS CDK 개발 중 AccountLimitExceededException 오류 발생 👾 개요 열심히 기존에 운영하던 CodePipeline을 CDK로 옮기는 작업 중 아래와 같은 에러가 발생했다. Error calling startBuild: Cannot have more than 0 builds in queue for the account (Service: AWSCodeBuild; Status Code: 400; Error Code: AccountLimitExceededException; Request ID: f0eca668-cd8e-4a4a-8a93-ed28f2e24305; Proxy: null) 위 사항이 발생하기까지 아래와 같은 환경을 가지고 있었다. 최근에 CDK를 통해서 CodePipeline을 소스로 전환 중에 있음. 최근에 CodePipeline 실행 수가 많음. 🚦 원인.. 2021. 6. 17.
AWS CDK로 CodePipeline 생성 시 is not authorized to perform AssumeRole on role 오류 해결 🤡 사전 조건, 배경 및 목표 CodePipeline에서 통합하여 사용할 IAM Role은 이미 생성되어 있음 공용 Artifact Store로 사용할 S3 버킷 생성되어 있음 위에서 미리 만들어진 Role 및 S3 Bucket을 사용하여 Code Pipeline을 CDK로 생성 소스는 TypeScript로 작성되었습니다. 소스 상의 ARN은 임의로 만든 값입니다. (공개할수는 없잖아요!) 👹 소스코드 설명 1. IAM Role ARN으로 불러오기 import * as iam from "@aws-cdk/aws-iam"; const CODEPIPELINE_ROLE_ARN = "arn:aws:iam::000000000000:role/service-role/AWSCodePipelineServiceRole"; .. 2021. 6. 14.
AWS CodeBuild 역할 수정 시 에러 (The policy was not attached to role) 🌅 배경 CodeBuild 서비스에서 빌드 프로젝트를 생성할 때 IAM Role을 임의로 지정해주지 않으면 새롭게 생성합니다. 따라서 임의로 지정해주지 않으면 아래와 같이 codebuild-{빌드 프로젝트 명} 형식의 IAM Role이 무수히 생성됩니다. 나중에 관리하기도 힘들고… 정책추가할 때 마다 하나하나씩 들어가서 직접 정책을 추가해줘야하는 번거로움이 있다. 이러한 이유로 하나의 IAM Role로 통합하기로 하였다!! 🚦 문제 기존에 있던 CodeBuild 프로젝트의 서비스 역할을 수정하려고 하니 아래와 같이 에러 메세지가 발생하였다… The policy was not attached to role {IAM Role 이름} 🤔 분석 CodeBuild에서는 편리하게도 IAM Role을 연결해주면 Co.. 2021. 6. 14.
[AWS] cdk bootstrap 적용이 안되는 경우 (no changes) 증상 이상하다... CDK로 적용한적 없는 환경임에 불구하고 bootstrap이 정상 작동하지 않는 듯하다... 원인 이전에 내가 사내에서 사용하지 않는 S3 Bucket들을 정리한다고 CDKToolKit bucket을 제거한 이력이 있다. 이로 인하여 적용이 되지 않았다. 조치 CloudFormation 콘솔로 접속하여 CDKToolKit을 제거하면 된다. (또는 CDK 로 검색되는 Stack들 제거!) 만약에 서비스 중인 환경이라면 진짜 정말정말 이거 지우는거 다시 생각해보자!! github.com/aws/aws-cdk/issues/986#issuecomment-666919935 2021. 4. 28.
[AWS] IAM에 대한 설명, 사용 방법에 대한 고찰 및 적용 사항 AWS IAM 계정은 크게 아래와 같이 구분 됩니다. group user role policy Group 사용자(user)를 분류 하는 단위 입니다. 개발하는 파트마다 사용하는 AWS 서비스가 다릅니다. 우리는 아래와 같이 개발하는 파트 따라서 사용자들을 구분합니다. * 관리자를 제외한 나머지 그룹은 서비스마다 Remove 권한은 제외됩니다. Administrator : 관리자 권한을 가진 사용자가 속한 그룹입니다. (기본적으로 전체 서비스 접근 가능합니다.) DevOps : 전체적인 인프라 관리하는 개발자가 속한 그룹입니다. (기본적으로 전체 서비스 접근 가능합니다.) Device : Device 개발자가 속한 그룹입니다. Device 개발자가 사용하는 관리형 서비스의 권한이 Assign 되어있습니다... 2021. 4. 27.
[AWS] 우리가 개발하는 서비스에서 IAM User(Access Key) 사용을 지양해야하는 이유 기본적으로 개발하는 서비스에서 IAM User의 Access Key 및 Secret Key 사용을 지양해야합니다. 왜 그럴까요? IAM User를 개발하는 서비스에서 직접 사용하는것의 장점을 말하는 것보다 단점이 보이는 최악의 경우를 말씀드리는게 이해하는데 도움이 된다는 생각에 최악의 경우를 말씀드리겠습니다. 첫번째, 사용자의 Access Key가 만료된 경우 이런 경우는 우리가 개발하는 서비스의 코드 또는 설정 파일에 Access Key, Secret Key가 하드 코딩 되어있을 것입니다. 이러한 Key들의 유효기간은 1년(365일) 입니다. Key가 만료 된다면 잘만 사용하던 서비스가 갑자기 비정상 동작을 하겠죠? 두번째, 개발자가 개발 시 개인 계정에서 Key 발급 후 사용자가 퇴사하면서 계정이 삭.. 2021. 4. 27.
[AWS] 서로 다른 Account의 S3로 접근하기 Requirement Account A ID Account B ID Account A에 속한 S3 버킷 * Account ID 확인 방법 : 바로가기 접근 불가 확인 Account B로 Account A에 속한 S3 버킷 접근 본 문서에서는 AWS-CLI로 접근 시도 하였습니다. Setting Account A에 속한 S3 버킷으로 이동 → 권한 탭 클릭 → 버킷 정책에서 편집 버튼 클릭 후 아래 코드 추가 후 저장 Account 사이의 S3 접근 정책은 특이하게 IAM 역할이나 계정에 연결하는 것이 아니라 S3에 직접 연결 합니다. Resource에서 아래와 같이 일반적인 ARN, 와일드카드가 포함된 ARN 두가지 다 추가해주세요. (Wildcard가 포함되지 않은 상태에서는 Lambda에서는 접근 가.. 2021. 4. 23.
[AWS] Account ID 확인 방법 및 별칭 설정, 별칭은 어디서 사용할까? 계정 (Account) ID 확인 하는 방법 AWS 콘솔 접속 → IAM 이동 → 좌측 하단의 AWS 계정 ID 확인 계정 별칭 설정 파란색 칸에서 설정이 가능합니다. 초기에는 별칭 설정이 되어있지 않고 12자리 account ID만 있습니다. (별칭에 . 포함될 수 없음) 별칭은 어디서 사용할까? 로그인할 때 역할 전환할 때 기타.. account를 입력할 수 있는 부분에서 별칭을 사용할 수 있습니다. 단, 무조건 Account ID가 필수인 곳도 있으니 참고하세요 2021. 4. 7.
[AWS] VPC Peering을 이용한 서로 다른 Account의 VPC와 통신하기 현재 회사의 Production과 Development 환경은 Account 단위로 분리되어있는 상태이다. 특정 이유로 인하여 서로 다른 계정(Account)에 위치한 VPC끼리 통신해야하는 경우가 발생하였다. (저의 경우는 AWS DMS를 이용하려다가 필요) 지금부터 서로 다른 Account에 위치한 VPC와 통신하기 위한 VPC Peering 세팅 실습을 해보겠다. 환경 Production - A 계정(Account) Development - B 계정(Account) A 계정에서 Peering 생성 피어링 연결 Name 태그 : Peering의 연결 이름을 세팅합니다. VPC(요청자) : A 계정에 속한 VPC 선택합니다. 계정 - 다른 계정 선택 계정 ID : B 계정의 Account ID를 입력합.. 2021. 4. 7.
[AWS] Codebuild에서 사설 레포지토리에 방화벽에 등록할 IP 찾기 개요 회사에서 사설 레포지토리인 Nexus가 GCP에 있고 AWS Codebuild에서 접근하려고 하니까 보안 규칙을 추가해줘야 접근할 수 있는 이슈가 발생하였다. 아래와 같이 AWS Codebuild 서비스의 ip range를 검색하여 추가하였더니 정상적인 접근이 가능했다. AWS 전체 IP 파일 다운로드 $ wget https://ip-ranges.amazonaws.com/ip-ranges.json ip-ranges.amazonaws.com/ip-ranges.json 파싱 (Linux & MAC) $ jq '.prefixes[] | select(.region=="ap-northeast-2") | select(.service=="CODEBUILD")' < ip-ranges.json 방화벽에 등록 13... 2021. 3. 2.
AWS Auto Scaling / Scale Up/Out/In 용어 두줄 정리 Scale Up 서버의 자원이 부족하여 서버의 스펙을 상승 시키는 것을 말함 AWS에서는 스펙이 더 좋은 인스턴스 타입으로 교체하는 것이라고 할 수 있음. Scale Out 서버의 자원 스펙 상승으로는 한계가 있으며 효율이 떨어지는 시점이 있다. Scale Out은 컴퓨팅의 성능 상승보다 컴퓨팅 수를 늘리는 것이다. Scale In 작업이 완료되어 더 이상 필요없는 Scale Out으로 늘렸던 컴퓨팅 수를 줄이는 것을 말한다. AWS Auto Scaling Scale In / Out 기능을 정책에 따라서 조정해주는 AWS 서비스를 말한다. 2021. 2. 10.