AWS CLI은(는)  AWS Command Line Interface의 약자로 명령줄 셸의 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구이다. 공식문서에서 다음 링크와 같이 AWS CLI를 설치 안내하며 설치 후 아래와 같이 동작한다.

$ aws --version
aws-cli/2.13.33 Python/3.11.6 Linux/3.10.0-1160.102.1.el7.x86_64 exe/x86_64.centos.7 prompt/off

 

이렇게 AWS CLI 설치 후 AWS CLI에서 다양한 리소스를 다루기 위해서 자격 증명이 필요하다.

이 경우 CentOS 기준으로,  profile 및 기본설정 명령어는 아래와 같으며 

$ aws configure
AWS Acess Key Id: { aws_access_key_id }
AWS Secret Access Key: { aws_secret_access_key }
Default region name: ap-northeast-2
# AWS 자원에 대한 응답의 기본 포맷으로 text, table, yml 등이 있다.
Default output format: json

# 특정 profile 별 액세스 키 설정
$ aws configure --profile dev

# 아래 명령어로 현재 설정된 프로그램 액세스 키가 어느 계정에 소속된 것인지 조회할 수 있다
$ aws --region ap-northeast-2 iam get-user

# 프로파일 별 계정 정보 조회
$ aws --profile dev --region ap-northeast-2 iam get-user

 

아래에 위치한 경로 내에 설정한 profile 별 계정 정보를 확인 및 수정할 수 있다.

// /home/{user}/.aws
$ cat credentials 
[default]
aws_access_key_id = { aws_access_key_id }
aws_secret_access_key = { aws_secret_access_key }
[user-1]
aws_access_key_id = { aws_access_key_id }
aws_secret_access_key = { aws_secret_access_key }

 

 

반응형

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

AWS - IAM, User, UserGroup, Role, Policy에 대한 관계  (0) 2023.04.15

IAM

AWS Identity and Access Management 의 약어이며 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스를 뜻한다. IAM을 사용하면 사용자가 액세스 할 수 있는 AWS 리소스를 제어하는 권한을 중앙에서 관리할 수 있다. 

IAM 사용자

AWS에서 생성하는 엔티티이며 AWS에서 사용자 는 이름과 자격 증명으로 구성된다. AWS가 IAM 사용자를 식별하는 방법 중 하나로 Amazon Resource Name(ARN) 이 있는데 다음과 같이 표기한다.

arn:aws:iam::{account-ID-without-hyphens}:user/{user_name}

IAM 사용자  그룹 

IAM 사용자의 집합으로서, 사용자 그룹 을 활용하면 다수의 사용자들에 대한 권한을 지정함으로써 해당 사용자들에 대한 권한을 더 쉽게 관리할 수 있다. 사용자 그룹의 모든 사용자가 정책의 권한을 받도록 Identity기반 정책을 사용자 그룹에 연결할 수 있다. 그룹은 인증이 아니라 권한과 관련이 있고 보안 주체는 인증된 IAM 엔티티이기 때문에 정책에서 사용자 그룹을 Principal로 식별할 수 없다.

 

다음은 사용자 그룹이 갖는 몇 가지 중요한 특징이다.

  • Root accout 는 기본생성 되어지며 사용하거나 공유해서는 안된다. 
  • 조직내의 사용자들은 그룹화(사용자 그룹) 할 수 있습니다.
  • 그룹에는 사용자만 포함할 수 있으며 다른 사용자 그룹은 포함할 수 없습니다.
  • 사용자는 사용자 그룹에 속할 필요가 없으며 사용자는 여러 그룹에 속할 수 있습니다.

 

User & Group

 

IAM 역할

IAM 역할 은 계정에 생성할 수 있는, 특정 권한을 지닌 IAM 자격 증명이다. IAM역할은 AWS에서 자격 증명이 할 수 있는 것과 없는 것을 결정하는 권한 정책을 갖춘 AWS 자격 증명이라는 점에서 IAM 사용자와 유사하다. 그러나 역할은 그와 연관된 암호 또는 액세스 키와 같은 표준 장기 자격 증명이 없다. 때문에 역할을 맡은 사람에게는 해당 역할 세션을 위한 임시 보안 자격 증명이 제공된다. 이와 관련된 것이 

AWS STS와 Assume Role인데

AWS STS(Security Token Service)는 AWS에서 보안 토큰을 생성하는 서비스이며, Assume Role은 AWS IAM에서 지원하는 기능 중 하나로써 AWS IAM에서 Assume Role을 사용하면 IAM 사용자 또는 AWS 외부 자격 증명으로 다른 AWS 계정 또는 리로스에 엑세스 할 수 있다.

IAM Permissions

  • 사용자와 그룹은 JsonType document로 Policies(정책)를(을) 할당 받을 수 있으며  이러한 Policies는 사용자의 권한을 정의합니다.
  • 최소한의 권한 정책을(least privilege principle)을 적용해야 하며 사용자가 필요로 하는 것보다 더한 권한을 주워서는 안된다. 

 

IAM Policies inheritance (정책 상속)

정책 상속

 

IAM Policies Structure

  • 구성 정보
    • Version: 정책 언어 버전(항상 2012-10-17일로 고정)
    • Id: 정책 식별자(선택 사항)
    • Statement: 하나 또는 그 이상의 개별 명령문(Statement)(필수)
  • Statement 구성 정보
    • Sid: 명령문의 식별자(선택사항)
    • Effect: 명령문이 액세스를 허용하는지 또는 거부 하는지 여부(Allow or Deny)
    • Principal: 이 정책이 적용될 사용자, 계정, 역할(Account, User, Role)
    • Action: 허용하거나 거부된 정책 목록
    • Resource : Action 이 적용된 리소스 목록
    • Condition: 이 정책이 적용되는 조건(선택사항)

 

IAM Password Policy

복잡한 암호는 계정의 보안을 강화시키기에, AWS는 비밀번호 정책을 다음과 같이 설정할 수 있다.

  • 최소 암호 길이 설정
  • 특정 문자 유형
    • 대문자, 소문자, 숫자, 특수기호를 포함한 유형
  • 모든 IAM 사용자가 자신의 암호를 변경할 수 있도록 허용 
  • 일정 시간이 지나면 사용자에게 비밀번호를 변경하도록 요구(비밀번호 만료) 
  • 비밀번호 재사용 방지

 

반응형

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

AWS - AWS CLI와 AWS Profile  (0) 2023.11.10

+ Recent posts