AWS로 SAML 2.0 연동 문제 해결 - AWS Identity and Access Management

AWS로 SAML 2.0 연동 문제 해결

이 문서의 정보를 사용하여 IAM 연동 및 SAML 2.0 작업 시 발생할 수 있는 문제를 진단하고 해결할 수 있습니다.

오류: 요청에 잘못된 SAML 응답이 포함되어 있습니다. 로그아웃하려면 여기를 클릭하십시오.

이 오류는 자격 증명 공급자의 SAML 응답에 Namehttps://aws.amazon.com/SAML/Attributes/Role로 설정된 속성이 포함되지 않은 경우 발생할 수 있습니다. 이 속성은 하나 이상의 AttributeValue 요소를 포함해야 하며, 각 요소에 다음과 같은 문자열 쌍이 쉼표로 구분되어 있어야 합니다.

  • 사용자를 매핑할 수 있는 역할의 ARN

  • SAML 공급자의 ARN

자세한 내용은 인증 응답에 대한 SAML 어설션 구성 섹션을 참조하세요. 브라우저에서 SAML 응답을 보려면 문제 해결을 위해 브라우저에서 SAML 응답을 보는 방법의 단계를 따르십시오.

오류: AuthnResponse에 RoleSessionName 필요(서비스: AWSSecurityTokenService, 상태 코드: 400, 오류 코드: InvalidIdentityToken)

이 오류는 자격 증명 공급자의 SAML 응답에 Namehttps://aws.amazon.com/SAML/Attributes/RoleSessionName로 설정된 속성이 포함되지 않은 경우 발생할 수 있습니다. 속성 값은 사용자의 식별자이며, 일반적으로 사용자 ID 또는 이메일 주소입니다.

자세한 내용은 인증 응답에 대한 SAML 어설션 구성 섹션을 참조하세요. 브라우저에서 SAML 응답을 보려면 문제 해결을 위해 브라우저에서 SAML 응답을 보는 방법의 단계를 따르십시오.

오류: sts:AssumeRoleWithSAML을 수행할 권한 없음(서비스: AWSSecurityTokenService, 상태 코드: 403, 오류 코드: AccessDenied)

이 오류는 SAML 응답에 지정된 IAM 역할이 잘못 기재되었거나 존재하지 않는 경우 발생할 수 있습니다. 역할 이름은 대소문자를 구분하므로 역할 이름을 정확하게 사용하십시오. SAML 서비스 공급자 구성의 역할 이름을 올바르게 수정하십시오.

역할 신뢰 정책에 sts:AssumeRoleWithSAML 작업이 포함된 경우에만 액세스가 허용됩니다. PrincipalTag 속성을 사용하도록 SAML 어설션이 구성된 경우 신뢰 정책에도 sts:TagSession 작업이 포함되어야 합니다. 세션 태그에 대한 자세한 내용은 AWS STS에서 세션 태그 전달 섹션을 참조하세요.

이 오류는 사용자의 역할 신뢰 정책에 sts:SetSourceIdentity 권한이 없는 경우 발생할 수 있습니다. SourceIdentity 속성을 사용하도록 SAML 어설션이 구성된 경우 신뢰 정책에도 sts:SetSourceIdentity 작업이 포함되어야 합니다. 소스 자격 증명에 대한 자세한 내용은 위임된 역할로 수행한 작업 모니터링 및 제어 섹션을 참조하세요.

이 오류는 페더레이션 사용자가 역할을 수임할 권한이 없는 경우에도 발생할 수 있습니다. 역할에는 IAM SAML 자격 증명 공급자의 ARN을 Principal로 지정하는 신뢰 정책이 있어야 합니다. 또한 역할에는 어떤 사용자가 해당 역할을 수임할 수 있는지 제어하는 조건이 포함됩니다. 사용자는 조건의 요구 사항을 준수해야 합니다.

이 오류는 SAML 응답에 Subject가 포함된 NameID가 없는 경우에도 발생할 수 있습니다.

자세한 내용은 AWS에서 페더레이션 사용자에 대한 권한 수립인증 응답에 대한 SAML 어설션 구성 섹션을 참조하세요. 브라우저에서 SAML 응답을 보려면 문제 해결을 위해 브라우저에서 SAML 응답을 보는 방법의 단계를 따르십시오.

오류: AuthnResponse의 RoleSessionName은 [a-zA-Z_0-9+=,.@-]{2,64}와 일치해야 함(서비스: AWSSecurityTokenService, 상태 코드: 400, 오류 코드: InvalidIdentityToken)

이 오류는 RoleSessionName 속성 값이 너무 길거나 유효하지 않은 문자가 포함된 경우 발생할 수 있습니다. 유효한 최대 길이는 64자입니다.

자세한 내용은 인증 응답에 대한 SAML 어설션 구성 섹션을 참조하세요. 브라우저에서 SAML 응답을 보려면 문제 해결을 위해 브라우저에서 SAML 응답을 보는 방법의 단계를 따르십시오.

오류: 소스 자격 증명은 [a~zA~Z_0~9+=,.@-]{2,64}와 일치해야 하며 "aws:"로 시작할 수 없음(서비스: AWSSecurityTokenService, 상태 코드: 400, 오류 코드: InvalidIdentityToken)

이 오류는 sourceIdentity 속성 값이 너무 길거나 유효하지 않은 문자가 포함된 경우 발생할 수 있습니다. 유효한 최대 길이는 64자입니다. 소스 자격 증명에 대한 자세한 내용은 위임된 역할로 수행한 작업 모니터링 및 제어 섹션을 참조하세요.

SAML 어설션을 생성하는 방법에 대한 자세한 내용은 인증 응답에 대한 SAML 어설션 구성 섹션을 참조하세요. 브라우저에서 SAML 응답을 보려면 문제 해결을 위해 브라우저에서 SAML 응답을 보는 방법의 단계를 따르십시오.

오류: 유효하지 않은 응답 서명(서비스: AWSSecurityTokenService, 상태 코드: 400, 오류 코드: InvalidIdentityToken)

이 오류는 자격 증명 공급자의 연동 메타데이터가 IAM 자격 증명 공급자의 메타데이터와 일치하지 않는 경우 발생할 수 있습니다. 예를 들어, 만료된 인증서를 업데이트하기 위해 자격 증명 서비스 공급자의 메타데이터 파일이 변경되었을 수 있습니다. 이 경우, 자격 증명 서비스 공급자의 업데이트된 SAML 메타데이터 파일을 다운로드합니다. 그런 다음 aws iam update-saml-provider 교차 플랫폼 CLI 명령 또는 Update-IAMSAMLProvider PowerShell cmdlet을 통해 IAM에서 정의한 AWS 자격 증명 공급자 엔터티에 이를 업데이트합니다.

오류: 역할을 수임하지 못함: 지정한 공급자에 발행자가 없음(서비스: AWSOpenIdDiscoveryService, 상태 코드: 400, 오류 코드: AuthSamlInvalidSamlResponseException)

이 오류는 업로드한 연동 메타데이터 파일에 선언되어 있는 발행자와 SAML 응답의 발행자가 일치하지 않는 경우 발생할 수 있습니다. 메타데이터 파일은 IAM에서 자격 증명 공급자를 생성할 때 AWS에 업로드되었습니다.

오류: 메타데이터를 구문 분석할 수 없습니다.

이 오류는 메타데이터 파일이 적절한 형식이 아닌 경우에 발생할 수 있습니다.

AWS Management Console에서 SAML 자격 증명 공급자를 생성하거나 관리할 때, 사용자의 자격 증명 공급자에서 SAML 메타데이터 문서를 가져와야 합니다.

이 메타데이터 파일에는 발급자 이름, 만료 정보 및 IdP에서 가져온 SAML 인증 응답(어설션)을 확인하는 데 사용할 수 있는 키가 포함되어 있습니다. 메타데이터 파일은 바이트 순서 표시(BOM)가 없는 UTF-8 형식으로 인코딩되어야 합니다. BOM을 제거하려면 Notepad++와 같은 텍스트 편집 도구를 사용해 파일을 UTF-8로 인코딩합니다.

SAML 메타데이터 문서의 일부로 포함된 x.509 인증서는 1,024비트 이상의 키를 사용해야 합니다. 또한 x.509 인증서에는 반복되는 확장이 없어야 합니다. 확장을 사용할 수 있지만 확장은 인증서에 한 번만 나타날 수 있습니다. x.509 인증서가 두 조건 중 하나를 충족하지 못하면 IdP 생성에 실패하고 “메타데이터를 구문 분석할 수 없음” 오류를 반환합니다.

SAML V2.0 Metadata Interoperability Profile Version 1.0의 정의에 따라, IAM은 메타데이터 문서의 X.509 인증서 만료를 평가하거나 이에 대해 조치를 취하지 않습니다.

오류: 지정된 공급자가 존재하지 않습니다.

이 오류는 SAML 어설션에서 지정한 공급자의 이름이 IAM에 구성된 공급자의 이름과 일치하지 않는 경우 발생할 수 있습니다. 공급자 이름 보기에 대한 자세한 내용은 IAM에서 SAML ID 공급자 생성 단원을 참조하십시오.

오류: 요청된 DurationSeconds가 이 역할에 대해 설정된 MaxSessionDuration을 초과합니다.

이 오류는 AWS CLI 또는 API에서 역할을 위임한 경우 발생할 수 있습니다.

assume-role-with-saml CLI 또는 AssumeRoleWithSAML API 작업을 사용하여 역할을 위임하는 경우 DurationSeconds 파라미터의 값을 지정할 수 있습니다. 값을 900초(15분)에서 해당 역할에 대한 최대 세션 지속 시간 설정까지 지정할 수 있습니다. 이 설정보다 높게 값을 지정하면 작업에 실패합니다. 예를 들어 세션 기간으로 12시간을 지정했는데 관리자가 최대 세션 기간으로 6시간을 설정하면 작업에 실패합니다. 역할에 대한 최댓값을 확인하는 방법을 알아보려면 역할에 대한 최대 세션 기간 설정 보기 섹션을 참조하세요.

오류: 응답에 필수 대상이 포함되어 있지 않습니다.

이 오류는 SAML 구성에서 대상 URL과 자격 증명 공급자가 일치하지 않는 경우 발생할 수 있습니다. ID 제공업체(IdP) 신뢰 당사자 식별자가 SAML 구성에 제공된 대상 URL(엔터티 ID)과 정확히 일치하는지 확인하세요.