AWS CLI Problem

HojuΒ·2022λ…„ 8μ›” 27일
0

Troble Shting

λͺ©λ‘ 보기
11/13

πŸ’‘ AWS CLIλŠ” AWS μ„œλΉ„μŠ€λ₯Ό κ΄€λ¦¬ν•˜λŠ” 톡합 λ„κ΅¬μž…λ‹ˆλ‹€.
도ꡬ ν•˜λ‚˜λ§Œ λ‹€μš΄λ‘œλ“œ ν•˜μ—¬ κ΅¬μ„±ν•˜λ©΄ μ—¬λŸ¬ AWS μ„œλΉ„μŠ€λ₯Ό λͺ…λ Ήμ€„μ—μ„œ μ œμ–΄ν•˜κ³  슀크립트둜 μžλ™ν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


일반적인 λ¬Έμ œν•΄κ²°


AWS CLI λͺ…λ Ή ν˜•μ‹ 확인

λͺ…령이 μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ Parameter validation failed λ¬Έμ„œμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λ§€κ°œλ³€μˆ˜()λ₯Ό μΈμ‹ν•˜μ§€ λͺ»ν•œλ‹€λŠ” 였λ₯˜λ₯Ό μˆ˜μ‹ ν•˜λŠ” 경우 λͺ…λ Ή ν˜•μ‹μ΄ 잘λͺ»λμ„ μˆ˜λ„ μžˆλ‹€.

  • 터미널에 μ ν•©ν•œ λͺ¨λ“  λ”°μ˜΄ν‘œμ™€ μ΄μŠ€μΌ€μ΄ν”„κ°€ λͺ…λ Ήμ—μ„œ μ˜¬λ°”λ₯Έμ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.
  • AWS CLI μŠ€μΌˆλ ˆν†€ 을 μƒμ„±ν•˜μ—¬ λͺ…λ Ή ꡬ쑰λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.
  • λ§žμΆ€λ²• 및 ν˜•μ‹ 였λ₯˜κ°€ μžˆλŠ”μ§€ λͺ…령을 ν™•μΈν•˜μ‹­μ‹œμ˜€.

--debug μ˜΅μ…˜μ„ μ‚¬μš©

이 μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λ©΄ CLIκ°€ λͺ…령을 μ²˜λ¦¬ν•˜λŠ”λ° ν•„μš”ν•œ λͺ¨λ“  단계에 λŒ€ν•œ μ„ΈλΆ€ 정보λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.
좜λ ₯의 μ„ΈλΆ€ μ •λ³΄λŠ” 였λ₯˜κ°€ λ°œμƒν•œ μ‹œμ μ„ κ²°μ •ν•˜λŠ” 데 도움이 될 수 있으며 였λ₯˜κ°€ μ‹œμž‘λœ μœ„μΉ˜μ— λŒ€ν•œ λ‹¨μ„œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

μ˜΅μ…˜μ„ ν¬ν•¨ν•˜λ©΄ --debug 같은 μ„ΈλΆ€ 정보가 ν¬ν•¨λ©λ‹ˆλ‹€.

  • 자격 증λͺ…을 μ°ΎλŠ” 쀑
  • 제곡된 λ§€κ°œλ³€μˆ˜ ꡬ문 뢄석
  • AWS μ„œλ²„λ‘œ μ „μ†‘λœ μš”μ²­ ꡬ성
  • AWS둜 μ „μ†‘λœ μš”μ²­μ˜ λ‚΄μš©
  • μ›μ‹œ μ‘λ‹΅μ˜ λ‚΄μš©
  • ν˜•μ‹μ΄ μ§€μ •λœ 좜λ ₯

stderr 진단 μ •λ³΄λ§Œ 보내렀면 2> debug.txtλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ debug.txtλŠ” 디버그 νŒŒμΌμ— μ‚¬μš©ν•  μ΄λ¦„μž…λ‹ˆλ‹€.

$ aws servicename commandname options --debug 2> debug.txt
$ aws s3 cp options --debug 2> debug.txt

좜λ ₯κ³Ό stderr 진단 정보 λ‘˜ λ‹€ 보내렀면 &> debug.txtλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ debug.txtλŠ” 디버그 νŒŒμΌμ— μ‚¬μš©ν•  μ΄λ¦„μž…λ‹ˆλ‹€.

$ aws servicename commandname options --debug &> debug.txt
$ aws s3 cp options --debug &> debug.txt

λ‹€μŒμ€Β --debugμ˜΅μ…˜μ„ Profile에 λŒ€ν•΄μ„œ μ‚¬μš©ν•  λ•Œμ™€ μ‚¬μš©ν•˜μ§€ μ•Šμ„ λ•Œμ˜ λͺ…λ Ή μ‹€ν–‰μ˜ μ˜ˆμž…λ‹ˆλ‹€.

  • Profile 적용 방법
aws configure --profile [ProfileName] #그런 λ‹€μŒ μ‚¬μš©μž Access Keyλž‘ Secret Key μ„€μ •


- μ‚¬μš© X

```bash
$ aws iam list-groups --profile [ProfileName]
{
    "Groups": [
        {
            "Path": "/",
            "GroupName": "MyTestGroup",
            "GroupId": "AGPA0123456789EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:group/MyTestGroup",
            "CreateDate": "2019-08-12T19:34:04Z"
        }
    ]
}
  • μ‚¬μš© O
$ aws iam list-groups --profile [ProfileName] --debug
2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205
2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['iam', 'list-groups', '--debug']
2019-08-12 12:36:18,305 - Main2019-08-12 12:36:18,320 - MainThread - botocore.load2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_generate_skeleton at 0x7fdf1737eae8>
.
.
.
2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - CanonicalRequest:
POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:iam.amazonaws.com
x-amz-date:20190812T193618Z

content-type;host;x-amz-date
5f776d91EXAMPLE9b8cb5eb5d6d4a787a33ae41c8cd6eEXAMPLEca69080e1e1f
2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - StringToSign:
AWS4-HMAC-SHA256
20190812T193618Z
20190812/us-east-1/iam/aws4_request
ab7e367eEXAMPLE2769f178ea509978cf8bfa054874b3EXAMPLE8d043fab6cc9
2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - Signature:
d85a0EXAMPLEb40164f2f539cdc76d4f294fe822EXAMPLE18ad1ddf58a1a3ce7
b'<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">\n  <ListGroupsResult>\n    <IsTruncated>false</IsTruncated>\n    <Groups>\n      <member>\n        <Path>/</Path>\n        <GroupName>MyTestGroup</GroupName>\n        <Arn>arn:aws:iam::123456789012:group/MyTestGroup</Arn>\n        <GroupId>AGPA1234567890EXAMPLE</GroupId>\n        <CreateDate>2019-08-12T19:34:04Z</CreateDate>\n      </member>\n    </Groups>\n  </ListGroupsResult>\n  <ResponseMetadata>\n    <RequestId>74c11606-bd38-11e9-9c82-559da0adb349</RequestId>\n  </ResponseMetadata>\n</ListGroupsResponse>\n'
2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event needs-retry.iam.ListGroups: calling handler <botocore.retryhandler.RetryHandler object at 0x7fdf16e9a780>
2019-08-12 12:36:18,665 - MainThread - botocore.retryhandler - DEBUG - No retry needed.
2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event after-call.iam.ListGroups: calling handler <function json_decode_policies at 0x7fdf189b1d90>
{
    "Groups": [
        {
            "Path": "/",
            "GroupName": "MyTestGroup",
            "GroupId": "AGPA123456789012EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:group/MyTestGroup",
            "CreateDate": "2019-08-12T19:34:04Z"
        }
    ]
}

AWS CLI λͺ…λ Ή 기둝 둜그 ν™œμ„±ν™” 및 κ²€ν† 


cli_history 파일 섀정을 μ‚¬μš©ν•˜μ—¬ AWS CLI λͺ…λ Ή 기둝 둜그λ₯Ό ν™œμ„±ν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 섀정을 ν™”μ„±ν™”ν•˜λ©΄ AWS CLIκ°€ awsλͺ…λ Ή 기둝을 κΈ°λ‘ν•©λ‹ˆλ‹€.

$ aws configure set cli_history enabled

μ˜΅μ…˜μ„ ν¬ν•¨ν•˜λ©΄ β€”debug같은 μ„ΈλΆ€ 정보가 ν¬ν•¨λ©λ‹ˆλ‹€.

  • botocore에 λŒ€ν•œ API 호좜
  • μƒνƒœμ½”λ“œ
  • HTTP 응닡
  • 헀더
  • λ°˜ν™˜ μ½”λ“œ

πŸ‘‰ 이 정보λ₯Ό μ‚¬μš©ν•˜μ—¬ λ§€κ°œλ³€μˆ˜ 데이터 및 API 호좜이 μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•œ λ‹€μŒ λͺ…령이 μ‹€νŒ¨ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ 단계λ₯Ό μΆ”λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


λͺ…령을 찾을 수 μ—†μŒ 였λ₯˜


이 였λ₯˜λŠ” 운영 μ²΄μ œκ°€ AWS CLI λͺ…령을 찾을 수 μ—†μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ„€μΉ˜κ°€ λΆˆμ™„μ „ν•˜κ±°λ‚˜ μ—…λ°μ΄νŠΈκ°€ ν•„μš”ν•œ 상황일 수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인(1): μ„€μΉ˜λœ 버전보닀 μ΅œμ‹  AWS CLI κΈ°λŠ₯을 μ‚¬μš©ν•˜λ €κ³  ν•˜κ±°λ‚˜ ν˜•μ‹μ΄ 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

예제 였λ₯˜ ν…μŠ€νŠΈ:

$ aws s3 copy
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument subcommand: Invalid choice, valid choices are:

ls                                       | website
cp                                       | mv
....

λͺ…λ Ή ν˜•μ‹μ΄ 잘λͺ»λ˜μ—ˆκ±°λ‚˜ κΈ°λŠ₯이 릴리슀되기 μ „μ˜ 이전 버전을 μ‚¬μš© 쀑인 경우 λ‹€μ–‘ν•œ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인(2): μ„€μΉ˜ ν›„ 터미널을 λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•©λ‹ˆλ‹€.

예제 였λ₯˜ ν…μŠ€νŠΈ:

$ aws --version
command not found: aws

AWS CLIλ₯Ό 처음 μ„€μΉ˜ν•˜κ±°λ‚˜ μ—…λ°μ΄νŠΈ ν•œ ν›„ λͺ…령을 찾을 수 μ—†λŠ” 경우 awsμ—…λ°μ΄νŠΈλ₯Ό μΈμ‹ν•˜λ„λ‘ 터미널을 λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인(3): AWS CLI에 κΆŒν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€(Linux)

ν•΄κ²° 방법

$ sudo chmod -R 755 /usr/local/aws-cli/

κ°€λŠ₯ν•œ 원인(4):Β PATHμ„€μΉ˜ 쀑에 운영 μ²΄μ œκ°€ μ—…λ°μ΄νŠΈλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€ .

$ aws --version
command not found: aws
  • aws μ‹€ν–‰ νŒŒμΌμ„ 운영 체제의 PATHν™˜κ²½ λ³€μˆ˜μ— μΆ”κ°€ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    1. μ‚¬μš©μž λ””λ ‰ν„°λ¦¬μ—μ„œ μ…Έμ˜ ν”„λ‘œνŒŒμΌ 슀크립트λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€. μ–΄λ–€ 셸을 κ°€μ§€κ³  μžˆλŠ”μ§€ λͺ¨λ₯΄λŠ” 경우 echo $SHELL 을 μ‹€ν–‰ν•©λ‹ˆλ‹€.

      $ ls -a ~
      .  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads
    • Bash - .bash_profile, .profile λ˜λŠ” .bash_login
    • Zsh - .zshrc
    • Tcsh - .tcshrc, .cshrc λ˜λŠ” .login
    1. 내보내기 λͺ…령을 ν”„λ‘œν•„ μŠ€ν¬λ¦½νŠΈμ— μΆ”κ°€ ν•˜μ„Έμš”. λ‹€μŒ λͺ…령은 ν˜„μž¬ PATHλ³€μˆ˜μ— 둜컬 bin을 μΆ”κ°€ν•©λ‹ˆλ‹€.

      export PATH=/usr/local/bin:$PATH
    2. ν˜„μž¬ μ„Έμ…˜μ— μ—…λ°μ΄νŠΈλœ ν”„λ‘œνŒŒμΌμ„ λ‹€μ‹œ λ‘œλ“œν•©λ‹ˆλ‹€.

      source ~/.bash_profile

AWS Version 문제


β€œAWS β€”version” λͺ…령이 μ„€μΉ˜ν•œ 버전과 λ‹€λ₯Έ 버전을 λ°˜ν™˜ν•¨

터미널이 AWS CLI에 λŒ€ν•΄ μ˜ˆμƒκ³Ό λ‹€λ₯Έ PATHλ₯Ό λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ ν•΄κ²°λ°©μ•ˆ: μ„€μΉ˜ ν›„ 터미널을 λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό 함
awsλͺ…령에 잘λͺ»λœ 버전이 ν‘œμ‹œλ˜λŠ” 경우 PATHμ—…λ°μ΄νŠΈλ₯Ό μΈμ‹ν•˜λ„λ‘ 터미널을 μž¬μ‹œμž‘ν•΄μ•Ό 인식할 수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인: μ—¬λŸ¬ λ²„μ „μ˜ AWS CLIκ°€ 있음

AWS CLIλ₯Ό μ—…λ°μ΄νŠΈν•˜λ©΄μ„œ κΈ°μ‘΄ μ„€μΉ˜μ™€ λ‹€λ₯Έ μ„€μΉ˜ 방법을 μ‚¬μš©ν•œ 경우 μ—¬λŸ¬ 버전이 μ„€μΉ˜λ  수 μžˆμŠ΅λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ Linux λ˜λŠ” macOSμ—μ„œ ν˜„μž¬ μ„€μΉ˜μ— pipλ₯Ό μ‚¬μš©ν–ˆμ§€λ§Œ .pkg μ„€μΉ˜ νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ μ—…λ°μ΄νŠΈλ₯Ό μ‹œλ„ν•œ 경우 특히 이전 버전을 κ°€λ¦¬ν‚€λŠ” PATH와 좩돌이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ’‘ 이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ λͺ¨λ“  λ²„μ „μ˜ CLIλ₯Ό 제거 ν›„ μƒˆλ‘œ μ„€μΉ˜λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.


AWS CLI 제거 ν›„ 버전 λ°˜ν™˜ 문제


AWS CLIλ₯Ό μ œκ±°ν•œ ν›„ β€˜aws --version’ λͺ…령이 버전을 λ°˜ν™˜ν•¨

μ΄λŠ” λŒ€κ°œ μ‹œμŠ€ν…œ μ–΄λ”˜κ°€μ— AWS CLIκ°€ 아직 μ„€μΉ˜λ˜μ–΄ μžˆλŠ” 경우 λ°œμƒν•©λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인: 제거 ν›„ 터미널을 λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό 함

aws --versionλͺ…령이 μ—¬μ „νžˆ μž‘λ™ν•˜λŠ” 경우 터미널 μ—…λ°μ΄νŠΈλ₯Ό μΈμ‹ν•˜λ„λ‘ 터미널을 λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인: μ‹œμŠ€ν…œμ— μ—¬λŸ¬ λ²„μ „μ˜ AWS CLIκ°€ μžˆκ±°λ‚˜ μ›λž˜ AWS CLIλ₯Ό μ„€μΉ˜ν•˜λŠ” 데 μ‚¬μš©ν•œ 것과 λ™μΌν•œ 제거 방법을 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ

CLIλ₯Ό μ„€μΉ˜ν•˜λŠ”λ° μ‚¬μš©ν•œ 것과 λ‹€λ₯Έ 방법을 μ‚¬μš©ν•˜μ—¬ μ œκ±°ν–ˆκ±°λ‚˜ μ—¬λŸ¬ 버전을 μ„€μΉ˜ν•œ 경우 CLIκ°€ μ˜¬λ°”λ₯΄κ²Œ μ œκ±°λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ μ„€μΉ˜μ— μ‚¬μš©ν•œ 것과 λ™μΌν•œ 방법을 μ‚¬μš©ν•˜μ—¬ AWS CLIλ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

  1. 운영체제 및 μ›λž˜ μ„€μΉ˜ 방법에 ν•΄λ‹Ήν•˜λŠ” 지침을 따라 버전1, 버전2λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.
  2. μ—΄λ € μžˆλŠ” 터미널을 λͺ¨λ‘ λ‹«μŠ΅λ‹ˆλ‹€.
  3. μ›ν•˜λŠ” 터미널을 μ—΄κ³  λ‹€μŒ λͺ…령에 μž…λ ₯ν•œ ν›„ 버전이 λ°˜ν™˜λ˜μ§€ μ•ŠλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

$ aws --version
command not found: aws

πŸ’‘ 좜λ ₯에 μ—¬μ „νžˆ 버전이 λ‚˜μ—΄λ˜μ–΄ μžˆλŠ” 경우 AWS CLIκ°€ λ‹€λ₯Έ 방법을 μ‚¬μš©ν•˜μ—¬ μ„€μΉ˜λ˜μ—ˆκ±°λ‚˜ μ—¬λŸ¬ 버전이 μžˆμ„ κ°€λŠ₯성이 ν½λ‹ˆλ‹€. AWS CLIλ₯Ό μ„€μΉ˜ν•˜λŠ”λ° μ‚¬μš©ν•œ 방법을 λͺ¨λ₯΄λŠ” 경우 버전 좜λ ₯이 ν‘œμ‹œλ˜μ§€ μ•Šμ„ λ•ŒκΉŒμ§€ 운영 μ²΄μ œμ— ν•΄λ‹Ήν•˜λŠ” CLI버전1, 버전2의 각 제거 방법 지침을 λ”°λ¦…λ‹ˆλ‹€.


μ•‘μ„ΈμŠ€ κ±°λΆ€ 였λ₯˜


κ°€λŠ₯ν•œ 원인: AWS CLI ν”„λ‘œκ·Έλž¨ νŒŒμΌμ— 'μ‹€ν–‰' κΆŒν•œμ΄ μ—†μŒ

  • Linux λ˜λŠ” macOSμ—μ„œ awsν”„λ‘œκ·Έλž¨μ΄ ν˜ΈμΆœν•˜λŠ” μ‚¬μš©μžμ— λŒ€ν•œ μ‹€ν–‰ κΆŒν•œμ„ κ°€μ§€κ³  μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
  • 일반적으둜 μ‚¬μš© κΆŒν•œμ€ 755둜 μ„€μ •λ©λ‹ˆλ‹€.

μ‚¬μš©μžμ— λŒ€ν•œ μ‹€ν–‰ κΆŒν•œμ„ μΆ”κ°€ν•˜λ €λ©΄ λ‹€μŒ λͺ…령을 μ‹€ν–‰ν•©λ‹ˆλ‹€. μ΄λ•Œ /bin/aws λ₯Ό μ‚¬μš©μž μ»΄ν“¨ν„°μ˜ ν”„λ‘œκ·Έλž¨ 경둜둜 λ°”κΎΈμ‹­μ‹œμ˜€.

$ chmod +x /bin/aws

κ°€λŠ₯ν•œ 원인: IAM 자격 증λͺ…에 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλŠ” κΆŒν•œμ΄ μ—†μŒ

였λ₯˜ ν…μŠ€νŠΈ 예:

$ aws s3 ls
An error occurred (AcessDenied) when calling the ListBuckets operation: Access denied.

κ°€λŠ₯ν•œ 원인: CLIκ°€ 잘λͺ»λœ λ³΄μ•ˆ 인증 정보 λ˜λŠ” μ˜ˆμƒκ³Ό λ‹€λ₯Έ μœ„μΉ˜μ˜ λ³΄μ•ˆ 인증 정보λ₯Ό μ½μŠ΅λ‹ˆλ‹€.

AWS CLIκ°€ μ˜ˆμƒκ³Ό λ‹€λ₯Έ μœ„μΉ˜μ—μ„œ λ³΄μ•ˆ 인증 정보λ₯Ό 읽고 μžˆκ±°λ‚˜ ν‚€ νŽ˜μ–΄ 정보가 μ˜¬λ°”λ₯΄μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. aws configure listλ₯Ό μ‹€ν–‰ν•˜μ—¬ μ–΄λ–€ 자격 증λͺ…을 μ‚¬μš©ν•˜κ³  μžˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

자격 증λͺ… 확인방법 예제

κΈ°λ³Έ ν”„λ‘œνŒŒμΌμ— μ‚¬μš©λœ 자격 증λͺ…을 ν™•μΈν•˜λŠ” 방법

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************XYVA shared-credentials-file
secret_key     ****************ZAGY shared-credentials-file
    region                us-west-2      config-file    ~/.aws/config

πŸ’‘ ν‚€ νŽ˜μ–΄ μ„ΈλΆ€ 정보λ₯Ό ν™•μΈν•˜λ €λ©΄Β config및 credentialsνŒŒμΌμ„ κ²€ν† ν•©λ‹ˆλ‹€.

λͺ…λͺ…λœ ν”„λ‘œνŒŒμΌμ˜ 자격 증λͺ…을 ν™•μΈν•˜λŠ” 방법

$ aws configure list --profile [ProfileName]
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                    saanvi           manual    --profile
access_key         **************** shared-credentials-file
secret_key         **************** shared-credentials-file
    region                us-west-2      config-file    ~/.aws/config

μ»΄ν“¨ν„°μ˜ 클둝이 λ™κΈ°ν™”λ˜μ§€ μ•ŠμŒ 였λ₯˜


μˆ˜μ •ν•˜κΈ° - https://junhyeong-jang.tistory.com/27

κ°€λŠ₯ν•œ 원인: μ»΄ν“¨ν„°μ˜ 클둝이 λ™κΈ°ν™”λ˜μ§€ μ•ŠμŒ

μœ νš¨ν•œ λ³΄μ•ˆ 인증 정보λ₯Ό μ‚¬μš© 쀑이라면 클둝이 동기화 λ˜μ§€ μ•Šμ•˜μ„ 수 μžˆμŠ΅λ‹ˆλ‹€. Linux of macOSμ—μ„œ dateλ₯Ό μ‹€ν–‰ν•˜μ—¬ μ‹œκ°„μ„ ν™•μΈν•©λ‹ˆλ‹€.

$ date
  • 정상 Untitled
  • 비정상: dateκ°€ 좜λ ₯이 μ•ˆλ¨

λͺ‡ λΆ„ μ•ˆμ— μ‹œμŠ€ν…œ 클둝이 μ •ν™•ν•˜μ§€ μ•ŠμœΌλ©΄ ntpdλ₯Ό μ‚¬μš©ν•˜μ—¬ 동기화함.

πŸ’‘ Windowsμ—μ„œλŠ” μ œμ–΄νŒμ˜ λ‚ μ§œ 및 μ‹œκ°„ μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ—¬ μ‹œμŠ€ν…œ 클둝을 κ΅¬μ„±ν•œλ‹€.


μ„œλͺ… 뢈일치 였λ₯˜


였λ₯˜ ν…μŠ€νŠΈ 예:

$ aws s3 ls
An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation: The request signature we
calculated does not match the signature you provided. Check your key and signing method.

CLIμ—μ„œ λͺ…령을 μ‹€ν–‰ν•˜λ©΄ μ•”ν˜Έν™”λœ μš”μ²­μ„ μ„œλ²„μ— 보내 μ μ ˆν•œ μ„œλΉ„μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.
자격 증λͺ…이 μ•”ν˜Έν™”μ— ν¬ν•¨λ˜λ©° 자격 증λͺ…을 톡해 AWSμ—μ„œ μš”μ²­ν•˜λŠ” μ‚¬λžŒμ„ 인증할 수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인: 클둝이 AWS μ„œλ²„μ™€ λ™κΈ°ν™”λ˜μ§€ μ•ŠμŒ

μž¬μƒ κ³΅κ²©μœΌλ‘œλΆ€ν„° λ³΄ν˜Έν•˜κΈ° μœ„ν•΄ μ•”ν˜Έν™”/μ•”ν˜Έ 해독 ν”„λ‘œμ„ΈμŠ€ λ™μ•ˆ ν˜„μž¬ μ‹œκ°„μ΄ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

ν΄λΌμ΄μ–ΈνŠΈ 및 μ„œλ²„μ˜ μ‹œκ°„μ΄ ν—ˆμš©λœ μ‹œκ°„μ„ λ„˜λŠ” 경우 ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€νŒ¨ν•  수 있고 μš”μ²­μ΄ κ±°λΆ€λœλ‹€.

πŸ’‘ μž¬μƒκ³΅κ²©μ΄λž€? Replay Attack으둜 μœ νš¨ν•œ 데이터 전솑이 μ•…μ˜μ μœΌλ‘œ λ˜λŠ” λΆ€μ •ν•˜κ²Œ λ°˜λ³΅λ˜κ±°λ‚˜ μ§€μ—°λ˜λŠ” λ„€νŠΈμ›Œν¬ 곡격의 ν•œ ν˜•νƒœμž…λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인: 운영 μ²΄μ œμ—μ„œ νŠΉμ • 특수 λ¬Έμžκ°€ ν¬ν•¨λœ AWS λ³΄μ•ˆ ν‚€λ₯Ό 잘λͺ» μ²˜λ¦¬ν•˜κ³  있음

  • AWS λ³΄μ•ˆ μ•”ν˜Έν‚€μ— , +, / λ˜λŠ” %와 같은 νŠΉμ • 특수 λ¬Έμžκ°€ ν¬ν•¨λ˜μ–΄ μžˆλŠ” 경우 일뢀 운영 체제 λ³€ν˜•μ—μ„œ ν•΄λ‹Ή λ¬Έμžμ—΄μ„ 잘λͺ» μ²˜λ¦¬ν•΄ λ³΄μ•ˆ ν‚€ λ¬Έμžμ—΄μ΄ 잘λͺ» ν•΄μ„λœλ‹€.
  • 자격 증λͺ… 파일 생성 쀑 μƒˆ μΈμŠ€ν„΄μŠ€μ— 자격 증λͺ… νŒŒμΌμ„ μž‘μ„±ν•˜λŠ” 도ꡬ와 같이 λ‹€λ₯Έ 도ꡬ & 슀크립트λ₯Ό μ‚¬μš©ν•΄ ν‚€ 및 λ³΄μ•ˆ ν‚€λ₯Ό μ²˜λ¦¬ν•  λ•Œ 도ꡬ 및 슀크립트λ₯Ό 톡해 특수 λ¬Έμžκ°€ AWSμ—μ„œ 더 이상 인식 ν•  수 없도둝 특수 문자λ₯Ό 자체적으둜 μ²˜λ¦¬ν•  μˆ˜λ„ μžˆλ‹€.

πŸ’‘ 문제λ₯Ό μΌμœΌν‚€λŠ” 특수 λ¬Έμžκ°€ ν¬ν•¨λ˜μ§€ μ•ŠλŠ” λΉ„λ°€ ν‚€λ₯Ό μ–»μœΌλ €λ©΄ λΉ„λ°€ ν‚€λ₯Ό λ‹€μ‹œ μƒμ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€


SSL μΈμ¦μ„œ 였λ₯˜


κ°€λŠ₯ν•œ 원인: AWS CLIκ°€ ν”„λ‘μ‹œ μΈμ¦μ„œλ₯Ό μ‹ λ’°ν•˜μ§€ μ•ŠμŒ

였λ₯˜ ν…μŠ€νŠΈ 예:

$ aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed

πŸ’‘ AWS CLI λͺ…령을 μ‚¬μš©ν•˜λ©΄Β [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed 였λ₯˜ λ©”μ‹œμ§€λ₯Ό λ°›κ²Œ λ©λ‹ˆλ‹€. μ΄λŠ” μ‚¬μš©μžμ˜ ν”„λ‘μ‹œ μΈμ¦μ„œκ°€ 자체 μ„œλͺ…λ˜κ³  νšŒμ‚¬κ°€ 인증 κΈ°κ΄€(CA)둜 μ„€μ •λœ 것과 같은 μš”μΈμœΌλ‘œ 인해 AWS CLIκ°€ ν”„λ‘μ‹œμ˜ μΈμ¦μ„œλ₯Ό μ‹ λ’°ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€.

κ°€λŠ₯ν•œ 원인: ꡬ성이 μ˜¬λ°”λ₯Έ CA 루트 μΈμ¦μ„œ μœ„μΉ˜λ₯Ό 가리킀지 μ•ŠμŒ

였λ₯˜ ν…μŠ€νŠΈ 예:

$ aws s3 ls
SSL validation failed for regionname [Errno 2] No such file or directory

πŸ’‘ 이것은 AWS CLIμ—μ„œ 인증기관(CA) λ²ˆλ“€ 파일 μœ„μΉ˜κ°€ 잘λͺ» κ΅¬μ„±λ˜μ—ˆκΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ νšŒμ‚¬ .pem 파일의 μœ„μΉ˜λ₯Ό ν™•μΈν•˜κ³  ca_bundle ꡬ성 파일 μ„€μ •, --ca-bundle λͺ…령쀄 μ˜΅μ…˜ λ˜λŠ” AWS_CA_BUNDLE ν™˜κ²½ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ AWS CLI ꡬ성을 μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.


python 3.10은 CLIμ—μ„œ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

profile
Devopsκ°€ 되고 싢은 μ²­μ†Œλ…„

0개의 λŒ“κΈ€