CLI를 위한 Access key 만들기

// access key
// secret access key

aws iam list-users

IAM 권한에 따라 CLI도 동일한 권한을 가진다

Cloud shell

모든 리전에서 가능한 서비스는 아니며 aws 터미널을 통해 명령을 내리는 것 대신에 사용할 수 있는 대안이다.

한국 리전에서는 사용이 불가능해 도쿄 리전으로 바꿔서 사용했다.

aws --version
aws-cli/2.11.18 Python/3.11.3 Linux/5.10.178-162.673.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/off

명령어를 입력하면 api 호출 결과를 반환해준다. 반환 결과는 현재 클라우드를 사용중인 계정에 따라간다.

--region을 사용해 리전을 지정해 결과를 받을 수 있으며 지정하지 않을시 현재 사용중인 리전을 따라간다.

 

  • Cloudshell 환경에선 전체 저장소가 있는데 파일을 만들고 저장시킨 뒤 재접속해도 파일이 그대로 남아있다.
  • 터미널을 위한 설정도 가능 (글자크기 변경 등)
  • 클라우드 쉘 환경의 파일 업/다운로드 또한 가능

cloud shell은 aws에서 만든 원격 ssh 터미널 + 다양한 GUI가 추가 된 것

 

IAM Role

  • aws 서비스 몇 가지는 우리의 계정에서 실행해야 한다
    • 이를 위해선 권한이 필요하고 aws 서비스에 권한을 부여 피료
    • 그러기 위해선 IAM Role
  • 실제 사람이 사용하도록 만들어진 것이 아니고 AWS에 의해 사용되도록 만들어지는 것

 

EX)

EC2 인스턴스를 만들었을 때 EC2는 AWS에서 어떤 작업을 수행하려고 할 수 있다.

그러기 위해선 EC2 인스턴스에 권한을 부여해야 한다. 이를 위해 IAM Role을 만들고 EC2와 묶어 하나의 개체로 만들 수 있다.

이렇게 하면 EC2 인스턴스가 AWS에 있는 어떤 정보에 접근하려고 할 때 IAM Role을 활용해 접근한다.

 

IAM Role 실습

  • AWS 서비스에 대한 Role과 관련된 것만 알아볼 것
    • Lambda함수와 EC2서비스에 관한 것이 가장 많이 사용됨
    • EC2 관련된 것을 만져볼 것
    • 다양한 Role이 있지만 지원하지 않는 서비스도 많다
  • IAM read only access만 추가해보았고 이후 EC2에서 적용되는 것을 확인해볼 예정

IAM Security Tool

  • IAM Credentials Report(account-level)
    • 전체 유저에 관한 다양한 정보를 볼 수 있다
    • IAM 자격 증명 보고서를 만들수 있고 계정 수준에서 사용가능
    • 보고서는 계정에 있는 사용자와 다양한 자격 증명의 상태를 포함
  • IAM Access Advisor(user-level)
    • 엑세스 관리자는 사용자에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 엑세스한 시간이 보인다
    • 어떤 권한이 사용되지 않는지 확인할 수 있고 사용자의 권한을 줄여 최소 권한의 원칙을 지킬 수 있다

보안 도구 실습

  • 자격 증명 보고서 만들기
    • 언제 로그인했는지 액세스 키를 만들었는지 MFA를 사용중인지, 비밀번호를 바꾸지 않았는지 계정을 사용하는지 파악할 때 매우 유용하며 보안 측면에서 어떤 사용자를 주목해야한느지 발견하는데 도움을 줄 수 있다.
  • Access Advisor
    • 어떤 작업에 언제 접근했는지에 대해 알 수 있다.
    • 접근하지 않는 서비스들을 삭제할 수 있다.

 

IAM 가이드라인과 모범사례

  • 루트 계정은 AWS 계정을 설정할 때를 제외하고 사용하지 않는다.
    • IAM 사용자를 추가한다.
      • 루트 계정과 개인 계정을 구분해야 한다
  • 하나의 AWS 유저는 한 명의 실제 사용자를 의미한다
    • 협업시 루트 자격 증명(Root User Credential)을 주지말고 새로운 사용자를 만들어준다.
  • 사용자를 그룹에 넣어 해당 그룹에 권한을 부여할 수 있다.
  • 그룹 수준에서 보안 관리 가능
  • 비밀번호 정책을 강력하게 만들어야한다
  • MFA(다인증 요소)를 사용할 수 있다면 훨씬 안전하다
  • AWS 서비스에 권한을 부여할 때 역할을 만들고 사용해야한다
  • AWS CLI와 SDK를 사용할 경우 엑세스 키가 필요하다
  • 계정의 권한을 검사할 때 IAM 자격증명보고서와 IAM 액세스 분석기를 사용할 수 있다.

IAM 요약

  • 회사내 실제 사용자와 AWS 유저는 서로 대응된다
  • 사용자는 콘솔에 대한 비밀번호를 가진다
  • 모범 사례는 사용자를 그룹으로 둔다
    • 그룹은 사용자만을 포함한다
  • 사용자나 그룹에 권한 부여 IAM 정책문서 JSON으로 구성
    • 사용자나 그룹이 할 수 있는 권한을 알려주는 문서
  • aws 서비스가 다른 aws 서비스를 활용해 무언가를 하려고 할 때 Role을 설정할 수 있다
    • IAM Role
  • MFA, 강력한 패스워드 정책을 통해 보안성을 높일 수 있다
  • CLI 또는 SDK를 활용해 aws 접근하려고할 때는 엑세스 키가 필요하다
  • 자격 증명 보고서를 통해 사용자 관련 정보를 볼 수 있다
  • IAM의 특정 사용자를 감시하고 싶으면 엑세스 관리자를 사용하여 최근 권한의 사용 내역을 확인할 수 있다.

IAM 퀴즈 오답

IAM 정책은 하나 이상의 문장으로 구성되는데 문장의 구성요소가 아닌 것은

  1. 효과
  2. 원칙
  3. 버전
  4. 조치
  5. 리소스

버전은 정책 정의 자체의 일부이지 문장의 일부가 아니다.

시드, 효과,원칙,조치(Action),리소스,조건으로 구성

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

EC2 - SAA Level  (1) 2023.05.17
AWS SAA를 위한 EC2 공부하기 (2)  (0) 2023.05.15
AWS SAA를 위한 EC2 공부하기 (1)  (1) 2023.05.15
AWS IAM이 무엇인지 공부하고 실습하기(1)  (0) 2023.05.11
AWS 시작하기  (0) 2023.05.10
복사했습니다!