Jost Do It.

그냥 IT해.

서버 및 환경/Cloud

[AWS] AWS configure 등록 및 AWS Session Token 발급

그냥하Jo. 2022. 10. 4. 03:08
반응형

AWS는 서버의 보안성을 강화할 목적으로 CLI환경이나 API에서 파일을 작성, 읽기, 삭제를 할 때 Session Token을 요구한다.

 

Session Token은 임시로 발행되는데, 보통 유효기간이 정해져 있고 유효기간이 만료되면 다시 갱신하여야 한다.

 

Session Token은 MFA 코드가 있어야 발급할 수 있는데, MFA 코드 값이 일정시간마다 변경되기 때문에 보안성을 유지할 수 있는 것이다. MFA코드 관련 글은 여기서 확인할 수 있다.

 

 

 

또한 Session Token을 발급받기 위해서는 리눅스 shell에서 aws configure 정보를 입력해줘야 한다.

 

aws configure 정보를 생성하거나 확인하는 방법은 다음과 같다.

 

 

AWS Configure 정보 확인 및 생성

AWS configure 정보는 아마존 사이트에서 다음과 같이 확인할 수 있다.

 

1. 로그인 후 오른쪽 위의 계정을 클릭하고 보안 자격 증명 버튼을 누른다.

 

 

 

2. AWS IAM 자격 증명에서 CLI, SDK 및 API 액세스를 위한 액세스 키에서 액세스 키 만들기 버튼을 누른다.

CLI, SDK 및 API 액세스를 위한 액세스 키

  • 액세스 키는 활성/비활성 구분 없이 최대 2개를 생성할 수 있다.
  • 액세스 키를 생성하면 대응하는 비밀 키도 함께 생성된다. 비밀 키는 생성 시에만 확인과 다운로드가 가능하다. 
  • 비밀 키를 잃어버린 경우, 액세스 키를 제거하고 새로운 액세스 키를 만들어야 한다. 대응하는 비밀 키가 없는 경우 액세스 키 사용이 불가능하기 때문이다.
  • 즉, CLI나 API 액세스 시 필요한 ID는 액세스 키, 비밀번호는 비밀 키 개념으로 이해하면 된다.

 

 

3. 액세스 키 만들기 버튼을 누르면 새로운 액세스 키와 비밀 키가 제공된다.

  • 비밀 키는 잃어버리면 찾을 수 없으니 기록을 하거나 .csv 파일을 다운로드 하여 저장하는 것이 권장된다.

 

 

 

4. 생성된 액세스 키 리스트를 확인할 수 있다.

 

 

 

 

다음으로 shell에 AWS configure 정보를 입력해야 한다.

 

 

 

 

Shell에서 AWS configure 정보 입력

shell에서 정보를 입력하기 위해서 아래 명령어를 입력한다.

aws configure

 

입력하면 다음의 정보를 요구하게 된다.

  • AWS Access Key ID: 액세스 키
  • AWS Secret Access Key: 비밀 키
  • Default region name: AWS 지역명 (회사에서 사용하는 서버 위치 or 한국의 경우 ap-northeast-2)
  • Default output format: 출력 형식 (json, xml 등 출력 형식 입력)

 

각 정보를 아래와 같이 입력한다.

aws configure에서 위 정보들을 입력!

 

 

 

 

 

입력 후 잘 입력됐는지 확인하기 위해서 아래 명령어를 입력한다.

aws configure list

 

입력하면 아래와 같이 입력된 값들이 나타나게 된다.

일부 결과들이 마스킹되어 출력된다.

 

 

 

 

여기까지 AWS configure 정보를 생성하여 shell에 입력하는 과정이었다. 다음으로 session token을 발급하여야 한다.

 

 

 

 

AWS Session Token 발급

AWS Session Token은 CLI에서 다음 명령어를 통해 발급할 수 있다.

aws sts get-session-token --serial-number <MFA Device명> --token-code <MFA 코드 6자리>
  • Session Token을 발급하는 명령어는 MFA device와 MFA 코드을 요구한다.
  • MFA Device명과 MFA 코드를 확인하는 법은 다음과 같다.

 

위 정보를 입력하면 아래와 같이 Session Token 관련 정보들이 출력된다.

명령어 실행 결과

명령어 실행 시 아래 정보들을 출력한다.

  • AccessKeyId: 세션 토큰의 액세스 키
  • SecretAccessKey: 세션 토큰의 비밀 키
  • SessionToken: 세션 토큰
  • Expiration: 만료기한

 

Expiration의 기한이 지난 후에는 해당 세션 토큰을 사용할 수 없으니 새로 발급받아야 한다.

 

또한 AccessKeyId와 SecretAccessKey는 앞서 발급한 configure 정보와는 다르다! 즉, Session Token 자체의 액세스 키, 비밀 키라고 이해하여야 한다.

 

CLI환경이나 API 호출 시에도 Session Token 자체의 액세스키와 비밀키를 이용해야 한다.

 

 

반응형