AWS CLI
Dry Runs
--dry-run
: API 호출에 대한 시뮬레이션을 실행해서 권한이 없을 때는 예외적으로 거부되었다고 알 수 있고 권한이 있을 때는 명령이 실행되지 않는다.
STS Decode Errors
sts decode-authorization-message
: 긴 오류 메세지를 디코딩 한다.
MFA
: MFA를 CLI로 사용하려면 임시 세션을 생성해야 하고, API를 사용하려면 STS GetSession Token을 사용해야 한다.
GetSession Token: 다요소 인증 장치로 자격 증명을 얻기 위해 호출하는 API
: EC2 인스턴스가 스스로 학습하도록 해서 IAM 역할이 필요하지 않다.
URL
: http://169.254.169.254/latest/meta-data
- 169.254.169.254: AWS 내부 IP로 컴퓨터에서는 실행되지 않고 EC2 인스턴스에서만 실행된다.
- URL을 사용하면 메타 데이터에서 IAM 역할명은 검색할 수 있지만 IAM 정책은 검색할 수 없다.
- 메타데이터는 EC2에 관한 정보인 반면 사용자 데이터는 EC2 인스턴스의 스크립트를 실행한다.
SDK
: 리전을 지정하지 않고 기본 리전을 구성하지 않으면 API 호출을 위해서 SDK에서 us-east-1이 기본으로 선택된다.
AWS Limits(Quotas)
API Rate Limits
: AWS API를 연속으로 호출하는 횟수
Service Quotas(Service Limits)
: 실행할 수 있는 리소스 수
Extential Backoff(any AWS service)
: 조절 오류(과다한 API 호출)가 발생한 경우 사용한다.
- 자체 SDK를 실행하는 경우나 자체 사용자 정의 HTTP 호출을 사용하는 경우, 5xx으로 시작하는 오류 코드의 서버 오류가 발생하면 재시도 매커니즘을 실행해야 한다.
- 4xx 클라이언트 오류에서는 재시도 혹은 지수 백오프를 실행해서는 안된다.
Credentials Provider Chain
CLI Priority
- Command line options
- Environment variables
- CLI credentials file
- CLI configuration file
- Container credentials
- Instance profile credentials
SDK(Java) Priority
- Java system properties
- Environment variables
- The default credential profiles file
- Amazon ECS container credentials
- Instance profile credentials
- 절대로 자격 증명을 코드에 저장하면 안된다.
- AWS에서는 IAM 역할을 최대한 많이 사용한다.
- AWS를 사용하지 않는다면 환경 변수를 사용하거나 CLI를 구성할 떄와 같은 명명된 프로파일을 사용해야 한다.
Singing AWS API requests
: API로 요청을 보낼 땐 서명(Signature V4)을 해야 한다.
서명을 한 후 AWS에 전달하는 방법
: 어떤 HTTP 요청이든지 Authorization 헤더에 서명을 넣어 전달한다.
Query String option
: 서명을 URL에 직접 넣는다.(키 이름은 X-Amz-Signature)