AWS STS 자격 증명 비교
AWS STS 자격 증명 비교 (Compare AWS STS credentials)
다음 표는 임시 보안 자격 증명을 반환하는 AWS STS의 API 작업 기능을 비교해요. 역할을 수임해서 임시 보안 자격 증명을 요청하는 여러 방법을 배우려면 역할 수임 방법을, 세션 태그를 전달할 수 있는 AWS STS API 작업을 배우려면 AWS STS에서 세션 태그 전달을 참고하세요.
출처: 문서
본문
참고
AWS STS API 호출은 전역 엔드포인트 또는 리전 엔드포인트 중 하나로 보낼 수 있어요. 가까운 엔드포인트를 선택하면 지연 시간을 줄이고 API 호출 성능을 높일 수 있어요. 원래 엔드포인트와 통신할 수 없게 되면 대체 리전 엔드포인트로 호출을 보낼 수도 있어요. AWS SDK를 사용 중이라면 API 호출 전에 SDK 메서드로 리전을 지정해요. HTTP API 요청을 직접 구성한다면 요청을 올바른 엔드포인트로 직접 보내야 해요. 자세한 내용은 리전과 엔드포인트의 AWS STS 섹션과 AWS 리전에서 AWS STS 관리를 참고하세요.
| AWS STS API | 호출 가능한 주체 | 자격 증명 수명 (최소|최대|기본) | MFA 지원¹ | 세션 정책 지원² | 결과 임시 자격 증명의 제한 |
|---|---|---|---|---|---|
AssumeRole |
기존 임시 보안 자격 증명이 있는 IAM 사용자 또는 IAM 역할 | 15분 | 최대 세션 지속 시간 설정³ | 1시간 | 예 | 예 | GetFederationToken 또는 GetSessionToken 호출 불가 |
AssumeRoleWithSAML |
모든 사용자; 호출자는 알려진 IdP의 인증을 나타내는 SAML 인증 응답을 전달해야 함 | 15분 | 최대 세션 지속 시간 설정³ | 1시간 | 아니요 | 예 | GetFederationToken 또는 GetSessionToken 호출 불가 |
AssumeRoleWithWebIdentity |
모든 사용자; 호출자는 알려진 IdP의 인증을 나타내는 OIDC 호환 JWT 토큰을 전달해야 함 | 15분 | 최대 세션 지속 시간 설정³ | 1시간 | 아니요 | 예 | GetFederationToken 또는 GetSessionToken 호출 불가 |
GetFederationToken |
IAM 사용자 또는 AWS 계정 루트 사용자 | IAM 사용자: 15분 | 36시간 | 12시간 / 루트 사용자: 15분 | 1시간 | 1시간 | 아니요 | 예 | AWS CLI 또는 AWS API로 IAM 작업 호출 불가(콘솔 세션에는 해당 안 됨) / GetCallerIdentity⁴ 외 AWS STS 작업 호출 불가 / 콘솔 SSO 허용⁵ |
GetSessionToken |
IAM 사용자 또는 AWS 계정 루트 사용자 | IAM 사용자: 15분 | 36시간 | 12시간 / 루트 사용자: 15분 | 1시간 | 1시간 | 예 | 아니요 | 요청에 MFA 정보가 포함되지 않으면 IAM API 작업 호출 불가 / AssumeRole 또는 GetCallerIdentity 외 AWS STS 작업 호출 불가 / 콘솔 SSO 불가⁶ |
¹ MFA 지원. AssumeRole과 GetSessionToken API 작업을 호출할 때 MFA(다중 인증) 기기 정보를 포함할 수 있어요. 이렇게 하면 API 호출로 생성된 임시 보안 자격 증명이 MFA 기기로 인증된 사용자만 사용할 수 있게 보장돼요. 자세한 내용은 MFA로 안전한 API 접근을 참고하세요.
² 세션 정책 지원. 세션 정책은 역할이나 AWS STS 페더레이션 사용자 세션의 임시 세션을 프로그래밍 방식으로 만들 때 파라미터로 전달하는 정책이에요. 이 정책은 세션에 할당되는 역할·사용자의 아이덴티티 기반 정책의 권한을 제한해요. 결과 세션의 권한은 엔터티의 아이덴티티 기반 정책과 세션 정책의 교집합이에요. 세션 정책으로 수임되는 역할의 아이덴티티 기반 정책이 허용하는 것보다 더 많은 권한을 부여할 수는 없어요. 역할 세션 권한에 대한 자세한 내용은 세션 정책을 참고하세요.
³ 최대 세션 지속 시간 설정. DurationSeconds 파라미터로 역할 세션의 지속 시간을 900초(15분)부터 역할의 최대 세션 지속 시간 설정까지 지정해요. 역할의 최대 값을 보는 방법은 역할의 최대 세션 지속 시간 업데이트를 참고하세요.
⁴ GetCallerIdentity. 이 작업을 수행하는 데 권한이 필요하지 않아요. 관리자가 IAM 사용자·역할에 sts:GetCallerIdentity 작업에 대한 명시적 거부 정책을 추가해도 여전히 이 작업을 수행할 수 있어요. IAM 사용자·역할이 접근을 거부당했을 때도 같은 정보가 반환되기 때문에 권한이 필요하지 않아요. 예시 응답을 보려면 iam:DeleteVirtualMFADevice를 수행할 권한이 없습니다를 참고하세요.
⁵ 콘솔 로그인(SSO). SSO를 지원하기 위해 AWS는 페더레이션 엔드포인트(https://signin.aws.amazon.com/federation)를 호출하고 임시 보안 자격 증명을 전달하게 해줘요. 엔드포인트는 비밀번호 없이 사용자를 콘솔에 직접 로그인시키는 URL을 구성할 수 있는 토큰을 반환해요. 자세한 내용은 SAML 2.0 페더레이션 프린시펄의 AWS Management Console 접근 활성화와 AWS Security Blog의 AWS Management Console에 크로스 계정 접근 활성화 방법을 참고하세요.
⁶ 임시 자격 증명을 받은 뒤에는 그 자격 증명을 페더레이션 싱글 사인온 엔드포인트에 전달해 AWS Management Console에 접근할 수 없어요. 자세한 내용은 AWS 콘솔에 커스텀 아이덴티티 브로커 접근 활성화를 참고하세요.
더 알아보기 (Learn more)
- 역할 수임 방법 — 역할을 수임하는 여러 방법을 확인해 보세요.
- AWS STS에서 세션 태그 전달 — 세션 태그를 전달하는 방법을 살펴보세요.
- 임시 보안 자격 증명 — 임시 자격 증명의 개념을 참고하세요.