λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ§‘πŸ»‍πŸ’» Develop/AWS

νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ AWS κ΄€λ¦¬ν•˜κΈ° (3) - 개발용 IAM μ‚¬μš©μž

by dev-jaesoon 2022. 9. 18.

개발용 IAM μ‚¬μš©μž μƒμ„±

κ·Έλ ‡λ‹€λ©΄, μ‹€μ œλ‘œ κ°œλ°œμ„ ν•˜λ©΄μ„œ AWS λ₯Ό μ‚¬μš©ν•  νŒ€μ›λ“€μ—κ²ŒλŠ” μ–΄λ–»κ²Œ IAM μ‚¬μš©μžλ₯Ό λ§Œλ“€μ–΄ μ£Όλ©΄ 될까? κΈ°λ³Έμ μœΌλ‘œλŠ” νŠΉμ • μ„œλΉ„μŠ€ λ˜λŠ” νŠΉμ • λ™μž‘μ— λŒ€ν•΄μ„œ μ‚¬μš©μž λ³„λ‘œ λ”°λ‘œ κΆŒν•œμ„ μ„€μ •ν•  수 μžˆμ§€λ§Œ, λ¨Όμ € λͺ¨λ“  μ„œλΉ„μŠ€μ— μ•‘μ„ΈμŠ€ ν•  수 μžˆλ„λ‘ ν•˜λŠ” PowerUserAccess κΆŒν•œμ„ λΆ€μ—¬ν•˜μ—¬ IAM 개발용 IAM μ‚¬μš©μžλ₯Ό λ§Œλ“€μ–΄ λ³Ό 것이닀. (μ§€λ‚œ λ²ˆμ— λ§Œλ“  Administrators 계정과 달리 μœ μ € κ΄€λ¦¬λ§Œ ν•  수 μ—†λ‹€.)

 

PowerUser (IAM μ‚¬μš©μž) μΆ”κ°€

IAM μ½˜μ†”λ‘œ μ΄λ™ν•˜μ—¬, μ™Όμͺ½μ˜ λŒ€μ‹œλ³΄λ“œμ—μ„œ  Users - Add User λ₯Ό 눌러 μ‚¬μš©μž μΆ”κ°€ ν™”λ©΄μœΌλ‘œ μ΄λ™ν•œλ‹€. 그리고 μ•„λž˜μ™€ 같이 User name κ³Ό access type 을 μ„€μ •ν•œλ‹€. λ³Έ κΈ€μ—μ„œ μ„ νƒν•œ Access key - Programmatic access λŠ” 주둜 AWS API, CLI, SDK λ‚˜ 개발 λ„κ΅¬μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•œλ‹€. (일반적인 AWS Console 을 μ‚¬μš©ν•˜κ²Œ ν•˜κ³ μž ν•œλ‹€λ©΄, Password - AWS Management Console access 을 선택)

PowerUsers (IAM μ‚¬μš©μž κ·Έλ£Ή) 생성

μ΄λ²ˆμ—λŠ” μœ μ € κ΄€λ¦¬λŠ” ν•  수 μ—†μ§€λ§Œ, λͺ¨λ“  μ„œλΉ„μŠ€μ— μ•‘μ„ΈμŠ€κ°€ κ°€λŠ₯ν•œ PowerUsers 그룹을 생성할 것이닀. μ΄λ²ˆμ— μ‚¬μš©ν•œ AdministratorAccess μ™€ PowerUserAccess 외에도 AWS μ—μ„œλŠ” 정말 λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ κΆŒν•œμ„ μ œκ³΅ν•˜κ³  μžˆλ‹€. μ΄λŸ¬ν•œ 정책은 μ‚¬μš©μžκ°€ 직접 ν•˜λ‚˜ ν•˜λ‚˜ μ„€μ •ν•˜μ—¬ 생성할 μˆ˜λ„ μžˆμ§€λ§Œ, 가급적이면 AWS μ—μ„œ μ œκ³΅ν•˜λŠ” 정책을 μ‚¬μš©ν•˜λŠ” 것을 μΆ”μ²œν•œλ‹€.

PowerUser (IAM μ‚¬μš©μž) μΆ”κ°€ μ™„λ£Œ

νƒœκ·Έ 섀정은 κ±΄λ„ˆλ›°κ³ , Review μ—μ„œ μž…λ ₯ λ‚΄μš©μ„ μ™„λ£Œν•œ ν›„, Create User λ₯Ό ν΄λ¦­ν•˜μ—¬ IAM μ‚¬μš©μž μΆ”κ°€λ₯Ό μ™„λ£Œν•œλ‹€. 이 λ•Œ Access key ID 와 Secret access key κ°€ 랜덀으둜 μƒμ„±λ˜λŠ”λ°, μ΄λ ‡κ²Œ μƒμ„±λœ ν‚€ μ •λ³΄λŠ” 볡사λ₯Ό ν•˜κ±°λ‚˜ .csv νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ λ°›μ•„ ν•΄λ‹Ή νŒ€μ›μ—κ²Œ κ³΅μœ ν•˜λ©΄ λœλ‹€. ν•΄λ‹Ή Key 값은 이 ν™”λ©΄μ—μ„œλ§Œ 받을 수 있고 λΆ„μ‹€ν•˜λ©΄ λ‹€μ‹œ 확인할 수 μ—†κΈ° λ•Œλ¬Έμ—, 타인과 κ³΅μœ ν•˜μ§€ μ•Šκ³  본인이 잘 κ΄€λ¦¬ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

IAM μ‚¬μš©μž 생성 μ™„λ£Œ ν™”λ©΄
μ‹€μ œ CSV 파일

 

AWS λ¦¬μ†ŒμŠ€μ— μ•‘μ„ΈμŠ€ν•˜κΈ°

μ•‘μ„ΈμŠ€ ν‚€ μ„€μΉ˜ν•˜κΈ°

μ•‘μ„ΈμŠ€ ν‚€ μ„€μΉ˜λ₯Ό μœ„ν•΄μ„œλŠ” awscli νŒ¨ν‚€μ§€ μ„€μΉ˜κ°€ ν•„μš”ν•˜λ‹€. νŒ¨ν‚€μ§€ μ„€μΉ˜ ν›„, `$ aws configure list` λ₯Ό μž…λ ₯ν•΄ λ³Έλ‹€. 아직 μ•‘μ„ΈμŠ€ ν‚€κ°€ μ„€μΉ˜ λ˜μ§€ μ•Šμ•„, <not set> 이 좜λ ₯λœλ‹€.

μ•‘μ„ΈμŠ€ ν‚€λ₯Ό μ„€μΉ˜ν•˜κΈ° μœ„ν•΄ ~/.asw 디렉터리λ₯Ό 생성해 credentials κ³Ό config νŒŒμΌμ„ μƒμ„±ν•œλ‹€. 

$ mkdir ~/.aws
$ touch ~/.aws/credentials
$ touch ~/.aws/config

# 디렉토리 및 파일 생성 κ²°κ³Ό 확인
$ ls -al ~/.aws

그리고 credentials νŒŒμΌμ— IAM μ‚¬μš©μž 생성 μ‹œ λ°œκΈ‰ 받은 access key 정보λ₯Ό λ“±λ‘ν•˜κ³ ,

$ vi ~/.aws/credentials

[default]
aws_access_key_id=********
aws_secret_access_key=********

config νŒŒμΌμ—λŠ” aws 와 κ΄€λ ¨λœ 각쒅 μ„€μ • 정보λ₯Ό λ“±λ‘ν•œλ‹€.

$ vi ~/.aws/config
# region 은 각자 μžκΈ°κ°€ μ‚¬μš©ν•  AWS Region 에 λ§žμΆ”μ–΄ μ„€μ •

[default]
region=ap-northeast-1
output=json

 

μ„€μΉ˜λœ access key 확인, AWS CLI  μ‚¬μš©ν•˜κΈ°

`$ aws configure list`  λ₯Ό μž…λ ₯ν•˜λ©΄ μ„€μΉ˜λœ access key λ₯Ό 확인할 수 μžˆλ‹€.

그리고 μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜μ—¬ μ‹€μ œλ‘œ aws s3에 μ ‘κ·Όν•˜μ—¬ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ λ°›μ•„λ³΄μž.

$ mkdir temp
$ cd temp
$ aws s3 cp s3://wildrydes-us-east-1/WebApplication/1_StaticWebHosting/website ./ --recursive
$ ls -al

aws cli λ₯Ό μ‚¬μš©ν•˜μ—¬, 파일이 λ‹€μš΄λ°›μ•„μ§„ 것을 확인할 수 μžˆλ‹€.

 

정리

μ΄λ ‡κ²Œ μ—¬λŸ¬ 개의 IAM μ‚¬μš©μžλ₯Ό μƒμ„±ν•˜μ—¬ νŒ€μ› κ°μžμ—κ²Œ λ‚˜λˆ„μ–΄ μ€€λ‹€λ©΄, ν”„λ‘œμ νŠΈμ—μ„œ AWS λ₯Ό μ‚¬μš©ν•  λ•Œ 보닀 효율적이고 μ•ˆμ •μ μœΌλ‘œ λ¦¬μ†ŒμŠ€λ₯Ό 관리할 수 μžˆλ‹€. AWS μ—μ„œλŠ” νŠΉλ³„ν•œ κ²½μš°μ—λ§Œ Root μ‚¬μš©μžλ₯Ό μ‚¬μš©ν•˜κ³ , 가급적이면 IAM μ‚¬μš©μžλ₯Ό μƒμ„±ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•˜κ³  μžˆλ‹€.

  • Administrator : κ΄€λ¦¬μž κΆŒν•œ (AdministratorAccess μ •μ±…)
  • PowerUser : 개발자 κΆŒν•œ (PowerUserAccess μ •μ±…)

μ‹€μ œλ‘œ 개발 쑰직이 컀진닀면, μ—¬λŸ¬ 개의 그룹을 μƒμ„±ν•˜κ³  이 그룹에 IAM μ‚¬μš©μžλ₯Ό λ“±λ‘ν•˜λŠ” λ°©μ‹μœΌλ‘œ AWS 계정을 μš΄μ˜ν•  수 μžˆλ‹€.

 

κ΄€λ ¨ κΈ€ 이어보기

 

νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ AWS κ΄€λ¦¬ν•˜κΈ° (1) - IAM μ‚¬μš©μž

IAM μ‚¬μš©μžμ˜ ν•„μš”μ„±μ„ λŠλΌλ‹€! AWSλ₯Ό νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜κ³  μ‹Άλ‹€... ν˜„μž¬ μ›Ή μ„œλΉ„μŠ€ κ°œλ°œμ„ κ³΅λΆ€ν•˜κ³  μžˆλ‹€λ©΄, λˆ„κ΅¬λ‚˜ ν•œ 번 쯀은 ν”„λ‘œμ νŠΈλ₯Ό ν•˜κ²Œ 될 것이고, μžκΈ°κ°€ 직접 λ§Œλ“  μ„œλΉ„μŠ€λ₯Ό μ—¬λŸ¬

dev-jaesoon.tistory.com

 

νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ AWS κ΄€λ¦¬ν•˜κΈ° (2) - κ΄€λ¦¬μš© IAM μ‚¬μš©μž μƒμ„±ν•˜κΈ°

μ§€λ‚œ 글에 μ΄μ–΄μ„œ μ‹€μ œλ‘œ κ΄€λ¦¬μš© IAM μ‚¬μš©μžλ₯Ό 생성해 λ³Ό 것이닀. μ΄λ ‡κ²Œ μƒμ„±ν•œ κ΄€λ¦¬μš© IAM μ‚¬μš©μžλŠ” μ‹€μ œλ‘œ Root μ‚¬μš©μžμ™€ 같이 AWS μ„œλΉ„μŠ€λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•˜μ—¬ μ‚¬μš©λ˜μ–΄ 질 수 μžˆλ‹€. κ΄€λ¦¬μš© IAM 사

dev-jaesoon.tistory.com

 

λŒ“κΈ€