팀 구성원을 위한 AWS 접근 권한
Rust 팀의 일부 구성원은 프로젝트의 AWS 계정에 접근할 수 있습니다. 여기에는 인프라 팀 구성원과 AWS에서 서비스를 호스팅하는 팀의 구성원이 모두 포함됩니다.
이 문서에서는 AWS 계정에 접근하는 방법과 계정을 다루는 방법을 설명합니다. 인프라 팀 구성원으로서 다른 사람의 접근 권한을 설정하거나 회수해야 한다면 “AWS 접근 관리” 페이지를 읽으십시오.
자격 증명을 받은 후 사용자 설정하기
자격 증명을 받은 후 가장 먼저 해야 할 일은 비밀번호를 변경하고 2단계 인증을 활성화하는 것입니다. 이 작업을 마치기 전까지는 접근 권한이 2FA 설정에 필요한 권한으로만 자동 제한됩니다.
사용자를 생성한 인프라 팀 구성원에게서 받은 임시 자격 증명으로 콘솔에 로그인하십시오. 임시 비밀번호를 변경하라는 안내가 표시됩니다. 비밀번호를 변경한 뒤 다시 로그인하십시오. 그런 다음, 상단 드롭다운에 있는 “My Security Credentials”(내 보안 자격 증명) 페이지로 이동하십시오.
아래로 스크롤하여 “Assign MFA device” 버튼을 클릭하십시오. “Virtual MFA device”(일반적인 TOTP 방식입니다)를 선택하고 인증 앱으로 설정하십시오. 설정을 마쳤다면 콘솔에서 로그아웃한 뒤 다시 로그인하여 사용 권한이 부여된 리소스에 접근하십시오.
U2F 보안 키를 가지고 있더라도 “U2F security key“는 선택하지 마십시오. AWS API의 제약 때문에 CLI를 사용할 수 없게 되어 콘솔로만 접근할 수 있게 됩니다.
AWS 콘솔 사용하기
AWS 콘솔은 AWS 계정에 있는 대부분의 리소스를 다룰 수 있는 시각적 인터페이스를 제공합니다.
AWS CLI 사용하기
AWS CLI를 사용하면 터미널이나 스크립트에서 AWS 계정을 다룰 수 있습니다. 처음 설정할 때는 Amazon 문서에 따라 CLI를 설치하고 자격 증명을 설정하십시오.
CLI는 인증에 콘솔 비밀번호를 사용하지 않습니다. 콘솔의 “My Security Credentials”(내 보안 자격 증명) 페이지에서 액세스 키를 생성해야 합니다.
액세스 키를 생성한 후 aws configure를 실행하고, 콘솔에서 받은 액세스 키 ID와 비밀 키를 붙여 넣어 설정하십시오. 기본 리전으로는 us-west-1을 사용하십시오.
2단계 인증
AWS 계정의 보안을 위해 CLI를 사용하려면 2단계 인증이 필요합니다. 인프라 팀은 현재 셸에 2FA로 검증된 임시 세션을 생성하여 인증 과정을 간편하게 해 주는 스크립트를 개발했습니다. 세션은 12시간 후에 만료되며, 만료 전까지는 횟수 제한 없이 사용할 수 있습니다.
스크립트를 사용하려면 rust-lang/simpleinfra 저장소를 원하는 디렉터리에 클론하십시오. 그런 다음 AWS CLI를 사용해야 할 때마다 셸에서 다음 명령을 실행하십시오.
eval $(~/PATH/TO/SIMPLEINFRA/aws-creds.py)
이 명령은 2FA 코드를 입력하라고 요청한 뒤, 임시 자격 증명이 담긴 환경 변수 몇 개를 현재 셸에 설정합니다. 12시간이 지났거나 다른 셸에서 자격 증명을 사용하려면 이 명령을 다시 실행해야 합니다.
평문 자격 증명
기본적으로 AWS CLI는 비밀 키를 포함한 자격 증명을 아무런 암호화 없이 ~/.aws/credentials 파일에 저장합니다. 홈 디렉터리에 평문 자격 증명이 저장되어 있는 위험은 2FA 요구 사항 덕분에 어느 정도 줄어들지만, 그래도 저장하지 않는 것이 가장 좋습니다.
CLI 인터페이스를 제공하는 비밀번호 관리자를 사용한다면, 이 문제를 피하는 한 가지 방법은 자격 증명을 비밀번호 관리자에 저장하고, 필요할 때 자격 증명을 가져오도록 CLI가 비밀번호 관리자를 호출하게 설정하는 것입니다.