AWS CLI 설치와 Access key와 IAM 설명 - 패스트캠퍼스 챌린지 AWS 인프라 구축과 DevOps 운영 4일차
< 강의 커리큘럼 >
01. DevOps의기본 개념
02. AWS기반 소규모&중규모 아키텍트설계
03. AWS기반 대규모아키텍트 설계
04. 코드를통한 인프라관리(IaC)
05. 도커와 쿠버네티스를 이용한서비스 운영
06. CI/CD(지속적 통합/지속적 제공) 구현하기
07. 모니터링서비스 구축및운영
08. AWS기반보안
부록. Kuberneteson AWS EKS
CLI, API, SDK 에 대해서는 많이 들어보셨을거라 생각합니다.
그러나 구분을 잘 못하는 경우가 많습니다.
검색을 통해서라도 그 차이를 정확히 알고 있어야합니다.
오늘 들었던 강의에서는 CLI에 대한 내용이 나왔는데,
CLI는 흔히 생각하는 커맨드창, 터미널창에 명령어를 입력하는 그런 방식?을 말합니다.
네트워크 컨피그를 설정할때, 리눅스를 다룰 때, 각종 3rd파티를 다룰 때도 사용합니다.
CLI를 지원해야 여러장비와의 호환이 쉽게 이루어 질 수 있으며.. CLI를 지원안하는 경우는.. 있는지 모르겠습니다.
AWS CLI를 설치하는 방법 (macOS)
brew install awscli
AWS CLI를 설치하는 방법 (Ubuntu)
sudo apt update
sudo apt install unzip build-essential curl
curl "http://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
AWS를 다루는 방법은 Ansible, Terraform 등을 활용하는 경우도 있고 하지만.. 근본적으로는
1) AWS Management Console , 2) AWS CLI , 3) AWS API로 볼 수 있습니다.
추후 강의에도 나오겠지만
1) AWS Management Console을 사용할 때 가장 필수로 해야하는 보안사항이 MFA설정이고,
2) AWS CLI 나 AWS API를 사용할 때에는 액세스키라는 것을 활용합니다.
이 액세스키는 사용자의 권한과 동일한 권한을 가지고 있어, 정말 잘 관리해야합니다.
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_access-keys.html
IAM 사용자의 액세스 키 관리 - AWS Identity and Access Management
가장 좋은 방법은 AWS 계정 루트 사용자를 사용하지 않는 것입니다. AWS 계정 루트 사용자 자격 증명을 사용할 경우 그 자격 증명도 정기적으로 교체할 것을 권장합니다. 계정 암호 정책은 루트 사
docs.aws.amazon.com
AWS 액세스키에 대해서 조금 이야길 하자면
액세스키는 액세스키 ID와 보안액세스키 2가지 부분으로 구성되어 있습니다.
위에서 말씀드렸다시피 액세스키는 IAM 사용자의 권한을 그대로 가지고 있기 때문에 액세스키가 노출되면 큰 보안사고로 이루어 질 수있습니다.
특히 Admin 권한이나 Full Access권한을 가지고 있는 IAM사용자의 액세스키가 노출될 경우에 해커에 의해 타 사용자의 권한 상승 및 AWS 리소스의 수정,삭제,생성이 일어날 수 있어 금전적인 피해가 발생 할 수 있습니다.
액세스키는 주기적으로 변경해주는 것을 권장하며 IAM사용자 별 최대 2개까지 만들 수 있습니다. 왜냐면 Access key변경을 할 경우 필요합니다..
액세스키 관리에 대해 좋은 아이디어가 있으신 분들은.. 알려주시면 감사하겠습니다.
여기에 추가적으로 액세스키 발급이야기를 하니까 IAM사용자의 유형에 대해서도 조금 이야길 하자면..
AWS의 사용자, 계정 이런 이야기를 할 때 약간.. 사람들 마다 조금 다릅니다.
그래서 저는 나름의 정의를 내린것이
- AWS 계정은 콘솔을 기준으로 나누는 것.
콘솔로그인 할 경우 "계정ID 또는 계정별칭"을 적으라고 하는데, 이 기준을 이야기하고,
- AWS 사용자는 root와 IAM을 정확히 구분한다.
root사용자는 말그대로 root사용자를 의미합니다. 정말 최상위의 모든 ALL 권한을 가진 root사용자.
그 이외 IAM사용자. IAM에 사용자 등록을 하는 경우.
그러나 여기서 IAM 사용자도 2가지 분류로 나눌 수 있습니다.
1). 콘솔접속 IAM 사용자
> 콘솔에 접속할 수 있는 패스워드를 설정합니다. Access Key는 발급되지 않고, 추후에 생성할 수 있습니다.
2). 프로그램용 IAM 사용자
> 콘솔 접속할 수 있는 패스워드가 설정되지 않고 Access Key가 생성이됩니다.
용도에 따라 IAM사용자를 구별해서 생성해줘야합니다.
강의에서는 콘솔에 접속하는 IAM 사용자의 Access Key를 사용해서 CLI작업도 진행했지만,
콘솔 접속하는 IAM 사용자는 Access Key를 따로 만들지 않는것을 추천드리기도 합니다.
콘솔에 정말 극히 드문 몇몇 사용자만 접속하고, 다 AWS CLI나 API를 통해 AWS를 컨트롤하는 회사도 있는것 같습니다.
AWS CLI를 사용할 때 스위칭 하는것도 실제로 많이 활용하고 있습니다.
https://novemberde.github.io/post/2018/06/20/AWS-config-switching/
AWS Configure 여러 계정으로 스위칭하며 사용하기
Summary 개인용 개발계정, 회사계정, 워크샵 전용 계정 등등 여러 계정들을 사용하다보니 Default로 Access Key ID 와 Secret Access Key를 관리하고 싶어졌다. Default로 두고 사용하다가 잘못하면 회사계정에
novemberde.github.io
MFA 설정 및 비용관련 이슈 처리는 내일 작성하고, 이제 진짜 AWS 실습으로 넘어가보도록 하겠습니다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr