AWS CLI, SDK, IAM 역할 및 정책

jisoolee·2023년 5월 12일
0

AWS Associate Developer

목록 보기
9/27

AWS CLI

Dry Runs

  • --dry-run: API 호출에 대한 시뮬레이션을 실행해서 권한이 없을 때는 예외적으로 거부되었다고 알 수 있고 권한이 있을 때는 명령이 실행되지 않는다.

STS Decode Errors

  • sts decode-authorization-message: 긴 오류 메세지를 디코딩 한다.

MFA

: MFA를 CLI로 사용하려면 임시 세션을 생성해야 하고, API를 사용하려면 STS GetSession Token을 사용해야 한다.

GetSession Token: 다요소 인증 장치로 자격 증명을 얻기 위해 호출하는 API

AWS EC2 Instance Metadata

: 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

  1. Command line options
  2. Environment variables
  3. CLI credentials file
  4. CLI configuration file
  5. Container credentials
  6. Instance profile credentials

SDK(Java) Priority

  1. Java system properties
  2. Environment variables
  3. The default credential profiles file
  4. Amazon ECS container credentials
  5. Instance profile credentials
  • 절대로 자격 증명을 코드에 저장하면 안된다.
  • AWS에서는 IAM 역할을 최대한 많이 사용한다.
  • AWS를 사용하지 않는다면 환경 변수를 사용하거나 CLI를 구성할 떄와 같은 명명된 프로파일을 사용해야 한다.

Singing AWS API requests

: API로 요청을 보낼 땐 서명(Signature V4)을 해야 한다.

서명을 한 후 AWS에 전달하는 방법

HTTP Header option

: 어떤 HTTP 요청이든지 Authorization 헤더에 서명을 넣어 전달한다.

Query String option

: 서명을 URL에 직접 넣는다.(키 이름은 X-Amz-Signature)

0개의 댓글