본문 바로가기

Knowledge/Cloud22

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 ELB에 https 적용하기 💁🏼‍♂️ 사전 조건 도메인 구입 인증서 발급 현 회사에서 이미 사용중인 도메인 & 인증서가 있어서 구매 및 발급 과정은 생략합니다. 참고: AWS route53에서 도메인 구입 가능합니다. 참고: AWS ACM에서 구입한 도메인의 SSL 인증서 발급이 가능합니다. 🎃 ELB에 https 리스너 추가 EC2 콘솔 ➡ 로드밸런서 ➡ https 적용할 대상 선택 ➡ 리스터 탭 클릭 ➡ 리스너 추가 프로토콜 HTTPS 선택 및 포트 입력 전달 대상 선택 (대상 그룹을 선택합니다.) 보안 정책 및 인증서 선택 👾 http로 접속 시 https로 리다이렉트 시키기 EC2 콘솔 ➡ 로드밸런서 ➡ https 적용할 대상 선택 ➡ 리스터 탭 클릭 ➡ 기종의 http 리스너 제거 리스너 추가 프로토콜 HTTP 선택 및 .. 2021. 6. 10.
AWS CodeBuild spec yml에서 조건문 사용 방법 조건에 따라서 태그 이름을 다르게 하고 싶었다. 일반적인 Bash Shell의 조건문을 사용하였고 실패하고 성공한 케이스를 썼다. (참고로 나는 version 0.2를 사용하였다.) (몇시간 삽질했네;) 실패 케이스 코드 version: 0.2 phases: build: commands: - | if [ ${CLUSTER_SERVICE} -eq "1" ]; then export TAG_NAME=${SERVICE}-${MAJOR}.${MINOR}.${PATCH} else export TAG_NAME=${MAJOR}.${MINOR}.${PATCH} fi AWS Codebuild 실행 결과 [Container] 2021/05/10 13:06:11 Running command if [[ "${CLUSTER_SE.. 2021. 5. 11.
CodeBuild에서 사용할 Amazon Linux 2 Docker 이미지 커스텀 하기 1. Git Repository 클론 git clone https://github.com/aws/aws-codebuild-docker-images.git aws/aws-codebuild-docker-images Repository : URL 2. 커스텀을 원하는 버전 확인 $ cd aws-codebuild-docker-images $ git tag --list 3. 해당 버전으로 체크아웃 $ git checkout ${target tag} 4. 도커 파일 커스텀 $ cd al2/x86_64/standard/3.0 $ vim Dockerfile 저는 회사 Bitbucket과 연결하기 위해서 ssh 키 등록을 했습니다. Dockerfile에 저렇게 수정하여 업데이트 하였습니다. 5. 도커 이미지 빌드 $ d.. 2021. 4. 29.
[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] aws-cli Credential & Profile setting 1) AWS Command Line Interface 설치 공식 설치 가이드 (바로가기) 설치 되어있는 경우 넘어가주세요 2) Access Key 발급 기존에 사용하던 키가 있다면 해당 과정은 넘어가도 됩니다. console 접속 → IAM 관리 콘솔 → 엑세스 관리 → 사용자 본인 계정 상세화면 → 보안 자격 증명 → 엑세스 키 만들기 버튼 클릭 → Access / Secret Key 저장 3) AWS CLI 인증 설정 $ aws configure Access Key : IAM 콘솔에서 발급 받은 키를 입력 Secret Access Key : IAM 콘솔에서 발급 받은 키를 입력 Region name : 한국 리전 입력 (ap-northeast-2) output format : Enter 입력 (def.. 2021. 4. 23.