IAM에서 OIDC(OpenID Connect) ID 공급자 생성 - AWS Identity and Access Management

IAM에서 OIDC(OpenID Connect) ID 공급자 생성

IAM OIDC 자격 증명 공급자는 IAM의 엔터티로서 Google이나 Salesforce와 같은 OpenID Connect(OIDC) 표준을 지원하는 외부 자격 증명 공급자(IdP) 서비스를 설명합니다. IAM OIDC 자격 증명 공급자는 OIDC 호환 IdP와 AWS 계정 간에 신뢰를 구축하려 할 때 사용합니다. 예를 들어 AWS 리소스에 액세스하는 데 필요한 모바일 앱이나 웹 애플리케이션을 개발하면서 사용자 지정 로그인 코드를 생성하거나 자신의 사용자 자격 증명을 관리하지 않을 때 유용합니다. 이 시나리오에 대한 자세한 내용은 OIDC 페더레이션를 참조하세요.

AWS Management Console, AWS Command Line Interface, Tools for Windows PowerShell 또는 IAM API 호출을 사용하여 IAM OIDC 자격 증명 공급자를 생성하고 관리할 수 있습니다.

IAM OIDC 자격 증명 공급자를 생성한 후 1개 이상의 IAM 역할을 생성해야 합니다. 역할은 AWS의 자격 증명으로서 자신만의 고유한 자격 증명이 없지만(사용자가 그러하듯이), 이 콘텍스트에서는 조직의 IdP에 의해 인증된 페더레이션 사용자에게 동적으로 할당됩니다. 그 역할은 조직의 IdP가 AWS에 액세스하기 위해 임시 보안 자격 증명을 요청할 수 있도록 허용합니다. 역할에 할당된 정책은 페더레이션 사용자가 AWS에서 하도록 허용된 것이 무엇인지 결정합니다. 서드 파티 자격 증명 공급자에 대한 역할을 생성하려면 타사 ID 제공업체의 역할 생성(페더레이션) 섹션을 참조하세요.

중요

oidc-provider 리소스를 지원하는 작업에 대해 ID 기반 정책을 구성하는 경우. IAM은 지정된 경로를 포함한 전체 OIDC ID 공급자 URL을 평가합니다. OIDC ID 공급자 URL에 경로가 있는 경우 그 경로를 oidc-providerARN에 Resource 요소 값으로 포함해야 합니다. URL 도메인에 슬래시와 와일드카드(/*)를 추가할 수도 있고 URL 경로의 어느 지점에서든 와일드카드 문자(* 및?)를 사용할 수도 있습니다. 요청의 OIDC ID 공급자 URL이 정책의 Resource 요소에 설정된 값과 일치하지 않는 경우 요청은 실패합니다.

IAM OIDC 페더레이션과 관련된 일반적인 문제를 해결하려면 AWS re:Post의 OIDC 관련 오류 해결을 참조하세요.

필수 조건: 자격 증명 공급자의 구성 검증

IAM OIDC 자격 증명 공급자를 생성하려면 IdP에서 다음 정보를 가져와야 합니다. OIDC 공급자 구성 정보를 얻는 방법에 대한 자세한 정보는 해당 IdP 설명서를 참조하세요.

  1. 공개적으로 사용 가능한 OIDC 자격 증명 공급자 URL을 확인하세요. URL은 https://로 시작해야 합니다. OIDC 표준에 따라 경로 구성 요소는 허용되지만 쿼리 파라미터는 허용되지 않습니다. 일반적으로 URL은 https://server.example.org 또는 https://example.com 같은 하나의 호스트 이름으로만 구성됩니다. URL은 포트 번호를 포함하지 않아야 합니다.

  2. OIDC 자격 증명 공급자의 URL 끝에 /.well-known/openid-configuration을 추가하면 공개적으로 사용 가능한 공급자 구성 문서와 메타데이터를 확인할 수 있습니다. OpenID Connect 공급자 검색 엔드포인트 URL에서 검색할 수 있는 공급자의 구성 문서 및 메타데이터가 포함된 JSON 형식의 검색 문서가 있어야 합니다.

  3. 공급자의 구성 정보에 다음 값이 포함되어 있는지 확인하세요. openid-configuration에 다음 필드 중 하나라도 없는 경우 검색 문서를 업데이트해야 합니다. 이 프로세스는 자격 증명 공급자에 따라 다를 수 있으므로 IdP의 설명서에 따라 이 작업을 완료하세요.

    • issuer: 도메인의 URL입니다.

    • jwks_uri: IAM이 퍼블릭 키를 가져오는 JSON Web Key Set(JWKS) 엔드포인트입니다. 자격 증명 공급자는 openid-configuration에 JSON Web Key Set(JWKS) 엔드포인트를 포함해야 합니다. 이 URI는 자격 증명 공급자의 서명된 토큰을 확인하는 데 사용되는 퍼블릭 키를 가져올 위치를 정의합니다.

    • claim s_supported: AWS가 IAM 정책에서 페더레이션 사용자의 권한 검사에 사용하는 필수 속성이 IdP의 OIDC 인증 응답에 포함되어 있는지 확인하도록 도와주는 사용자 관련 정보입니다. 클레임에 사용할 수 있는 IAM 조건 키 목록은 AWS OIDC 페더레이션에서 사용 가능한 키를 참조하세요.

      • aud: IdP가 JSON Web Token(JWT)으로 발급하는 audience 클레임 값을 확인해야 합니다. audience(aud) 클레임은 애플리케이션별로 다르며 토큰의 의도된 수신자를 식별합니다. 모바일 또는 웹 앱을 OpenID Connect 공급자에 등록하면 애플리케이션을 식별하는 클라이언트 ID가 설정됩니다. 클라이언트 ID는 인증을 위해 aud 클레임에 전달되는 앱의 고유 식별자입니다. IAM OIDC 자격 증명 공급자를 생성할 때 aud 클레임이 Audience 값과 일치해야 합니다.

      • iat: 클레임에는 ID 토큰이 발급된 시간을 나타내는 iat 값이 포함되어야 합니다.

      • iss: 자격 증명 공급자의 URL입니다. URL은 https://로 시작해야 하며 IAM에 제공된 공급자 URL과 일치해야 합니다. OIDC 표준에 따라 경로 구성 요소는 허용되지만 쿼리 파라미터는 허용되지 않습니다. 일반적으로 URL은 https://server.example.org 또는 https://example.com 같은 하나의 호스트 이름으로만 구성됩니다. URL은 포트 번호를 포함하지 않아야 합니다.

    • response_types_supported: id_token

    • subject_types_supported: public

    • id_token_signing_alg_values_supported: RS256

    참고

    아래 예제에서 custom과 같은 추가 클레임을 포함할 수 있지만 AWS STS는 이 클레임을 무시합니다.

    { "issuer": "https://example-domain.com", "jwks_uri": "https://example-domain.com/jwks/keys", "claims_supported": [ "aud", "iat", "iss", "name", "sub", "custom" ], "response_types_supported": [ "id_token" ], "id_token_signing_alg_values_supported": [ "RS256" ], "subject_types_supported": [ "public" ] }

OIDC 공급자 생성 및 관리(콘솔)

다음 지침에 따라 AWS Management Console에서 IAM OIDC 자격 증명 공급자를 생성 및 관리합니다.

중요

Google, Facebook 또는 Amazon Cognito의 OIDC 자격 증명 공급자를 사용하는 경우 이 절차에 따라 IAM 자격 증명 공급자를 별도로 생성하지 마세요. 이러한 OIDC 자격 증명 공급자는 이미 AWS에 내장되어 있고 용도에 맞게 사용할 수 있습니다. 대신 단계에 따라 자격 증명 공급자의 새 역할을 생성합니다. 자세한 내용은 OpenID Connect 페더레이션을 위한 역할 생성(콘솔) 섹션을 참조하세요.

IAM OIDC 자격 증명 공급자를 생성하려면(콘솔)
  1. IAM OIDC 자격 증명 공급자를 생성하려면 먼저 애플리케이션을 IdP에 등록하여 클라이언트 ID를 받아야 합니다. 클라이언트 ID(사용자라고도 불림)는 앱을 IdP에 등록할 때 발급되는 고유의 앱 식별자입니다. 클라이언트 ID를 얻는 방법에 대한 자세한 정보는 해당 IdP에 대한 설명서를 참조하세요.

    참고

    AWS는 신뢰할 수 있는 루트 CA(인증 기관) 라이브러리를 사용해 OIDC ID 공급자(IdP)와의 통신을 보호하여 JWKS(JSON 웹 키 세트) 엔드포인트의 TLS 인증서를 확인합니다. OIDC IdP가 이러한 신뢰할 수 있는 CA 중 하나에서 서명하지 않은 인증서를 사용하는 경우에만 IdP의 구성에 설정된 지문을 사용하여 통신을 보호합니다. AWS는 TLS 인증서를 검색할 수 없거나 TLS v1.3이 필요한 경우 지문 확인으로 대체합니다.

  2. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  3. 탐색 창에서 [자격 증명 공급자(Identity providers)]를 선택한 다음 [공급자 추가(Add provider)]를 선택합니다.

  4. [공급자 구성(Configure provider)]에 대해 [OpenID Connect]를 선택합니다.

  5. Provider URL(공급자 URL)에서 IdP의 URL을 입력합니다. URL은 다음과 같은 제한을 준수해야 합니다.

    • URL은 대/소문자를 구분합니다.

    • URL은 https://로 시작해야 합니다.

    • URL은 포트 번호를 포함하지 않아야 합니다.

    • AWS 계정 내에서 각 IAM OIDC 자격 증명 공급자는 고유한 URL을 사용해야 합니다. AWS 계정에서 OpenID Connect 공급자에 이미 사용된 URL을 제출하려고 하면 오류가 발생합니다.

  6. 대상(Audience) 필드에 IdP를 등록하고 단계 1에서 받은 애플리케이션의 클라이언트 ID를 입력하면 AWS에게도 요청됩니다. IdP에 등록한 클라이언트 ID(사용자들이라고도 불림)가 더 있는 경우 나중에 공급자 세부 정보 페이지에서 추가할 수 있습니다.

    참고

    IdP JWT 토큰에 azp 클레임이 포함된 경우 이 값을 Audience 값으로 입력하세요.

    OIDC ID 제공업체는 토큰에 audazp 클레임을 모두 설정하고, AWS STS에서는 azp 클레임의 값을 aud 클레임으로 사용합니다.

  7. (선택 사항) 태그 추가(Add tags)에 키 값 페어를 추가하여 IdP를 식별하고 구성할 수 있습니다. 태그를 사용하여 AWS 리소스에 대한 액세스를 제어할 수도 있습니다. IAM OIDC 자격 증명 공급자 태깅에 대한 자세한 내용은 OpenID Connect(OIDC) ID 제공업체 태깅 섹션을 참조하세요. 태그 추가를 선택합니다. 각 태그 키 값 페어의 값을 입력합니다.

  8. 제공한 정보를 확인합니다. 완료되면 [공급자 추가(Add provider)]를 선택합니다. IAM에서는 OIDC IdP 서버 인증서의 최상위 중간 CA 지문을 검색하고 사용하여 IAM OIDC ID 제공업체를 생성하려고 시도합니다.

    참고

    OIDC ID 제공업체의 인증서 체인은 도메인 또는 발급자 URL로 시작하고, 그다음으로 중간 인증서, 마지막으로는 루트 인증서여야 합니다. 인증서 체인 순서가 다른 경우 또는 중복되거나 추가 인증서가 포함된 경우 서명 불일치 오류가 발생하고 STS는 JSON 웹 토큰(JWT) 유효성 검사에 실패합니다. 서버에서 반환된 체인의 인증서 순서를 수정하여 오류를 해결하세요. 인증서 체인 표준에 대한 자세한 내용은 RFC 시리즈 웹 사이트에서 RFC 5246의 certificate_list를 참조하세요.

  9. 자격 증명 공급자에 IAM 역할을 할당하여 자격 증명 공급자가 관리하는 외부 사용자 자격 증명에 계정의 AWS 리소스에 대한 액세스 권한을 부여합니다. ID 연동을 위한 역할을 생성하는 방법에 대한 자세한 내용은 타사 ID 제공업체의 역할 생성(페더레이션) 섹션을 참조하세요.

    참고

    역할 신뢰 정책에 사용되는 OIDC IdP는 이를 신뢰하는 역할과 동일한 계정에 있어야 합니다.

IAM OIDC 자격 증명 공급자에 대한 지문을 추가하거나 제거하려면(콘솔)
참고

AWS는 신뢰할 수 있는 루트 CA(인증 기관) 라이브러리를 사용해 OIDC ID 공급자(IdP)와의 통신을 보호하여 JWKS(JSON 웹 키 세트) 엔드포인트의 TLS 인증서를 확인합니다. OIDC IdP가 이러한 신뢰할 수 있는 CA 중 하나에서 서명하지 않은 인증서를 사용하는 경우에만 IdP의 구성에 설정된 지문을 사용하여 통신을 보호합니다. AWS는 TLS 인증서를 검색할 수 없거나 TLS v1.3이 필요한 경우 지문 확인으로 대체합니다.

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 [자격 증명 공급자(Identity providers)]를 선택합니다. 그런 다음 업데이트할 IAM 자격 증명 공급자의 이름을 선택합니다.

  3. 엔드포인트 확인 탭을 선택한 다음 지문 섹션에서 관리를 선택합니다. 새 지문 값을 입력하려면 [지문 추가(Add thumbprint)]를 선택합니다. 지문을 제거하려면 삭제할 지문 옆에 있는 [제거(Remove)]를 선택합니다.

    참고

    IAM OIDC 자격 증명 공급자마다 한 개 이상의 지문이 있어야 하며 최대 5개까지 가능합니다.

    작업을 마쳤으면 [변경 사항 저장(Save changes)]을 선택합니다.

IAM OIDC 자격 증명 공급자에 대한 대상을 추가하려면(콘솔)
  1. 탐색 창에서 자격 증명 공급자(Identity providers)를 선택한 다음 업데이트할 IAM 자격 증명 공급자의 이름을 선택합니다.

  2. [대상(Audiences)] 섹션에서 [작업(Actions)]을 선택하고 [대상 추가(Add audience)]를 선택합니다.

  3. IdP에 등록하고 단계 1에서 받은 애플리케이션의 클라이언트 ID를 입력하면 AWS로 요청이 전송됩니다. 그런 다음 [대상 추가(Add audience)]를 선택합니다.

    참고

    IAM OIDC 자격 증명 공급자마다 한 명 이상의 사용자가 있어야 하며 최대 100명까지 가능합니다.

IAM OIDC 자격 증명 공급자에 대한 대상을 제거하려면(콘솔)
  1. 탐색 창에서 자격 증명 공급자(Identity providers)를 선택한 다음 업데이트할 IAM 자격 증명 공급자의 이름을 선택합니다.

  2. [대상(Audiences)] 섹션에서 제거할 대상 옆에 있는 라디오 단추를 선택한 다음 [작업(Actions)]을 선택합니다.

  3. [대상 제거(Remove audience)]를 선택합니다. 새 창이 열립니다.

  4. 대상을 제거하면 해당 대상과 연동된 자격 증명에서 해당 대상에 연결된 역할을 수임할 수 없습니다. 창에서 경고를 읽고 필드에 remove라는 단어를 입력하여 대상 제거를 확인합니다.

  5. [제거(Remove)]를 선택하여 대상을 제거합니다.

IAM OIDC 자격 증명 공급자를 삭제하려면(콘솔)
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 [자격 증명 공급자(Identity providers)]를 선택합니다.

  3. 삭제할 IAM 자격 증명 공급자 옆의 확인란을 선택합니다. 새 창이 열립니다.

  4. 필드에 단어 delete를 입력하여 공급자 삭제를 확인합니다. 그런 다음 삭제를 선택합니다.

IAM OIDC 자격 증명 공급자 생성 및 관리(AWS CLI)

다음 AWS CLI 명령을 사용하여 IAM OIDC 자격 증명 공급자를 생성하고 관리할 수 있습니다.

IAM OIDC 자격 증명 공급자를 생성하려면(AWS CLI)
  1. (선택 사항) AWS 계정의 전체 IAM OIDC 자격 증명 공급자 목록을 가져오려면 다음 명령을 실행합니다.

  2. 새 IAM OIDC 자격 증명 공급자를 생성하려면 다음 명령을 실행합니다.

기존 IAM OIDC 자격 증명 공급자의 서버 인증서 지문 목록을 업데이트하려면(AWS CLI)
기존 IAM OIDC 자격 증명 공급자를 태깅하려면(AWS CLI)
기존 IAM OIDC 자격 증명 공급자의 태그를 나열하려면(AWS CLI)
IAM OIDC 자격 증명 공급자에서 태그를 제거하려면(AWS CLI)
기존 IAM OIDC 자격 증명 공급자에서 클라이언트 ID를 추가하거나 제거하려면(AWS CLI)
  1. (선택 사항) AWS 계정의 전체 IAM OIDC 자격 증명 공급자 목록을 가져오려면 다음 명령을 실행합니다.

  2. (선택 사항) IAM OIDC 자격 증명 공급자에 대한 자세한 정보를 보려면 다음 명령을 실행합니다.

  3. 기존 IAM OIDC 자격 증명 공급자에 새로운 클라이언트 ID를 추가하려면 다음 명령을 실행합니다.

  4. 기존 IAM OIDC 자격 증명 공급자에서 클라이언트를 제거하려면 다음 명령을 실행합니다.

IAM OIDC 자격 증명 공급자를 삭제하려면(AWS CLI)
  1. (선택 사항) AWS 계정의 전체 IAM OIDC 자격 증명 공급자 목록을 가져오려면 다음 명령을 실행합니다.

  2. (선택 사항) IAM OIDC 자격 증명 공급자에 대한 자세한 정보를 보려면 다음 명령을 실행합니다.

  3. IAM OIDC 자격 증명 공급자를 삭제하려면 다음 명령을 실행합니다.

OIDC 자격 증명 공급자 생성 및 관리(AWS API)

다음 IAM API 명령을 사용하여 OIDC 공급자를 생성하고 관리할 수 있습니다.

IAM OIDC 자격 증명 공급자를 생성하려면(AWS API)
  1. (선택 사항) AWS 계정의 전체 IAM OIDC 자격 증명 공급자 목록을 가져오려면 다음 작업을 호출합니다.

  2. 새로운 IAM OIDC 자격 증명 공급자를 생성하려면 다음 작업을 호출합니다.

기존 IAM OIDC 자격 증명 공급자의 서버 인증서 지문 목록을 업데이트하려면(AWS API)
기존 IAM OIDC 자격 증명 공급자를 태깅하려면(AWS API)
기존 IAM OIDC 자격 증명 공급자의 태그를 나열하려면(AWS API)
기존 IAM OIDC 자격 증명 공급자에서 태그를 제거하려면(AWS API)
  • 기존 IAM OIDC 자격 증명 공급자에서 태그를 제거하려면 다음 작업을 호출합니다.

기존 IAM OIDC 자격 증명 공급자에서 클라이언트 ID를 추가하거나 제거하려면(AWS API)
  1. (선택 사항) AWS 계정의 전체 IAM OIDC 자격 증명 공급자 목록을 가져오려면 다음 작업을 호출합니다.

  2. (선택 사항) IAM OIDC 자격 증명 공급자에 대한 자세한 정보를 보려면 다음 작업을 호출합니다.

  3. 기존 IAM OIDC 자격 증명 공급자에 새로운 클라이언트 ID를 추가하려면 다음 작업을 호출합니다.

  4. 기존 IAM OIDC 자격 증명 공급자에서 클라이언트 ID를 제거하려면 다음 작업을 호출합니다.

IAM OIDC 자격 증명 공급자를 삭제하려면(AWS API)
  1. (선택 사항) AWS 계정의 전체 IAM OIDC 자격 증명 공급자 목록을 가져오려면 다음 작업을 호출합니다.

  2. (선택 사항) IAM OIDC 자격 증명 공급자에 대한 자세한 정보를 보려면 다음 작업을 호출합니다.

  3. IAM OIDC 자격 증명 공급자를 삭제하려면 다음 작업을 호출합니다.