참고 : https://github.com/aws/aws-cli/issues/8036

 

Unable to install aws-cli via pip - package dependency broke · Issue #8036 · aws/aws-cli

Describe the bug $ pip3 install awscli Collecting awscli Obtaining dependency information for awscli from https://files.pythonhosted.org/packages/43/9c/bf16d97f5de8aa4f9171c6c82bad0b4179921ddca5066...

github.com

 

gitlib ci 동작 중 실패가 발생하여 확인 중 알파인 리눅스(이미지)에서 awscli 버전 1 이 설치 실패하는 이슈가 있엇습니다. 

 

다양한 방법으로 조치가 가능합니다.

 

원인 : https://github.com/aws/aws-cli/issues/8036#issuecomment-1638544754

 

 

 

https://stackoverflow.com/questions/76707492/getting-a-error-when-we-use-pip3-install-awscli-command

 

'AWS' 카테고리의 다른 글

AWS Chatbot - slack noti  (0) 2023.02.19

이슈 사항 : pod 내부에서  aws 리소스 (rds.amazon.com)및  외부 서비스 (ex. www.naver.com) timeout 발생

 

 

히스토리:

1. 특정 큰 이벤트 중 발생 (많은 세션 발생)

2. 이벤트에 사용하지 않는 pod에서도 이슈 발생

 

 

원인 추정:

1번 이벤트 중 외부로 나가는 세션이 nat를 타고 나가고 외부 도메인, 내부 리소스 도메인 쿼리를 많이 보내서 coredns에 부하가 있는 것으로 추정 

 

2번 nat 리소스 제한이 걸렸다. (X)

 

조치 : 

1. coredns sale up, out 진행

2. dns configmap  log 설정 (추후 로깅 서비스 추가 필요 elk?)

 

참고 :

coredns 로그 설정 켜기 (다른 로깅 서비스 연결 필요)

----------------
kind: ConfigMap
apiVersion: v1
data:
  Corefile: |
    .:53 {
        log                  # Enabling CoreDNS Logging
        errors
        health
        ...
----------------

로그 확인 및 저장 (임시 테스트)

 

kubectl logs --follow -n kube-system --selector 'k8s-app=kube-dns' --timestamps --since-time "$(date -u +'%Y-%m-%dT%H:%M:%S.%N%:z' --date='-1 hour')" >>  ./corednsyyyymmdd.txt  

 

 

알 수 없는 정보 :

1. fargate node? pod? 리소스 제한 (네트워크 대역폭, i/o 속도) 해당 정보는 aws 서포트팀에서 오픈을 할 수 없다고 합니다.

 

2. coredns 모니터링에서는 cpu, 메모리 이슈는 없었습니다. (어디서 부하가 있었는지 확인이 어렵습니다.)

 

 

fargate 보다는 worker node 사용이 안정적 일 것 같습니다..

 

 

다양한 래퍼런스도 많고......

 

Personal Health Dashboard 알림 받아보기 

참고한 블로그 : https://dev.classmethod.jp/articles/notice-personal-health-dashboard-to-slack/ 

**채널 가드 레일 정책 : https://docs.aws.amazon.com/chatbot/latest/adminguide/security_iam_service-with-iam-id-based-policies.html 

https://docs.aws.amazon.com/chatbot/latest/adminguide/security-iam.html

 

Identity and Access Management for AWS Chatbot - AWS Chatbot

AWS Chatbot is a global service that requires access to all AWS Regions. If there is a policy in place that prevents access to services in certain Regions, you must change the policy to allow global AWS Chatbot access.

docs.aws.amazon.com

 

참고한 블로그에서 채널 가드레일 권한, 비용 확인을 추적하기 위해 태그 설정을 했습니다. (나중에 비용 할당 태그 설정)

 

 

테스트 결과 

추가 검토 사항  

 1. 모든 리전 적용 ? 

 

 

'AWS' 카테고리의 다른 글

aws cli (v1) pip 설치 실패  (1) 2023.08.05

신규 목표 

  전달 되는 메일이 너무 지저분했다. 구성 변경

 

구성도

  CloudTrail -> Eventbridge -> Lambda -> SNS

 

내용 정리
  1. 람다 함수 생서 (블루프린트 sns-message-python 사용) -> SNS 트리거
  2. 람다 코드에 #첨부2 코드 적용 -> 테스트 (첨부3 데이터 활용)
  3. 기존 인프라에서 Eventbridge 대상 변경 (Lambda)

 

#첨부 2

import json
import boto3

sns = boto3.client('sns')

def lambda_handler(event, context):

    #Extract details from JSON event JSON 이벤트에서 세부정보 추출
    detailType= event["detail-type"]
    region = event["region"]
    accountId = event["account"] 



    time = event["detail"]["eventTime"]
    eventName = event["detail"]["eventName"]
    requestParameters = event["detail"]["requestParameters"]
    taskuser = event["detail"]["userIdentity"]["userName"]

    message = "Alert: %s in %s for account: %s at time: %s\n\n Event: %s \n Task user : %s \n Request parameters: %s" % (detailType, region, accountId, time, eventName,taskuser,requestParameters)

    response = sns.publish(
            TopicArn = "arn:aws:sns:us-east-1:40265848665302129:test_setet",
            Message = message
            )

    return {
      'statusCode': 200,
      'body': json.dumps('Success!')
}

#첨부3

{ 
  "version": "0", 
  "id": "e951asdfasdf-asdfasdf1-0easdf7-1917-a71c621d65bc", 
  "detail-type": "AWS API Call via CloudTrail", 
  "source": "aws.iam", 
  "account": "40265848665302129", 
  "time": "2022-03-31T08:49:13Z", 
  "region": "us-east-1", 
  "resources": [], 
  "detail": { 
    "eventVersion": "1.08", 
    "userIdentity": { 
      "type": "IAMUser", 
      "principalId": "AIDAV3ECDVRDDDsW3GQ", 
      "arn": "arn:aws:iam::40265848665302129:user/seasdfasdfas@asdfasdft.co.kr", 
      "accountId": "40265848665302129", 
      "accessKeyId": "ASIAVASDFEEDFC3QGS2H2QXBFWSDFSDFWAU", 
      "userName": "seasdfasdfas@asdfasdft.co.kr", 
      "sessionContext": { 
        "sessionIssuer": {}, 
        "webIdFederationData": {}, 
        "attributes": { 
          "creationDate": "2022-03-31T06:17:57Z", 
          "mfaAuthenticated": "false" 
        } 
      } 
    }, 
    "eventTime": "2022-03-31T08:49:13Z", 
    "eventSource": "iam.amazonaws.com", 
    "eventName": "DeleteUser", 
    "awsRegion": "us-east-1", 
    "sourceIPAddress": "AWS Internal", 
    "userAgent": "AWS Internal", 
    "requestParameters": { 
      "userName": "testtestst" 
    }, 
    "responseElements": null, 
    "requestID": "68ASDFASEFEF822b43-ad-86de91d9c5e6", 
    "eventID": "45251asdfsdf-d666d4c8a7f", 
    "readOnly": false, 
    "eventType": "AwsApiCall", 
    "managementEvent": true, 
    "recipientAccountId": "40265848665302129", 
    "eventCategory": "Management", 
    "sessionCredentialFromConsole": "true" 
  } 
}

기존 목표 중 이슈 
 
  1. sns publish에서 권한이 없어서 오류가 발생 (lambda에 SNS full 권한을 부여)

'AWS > IAM' 카테고리의 다른 글

IAM user 생성, 삭제 알람 설정 (1)  (0) 2022.04.05

기존 목표 : IAM유저 생성 및 삭제 alarm 설정하기(버지니아 리전)

구성도 : CloudTrail -> Eventbridge -> SNS

내용 정리

  1. CloudTrail 추적 활성화 (API 활동)
  2. eventbridge에서 사용할 이벤트 버스 활성화 -> 규칙 생성 (이벤트 패턴 #첨부 1 참조) -> 대상 SNS (email)

기존 목표 중 이슈

  1. IAM 계정 생성 및 삭제 이슈는 글로벌 리전에서 관리가 된다. (버지니아 북부)
  2. CloudTrail 추적 활성화를 안하면 eventbridge에서 이벤트를 인식 못하였다.

#첨부1

{   
  "source": ["aws.iam"],   
  "detail-type": ["AWS API Call via CloudTrail"],   
  "detail": {   
    "eventSource": ["iam.amazonaws.com"],
    "eventName": ["CreateUser", "DeleteUser"]   
  }   
}

IAM user 생성, 삭제 알람 설정 (2)에서는 전달 되는 메일이 너무 지저분하게 와서 lambda 로 정리 후 SNS로 전달 하려고 합니다.

'AWS > IAM' 카테고리의 다른 글

IAM user 생성, 삭제 알람 설정 (2)  (0) 2022.04.05

aws backup  설정 실수 하여 생성된 valut를 삭제 하려고 한다. 

 

하지만 안에 너무 많은 백업이 존재하여 awscli로 삭제 (전체 삭제 )

 

 

## history  aws backup 백업 볼트 삭제

## 작업시 필요 awscli, jq 프로그램 (yum install jq), aws backup 사용가능 권한

## 하기 작업 백업 볼트 네임 확인 필요 !!

 

aws backup list-recovery-points-by-backup-vault --backup-vault-name EC2-Daliy --query "RecoveryPoints [*]. {ARN : ResourcePointArn}" --output json > Recovery_points.json (성공) 백업 포인트 정보 추출

 

cat Recovery_points.json | jq  -c '.RecoveryPoints[].RecoveryPointArn'  > arn.txt (성공)  백업 포인트ARN 정보 파싱

파싱 "" 남아 있어서 모두 공백으로 치환 아래 명령어 실행

                

cat arn.txt | while read in; do aws backup delete-recovery-point --backup-vault-name EC2-Daliy  --recovery-point-arn "$in"; done (성공) 백업 파일들 삭제

 

aws backup delete-backup-vault --backup-vault-name EC2-Daliy(벡업 볼트 삭제)

 

aws 콘솔에서 확인 후 마무리

 

참고 확인 자료 :

https://docs.aws.amazon.com/ko_kr/server-migration-service/latest/userguide/VMware.html

https://docs.aws.amazon.com/ko_kr/vm-import/latest/userguide/what-is-vmimport.html    #import/Export

https://docs.aws.amazon.com/application-discovery/latest/userguide/   #애플리케이션 마이그레이션

https://docs.aws.amazon.com/amp/latest/userguide/migrate-vms.html   #VMware vSphere

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/scvmm-import-vm.html     #Microsoft Systems Center

    

실제 작업시에 참조 :

https://docs.aws.amazon.com/ko_kr/vm-import/latest/userguide/vmie_prereqs.html

https://docs.aws.amazon.com/ko_kr/vm-import/latest/userguide/vmimport-image-import.html

    

    

특정 서버 migration 테스트

 

1.         어떤 마이그레이션 서비스 사용 ??

 

 sms connector 해당 호스트 버전이 호환이 안되는 것으로 추정

 

 vm Import/Export  서비스로 복구 계획 생성  #실제 사용

 

2.         vmware 에서 내보내기

 

 ova 형식의 파일로 #ovf 가능한

 

 테스트 : 게스트 os 종료  서버 스냅샷 생성 (혹시 몰라서)

   파일 -> 내보내기 -> geust os

 

3.         백업 파일을 s3 업로드

 

 테스트 7GB  시작 시간 16:46 ~

 

4.         정책 -> ova image  만들기

 

 1. 정책 만들기

 

 aws iam create-role --role-name vmimport --assume-role-policy-document "file://C:\json_lsr\trust-policy.json"

   

 aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://C:\json_lsr\role-policy.json"

 

 aws ec2 import-image --description "test_linux OVA" --disk-containers "file://C:\json_lsr\containers.json"   #이미지 만들기 # 20

 

 aws ec2 describe-import-image-tasks --import-task-ids import-ami-05ebc35d7606db8eb   # 이미지 가져오기 모니터링  # 파일을 잘못 만들었다

  

 

  상태 값은 다음을 포함합니다.

더보기

active — 가져오기 작업이 진행 중입니다.

 

deleting — 가져오기 작업이 취소되는 중입니다.

 

deleted — 가져오기 작업이 취소되었습니다.

 

updating — 상태 가져오기를 업데이트하는 중입니다.

 

validating — 가져온 이미지가 확인되는 중입니다.

 

valdated — 가져온 이미지가 확인되었습니다.

 

converting — 가져온 이미지가 AMI 전환 중입니다.

 

completed — 가져오기 작업이 완료되었으며 AMI 사용할 준비가 되었습니다.

 

5.         해당 이미지로 서버 생성

 

 1. ip 확인

 2. 파일 시스템 확인

 3. 서비스 확인

 

 

containers.json
0.00MB
role-policy.json
0.00MB
trust-policy.json
0.00MB

 

회사에서 client vpn 생성 및 공부 요청 

 

 

참고 사이트 :

https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/cvpn-getting-started.html https://docs.aws.amazon.com/vpn/latest/clientvpn-user/client-vpn-user-what-is.html https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/client-authentication.html#mutual ##상호 인증 https://tech.cloud.nongshim.co.kr/2018/10/16/4-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0vpc-subnet-route-table-internet-gateway/ https://www.youtube.com/watch?v=St8y0xZSn3c #(추천)

https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/cvpn-getting-started.html

 

 

1. 사전 조건 : Client vpn endpoint 작업하는 권한, 하나 이상의 서브넷과 인터넷게이트웨이가 있는 vpc, 서브넷과 라우팅 테이블 연결

 

2. 서버 클라이언트 인증서 및 키 생성

 

방법 3가지

 

    1. Active Directory authentication (user-based)

 

    2. Mutual authentication (certificate-based)   ##테스트한 방법

       

      키 파일 생성 : docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/client-authentication.html#mutual

 

    3. Single sign-on (SAML-based federated authentication) (user-based)

 

3. aws acm 등록 (1번 server.crt 2번 server.key 3번 ca.crt    openvpn.conf 4번 <cert> client1.domain.tld.crt </cert>  

    5번 <key> client1.domain.tld.key </key>

 

4. Client vpn endpoint 설정

 

 

 

  

    

 

생성 완료 후 보안 그룹 , 권한 부여 설정 필요 각자 서비스에 맞게 설정

 

 

5. 설정 다운로드 후 인증서 파일 등록

   

   클라이언트 구성 다운로드

 

6. 접속 테스트 

 

OpenVpn gui 

 

 

 

7. 왜 인터넷이 안되는가 확인 필요 

  => 분할 네트워크 설정 필요

 

8. Transit Gateway 테스트 필요 ~~

  

                 

 

+ Recent posts