GitHub - Amazon Kendra

GitHub

GitHub는 버전 제어와 함께 코드 저장 및 관리 서비스를 제공하는 소프트웨어 개발을 위한 웹 기반 호스팅 서비스입니다. GitHub 엔터프라이즈 클라우드(SaaS) 및 GitHub 엔터프라이즈 서버(온프레미스) 리포지토리 파일을 인덱싱하고, 문제 및 풀 요청, 문제 및 풀 요청 설명, 문제 및 풀 요청 설명 첨부 파일을 인덱싱하는 데 Amazon Kendra를 사용할 수 있습니다. 또한 특정 파일을 포함하거나 제외하도록 선택할 수 있습니다.

참고

Amazon Kendra에서 이제 업그레이드된 GitHub 커넥터를 지원합니다.

콘솔이 자동으로 업그레이드되었습니다. 콘솔에서 생성하는 모든 새 커넥터는 업그레이드된 아키텍처를 사용합니다. API를 사용하는 경우 이제 GitHubConfiguration 객체 대신 TemplateConfiguration 객체를 사용하여 커넥터를 구성해야 합니다.

이전 콘솔 및 API 아키텍처를 사용하여 구성된 커넥터는 구성된 대로 계속 작동합니다. 하지만 편집하거나 업데이트할 수는 없습니다. 커넥터 구성을 편집하거나 업데이트하려면 새 커넥터를 생성해야 합니다.

커넥터 워크플로를 업그레이드된 버전으로 마이그레이션하는 것이 좋습니다. 이전 아키텍처를 사용하여 구성된 커넥터에 대한 지원은 2024년 6월에 종료될 예정입니다.

Amazon Kendra 콘솔TemplateConfiguration API를 사용하여 Amazon Kendra를 GitHub 데이터 소스에 연결할 수 있습니다.

Amazon Kendra GitHub 데이터 소스 커넥터의 문제를 해결하려면 데이터 소스 문제 해결을 참조하세요.

지원 기능

Amazon Kendra GitHub 데이터 소스 커넥터에서 지원하는 기능은 다음과 같습니다.

  • 필드 매핑

  • 사용자 액세스 제어

  • 포함/제외 필터

  • 전체 및 증분 콘텐츠 동기화

  • Virtual Private Cloud(VPC)

사전 조건

Amazon Kendra를 사용하여 GitHub 데이터 소스를 인덱싱하려면 먼저 GitHub 및 AWS 계정에서 다음과 같이 변경하세요.

GitHub에서 다음 사항을 갖추었는지 확인하세요.

  • GitHub 조직에 대한 관리자 권한을 가진 GitHub 사용자를 생성했습니다.

  • GitHub에서 인증 자격 증명으로 사용할 개인 액세스 토큰을 구성했습니다. 개인 액세스 토큰 생성에 대한 GitHub 설명서를 참조하세요.

    참고

    보안 인증 정보와 보안 암호를 정기적으로 새로 고치거나 교체하는 것이 좋습니다. 보안을 위해 필요한 액세스 수준만 제공하세요. 데이터 소스, 커넥터 버전 1.0 및 2.0(해당하는 경우) 간에 보안 인증 정보와 보안 암호를 재사용하지 않는 것이 좋습니다.

  • 권장: 인증 자격 증명을 위한 OAuth 토큰을 구성했습니다. API 제한 한도 및 커넥터 성능을 높이려면 OAuth 토큰을 사용하세요. OAuth 인증에 대한 GitHub 설명서를 참조하세요.

  • 사용 중인 GitHub 서비스 유형에 대한 GitHub 호스트 URL을 기록했습니다. 예를 들어 GitHub 클라우드의 호스트 URL은 https://api.github.com, GitHub 서버의 호스트 URL은 https://on-prem-host-url/api/v3/일 수 있습니다.

  • 연결하려는 GitHub의 조직 이름, GitHub 엔터프라이즈 클라우드(SaaS) 계정 또는 GitHub 엔터프라이즈 서버(온프레미스) 계정을 기록해 두었습니다. GitHub 데스크톱에 로그인하고 프로필 사진 드롭다운에서 내 조직을 선택하여 조직 이름을 찾을 수 있습니다.

  • 선택 사항(서버만 해당): SSL 인증서를 생성하고 Amazon S3 버킷에 저장된 인증서의 경로를 복사했습니다. 보안 SSL 연결이 필요한 경우 이를 사용하여 GitHub에 연결합니다. OpenSSL을 사용하여 컴퓨터에 자체 서명된 X509 인증서를 생성하기만 하면 됩니다. OpenSSL을 사용하여 X509 인증서를 만드는 예제는 X509 인증서 생성 및 서명을 참조하세요.

  • 다음 권한을 추가했습니다.

    GitHub Enterprise Cloud(SaaS)

    • repo:status – 퍼블릭 및 프라이빗 리포지토리 커밋 상태에 대한 읽기/쓰기 액세스 권한을 부여합니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 프라이빗 리포지토리 커밋 상태 액세스 권한을 부여하는 데만 필요합니다.

    • repo_deployment - 퍼블릭 및 프라이빗 리포지토리의 배포 상태에 대한 액세스 권한을 부여합니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 배포 상태 액세스 권한을 부여하는 데만 필요합니다.

    • public_repo – 퍼블릭 리포지토리에 대한 액세스를 제한합니다. 여기에는 코드, 커밋 상태, 리포지토리 프로젝트, 공동 작업자, 퍼블릭 리포지토리 및 조직의 배포 상태에 대한 읽기/쓰기 액세스가 포함됩니다. 퍼블릭 리포지토리에 별표를 붙이는 데도 필요합니다.

    • repo:invite - 리포지토리에서 공동 작업할 수 있도록 초대에 대한 수락/거부 기능을 부여합니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 초대 액세스 권한을 부여하는 데만 필요합니다.

    • security_events – 권한 부여: 코드 스캔 API의 보안 이벤트에 대한 읽기 및 쓰기 액세스 권한입니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 보안 이벤트 액세스 권한을 부여하는 데만 필요합니다.

    • read:org - 조직 멤버십, 조직 프로젝트 및 팀 멤버십에 대한 읽기 전용 액세스 권한입니다.

    • user:email - 사용자의 이메일 주소에 대한 읽기 액세스 권한을 부여합니다. Amazon Kendra에서 ACL을 크롤링하는 데 필요합니다.

    • user:follow - 다른 사용자를 팔로우하거나 팔로우를 취소할 수 있는 액세스 권한을 부여합니다. Amazon Kendra에서 ACL을 크롤링하는 데 필요합니다.

    • read:user - 사용자의 프로필 데이터를 읽을 수 있는 액세스 권한을 부여합니다. Amazon Kendra에서 ACL을 크롤링하는 데 필요합니다.

    • workflow – GitHub 작업 워크플로 파일을 추가하고 업데이트할 수 있는 기능을 부여합니다. 같은 리포지토리의 다른 브랜치에 동일한 파일(경로와 콘텐츠가 모두 동일)이 있는 경우 워크플로 파일을 이 범위 없이 커밋할 수 있습니다.

    자세한 정보는 GitHub Docs의 OAuth 앱에 대한 범위를 참조하세요.

    For GitHub Enterprise Server(온프레미스)

    • repo:status – 퍼블릭 및 프라이빗 리포지토리 커밋 상태에 대한 읽기/쓰기 액세스 권한을 부여합니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 프라이빗 리포지토리 커밋 상태 액세스 권한을 부여하는 데만 필요합니다.

    • repo_deployment - 퍼블릭 및 프라이빗 리포지토리의 배포 상태에 대한 액세스 권한을 부여합니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 배포 상태 액세스 권한을 부여하는 데만 필요합니다.

    • public_repo – 퍼블릭 리포지토리에 대한 액세스를 제한합니다. 여기에는 코드, 커밋 상태, 리포지토리 프로젝트, 공동 작업자, 퍼블릭 리포지토리 및 조직의 배포 상태에 대한 읽기/쓰기 액세스가 포함됩니다. 퍼블릭 리포지토리에 별표를 붙이는 데도 필요합니다.

    • repo:invite - 리포지토리에서 공동 작업할 수 있도록 초대에 대한 수락/거부 기능을 부여합니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 초대 액세스 권한을 부여하는 데만 필요합니다.

    • security_events – 권한 부여: 코드 스캔 API의 보안 이벤트에 대한 읽기 및 쓰기 액세스 권한입니다. 이 범위는 코드에 액세스할 권한을 부여하지 않고 다른 사용자나 서비스에 보안 이벤트 액세스 권한을 부여하는 데만 필요합니다.

    • read:user - 사용자의 프로필 데이터를 읽을 수 있는 액세스 권한을 부여합니다. Amazon Q Business에서 ACL을 크롤링하는 데 필요합니다.

    • user:email - 사용자의 이메일 주소에 대한 읽기 액세스 권한을 부여합니다. Amazon Q Business에서 ACL을 크롤링하는 데 필요합니다.

    • user:follow - 다른 사용자를 팔로우하거나 팔로우를 취소할 수 있는 액세스 권한을 부여합니다. Amazon Q Business에서 ACL을 크롤링하는 데 필요합니다.

    • site_admin - 사이트 관리자에게 GitHub Enterprise Server Administration API 엔드포인트에 대한 액세스 권한을 부여합니다.

    • workflow – GitHub 작업 워크플로 파일을 추가하고 업데이트할 수 있는 기능을 부여합니다. 같은 리포지토리의 다른 브랜치에 동일한 파일(경로와 콘텐츠가 모두 동일)이 있는 경우 워크플로 파일을 이 범위 없이 커밋할 수 있습니다.

    자세한 내용은 GitHub 문서의 OAuth 앱에 대한 범위 및 GitHub 개발자의 Understanding scopes for OAuth Apps을 참조하세요.

  • GitHub 및 동일한 인덱스에 사용할 다른 여러 데이터 소스에서 각 문서가 고유한지 확인했습니다. 인덱스에 사용하려는 각 데이터 소스에는 데이터 소스 전체에서 동일한 문서가 포함되어서는 안 됩니다. 문서 ID는 인덱스 전체에 적용되며 인덱스별로 고유해야 합니다.

AWS 계정에서 다음을 확인하세요.

  • Amazon Kendra 인덱스를 만들었고 API를 사용하는 경우 인덱스 ID를 기록했습니다.

  • 데이터 소스에 대한 IAM 역할을 만들었고 API를 사용하는 경우 IAM 역할의 ARN을 기록했습니다.

    참고

    인증 유형과 보안 인증을 변경하는 경우 올바른 AWS Secrets Manager 보안 암호 ID에 액세스하는 IAM 역할을 업데이트해야 합니다.

  • GitHub 보안 인증 정보를 AWS Secrets Manager 보안 암호에 저장했고 API를 사용하는 경우 보안 암호의 ARN을 기록했습니다.

    참고

    보안 인증 정보와 보안 암호를 정기적으로 새로 고치거나 교체하는 것이 좋습니다. 보안을 위해 필요한 액세스 수준만 제공하세요. 데이터 소스, 커넥터 버전 1.0 및 2.0(해당하는 경우) 간에 보안 인증 정보와 보안 암호를 재사용하지 않는 것이 좋습니다.

기존 IAM 역할이나 보안 암호가 없는 경우 GitHub 데이터 소스를 Amazon Kendra에 연결할 때 콘솔을 사용하여 새 IAM 역할과 Secrets Manager 보안 암호를 만들 수 있습니다. API를 사용하는 경우 기존 IAM 역할 및 Secrets Manager 보안 암호의 ARN과 인덱스 ID를 제공해야 합니다.

연결 지침

GitHub 데이터 소스에 Amazon Kendra를 연결하려면 Amazon Kendra가 데이터에 액세스할 수 있도록 GitHub 데이터 소스의 필수 세부 정보를 제공해야 합니다. 아직 Amazon Kendra에 대해 GitHub를 구성하지 않은 경우 사전 조건을 참조하세요.

Console

Amazon Kendra를 GitHub에 연결하려면

  1. AWS Management 콘솔 에 로그인한 다음 Amazon Kendra 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 인덱스를 선택한 다음 인덱스 목록에서 사용할 인덱스를 선택합니다.

    참고

    인덱스 설정에서 사용자 액세스 제어 설정을 구성하거나 편집할 수 있습니다.

  3. 시작하기 페이지에서 데이터 소스 추가를 선택합니다.

  4. 데이터 소스 추가 페이지에서 GitHub 커넥터를 선택한 다음 커넥터 추가를 선택합니다. 버전 2(해당하는 경우)를 사용하는 경우 'V2.0' 태그가 있는 GitHub 커넥터를 선택합니다.

  5. 데이터 소스 세부 정보 지정 페이지에서 다음 정보를 입력합니다.

    1. 이름 및 설명에서 데이터 소스 이름에 데이터 소스의 이름을 입력합니다. 하이픈은 포함할 수 있지만 공백은 포함할 수 없습니다.

    2. (선택 사항) 설명 - 데이터 소스에 대한 선택적 설명을 입력합니다.

    3. 기본 언어 - 인덱스에 사용할 문서를 필터링할 언어를 선택합니다. 달리 지정하지 않는 한, 언어는 영어로 기본 설정됩니다. 문서 메타데이터에 지정된 언어가 선택한 언어보다 우선합니다.

    4. 태그새 태그 추가 - 필요에 따라 태그를 포함하여 리소스를 검색하고 필터링하거나 AWS 비용을 추적합니다.

    5. 다음을 선택합니다.

  6. 액세스 및 보안 정의 페이지에서 다음 정보를 입력합니다.

    1. GitHub 소스 - GitHub Enterprise CloudGitHub Enterprise Server 중에서 선택합니다.

    2. GitHub 호스트 URL - GitHub 클라우드 호스트 URL은 가령 https://api.github.com일 수 있으며, GitHub 서버 호스트 URL은 https://on-prem-host-url/api/v3/일 수 있습니다.

    3. GitHub 조직 이름 - GitHub 조직 이름을 입력합니다. GitHub 계정에서 조직 정보를 찾을 수 있습니다.

      참고

      GitHub 커넥터는 데이터 소스 커넥터 인스턴스당 단일 조직 크롤링을 지원합니다.

    4. 권한 부여 - 액세스 제어 목록(ACL)이 있고 이를 액세스 제어에 사용하려는 경우 문서에 대한 ACL 정보를 켜거나 끕니다. ACL은 사용자와 그룹이 액세스할 수 있는 문서를 지정합니다. ACL 정보는 검색 결과를 문서에 대한 사용자 또는 그룹의 액세스 권한을 기준으로 필터링하는 데 사용됩니다. 자세한 내용은 사용자 컨텍스트 필터링을 참조하세요.

    5. AWS Secrets Manager 보안 암호 - 기존 보안 암호를 선택하거나 GitHub 인증 자격 증명을 저장할 새 Secrets Manager 보안 암호를 생성합니다. 새 암호를 만들기로 선택하면 AWS Secrets Manager 보안 암호 창이 열립니다.

      1. AWS Secrets Manager 보안 암호 생성 창에 다음 정보를 입력합니다.

        1. 보안 암호 이름 - 보안 암호의 이름. 'AmazonKendra-GitHub-'라는 접두사가 보안 암호 이름에 자동으로 추가됩니다.

        2. GitHub 토큰의 경우 - GitHub에 구성된 인증 자격 증명 값을 입력합니다.

      2. 보안 암호를 저장하고 추가합니다.

    6. Virtual Private Cloud(VPC) - VPC를 사용하기로 선택할 수 있습니다. 그렇다면 서브넷VPC 보안 그룹을 추가해야 합니다.

    7. ID 크롤러 - Amazon Kendra ID 크롤러를 켤지를 지정합니다. ID 크롤러는 문서에 대한 액세스 제어 목록(ACL) 정보를 사용하여 문서에 대한 사용자 또는 그룹 액세스 권한을 기준으로 검색 결과를 필터링합니다. 문서에 대한 ACL이 있고 ACL을 사용하기로 결정했다면 Amazon Kendra의 ID 크롤러를 켜서 검색 결과의 사용자 컨텍스트 필터링을 구성할 수 있습니다. 그렇지 않은 경우 ID 크롤러를 끄면 모든 문서를 공개적으로 검색할 수 있습니다. ID 크롤러가 꺼져 있는 상태에서 문서에 대한 액세스 제어를 사용하려는 경우, PutPrincipalMapping API를 사용하여 사용자 컨텍스트 필터링을 위한 사용자 및 그룹 액세스 정보를 업로드할 수도 있습니다.

    8. IAM 역할 - 기존 IAM 역할을 선택하거나 새 IAM 역할을 생성하여 리포지토리 보안 인증 정보에 액세스하고 콘텐츠를 인덱싱합니다.

      참고

      인덱스에 사용되는 IAM 역할은 데이터 소스에 사용할 수 없습니다. 기존 역할을 인덱스나 FAQ에 사용하는지 확실하지 않은 경우 새 역할 생성을 선택하여 오류를 방지하세요.

    9. 다음을 선택합니다.

  7. 동기화 설정 구성 페이지에 다음 정보를 입력합니다.

    1. 리포지토리 선택 - 모든 리포지토리를 크롤링하거나 선택합니다.

      크롤링하기로 고른 경우 리포지토리를 선택하고, 리포지토리 이름을 추가한 후 필요에 따라 특정 브랜치 이름을 추가합니다.

    2. 콘텐츠 유형 - 파일, 문제, 풀 요청 등에서 크롤링할 콘텐츠 유형을 선택합니다.

    3. 정규식 패턴 - 특정 페이지 및 자산을 포함하거나 제외하기 위한 정규 표현식 패턴을 추가합니다.

    4. 동기화 모드 - 데이터 소스 콘텐츠가 변경될 때 인덱스를 업데이트하는 방법을 선택합니다. 데이터 소스를 Amazon Kendra와 처음 동기화할 때 기본적으로 모든 콘텐츠가 크롤링되어 인덱싱됩니다. 동기화 모드 옵션으로 전체 동기화를 선택하지 않은 경우에도 초기 동기화에 실패한 경우 데이터의 전체 동기화를 실행해야 합니다.

      • 전체 동기화: 데이터 소스가 인덱스와 동기화될 때마다 기존 콘텐츠를 교체하면서 모든 콘텐츠를 새로 인덱싱합니다.

      • 신규, 수정된 동기화: 데이터 소스가 인덱스와 동기화될 때마다 신규 및 수정된 콘텐츠만 인덱싱합니다. Amazon Kendra는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 사항을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 인덱싱할 수 있습니다.

      • 신규, 수정, 삭제된 동기화: 데이터 소스가 인덱스와 동기화될 때마다 신규, 수정 및 삭제된 콘텐츠만 인덱싱합니다. Amazon Kendra는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 사항을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 인덱싱할 수 있습니다.

    5. 동기화 실행 일정빈도 - 데이터 소스 콘텐츠를 동기화하고 인덱스를 업데이트할 빈도를 선택합니다.

    6. 다음을 선택합니다.

  8. 필드 매핑 설정 페이지에 다음 정보를 입력합니다.

    1. 기본 데이터 소스 필드 - Amazon Kendra에서 생성한 기본 데이터 소스 필드 중에서 인덱스에 매핑할 필드를 선택합니다.

    2. 필드 추가 - 사용자 지정 데이터 소스 필드를 추가하려면 매핑할 인덱스 필드 이름과 필드 데이터 유형을 만듭니다.

    3. 다음을 선택합니다.

  9. 검토 및 생성 페이지에서 입력한 정보가 정확한지 확인한 다음 데이터 소스 추가를 선택합니다. 이 페이지에서 정보를 편집하도록 선택할 수도 있습니다. 데이터 소스가 성공적으로 추가된 후 데이터 소스 페이지에 데이터 소스가 표시됩니다.

API

Amazon Kendra를 GitHub에 연결하려면

TemplateConfiguration API를 사용하여 데이터 소스 스키마의 JSON을 지정해야 합니다. 다음 정보를 제공해야 합니다.

  • 데이터 소스 - TemplateConfiguration JSON 스키마를 사용할 때 데이터 소스 유형을 GITHUB로 지정합니다. 또한, CreateDataSource API를 직접 호출할 때 데이터 소스를 TEMPLATE으로 지정합니다.

  • GitHub 유형 - 유형을 SAAS 또는 ON_PREMISE로 지정합니다.

  • 호스트 URL - GitHub 호스트 URL 또는 API 엔드포인트 URL을 지정합니다. 예를 들어, GitHub SaaS/Enterprise Cloud를 사용하는 경우 호스트 URL은 https://api.github.com일 수 있고 GitHub 온프레미스/Enterprise Server의 경우 호스트 URL은 https://on-prem-host-url/api/v3/일 수 있습니다.

  • 조직 이름 - GitHub 계정의 조직 이름을 지정합니다. GitHub 데스크톱에 로그인하고 프로필 사진 드롭다운에서 내 조직을 선택하여 조직 이름을 찾을 수 있습니다.

  • 동기화 모드 - 데이터 소스 콘텐츠가 변경될 때 Amazon Kendra가 인덱스를 업데이트하는 방법을 지정합니다. 데이터 소스를 Amazon Kendra와 처음 동기화할 때 기본적으로 모든 콘텐츠가 크롤링되어 인덱싱됩니다. 동기화 모드 옵션으로 전체 동기화를 선택하지 않은 경우에도 초기 동기화에 실패한 경우 데이터의 전체 동기화를 실행해야 합니다. 다음 중에서 선택할 수 있습니다.

    • FORCED_FULL_CRAWL은 데이터 소스가 인덱스와 동기화될 때마다 기존 콘텐츠를 교체하면서 모든 콘텐츠를 새로 인덱싱합니다.

    • FULL_CRAWL은 데이터 소스가 인덱스와 동기화될 때마다 신규, 수정 및 삭제된 콘텐츠만 인덱싱합니다. Amazon Kendra는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 사항을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 인덱싱할 수 있습니다.

    • CHANGE_LOG는 데이터 소스가 인덱스와 동기화될 때마다 신규 및 수정된 콘텐츠만 인덱싱합니다. Amazon Kendra는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 사항을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 인덱싱할 수 있습니다.

  • ID 크롤러 - Amazon Kendra ID 크롤러를 켤지를 지정합니다. ID 크롤러는 문서에 대한 액세스 제어 목록(ACL) 정보를 사용하여 문서에 대한 사용자 또는 그룹 액세스 권한을 기준으로 검색 결과를 필터링합니다. 문서에 대한 ACL이 있고 ACL을 사용하기로 결정했다면 Amazon Kendra의 ID 크롤러를 켜서 검색 결과의 사용자 컨텍스트 필터링을 구성할 수 있습니다. 그렇지 않은 경우 ID 크롤러를 끄면 모든 문서를 공개적으로 검색할 수 있습니다. ID 크롤러가 꺼져 있는 상태에서 문서에 대한 액세스 제어를 사용하려는 경우, PutPrincipalMapping API를 사용하여 사용자 컨텍스트 필터링을 위한 사용자 및 그룹 액세스 정보를 업로드할 수도 있습니다.

  • 보안 암호 Amazon 리소스 이름(ARN) - GitHub 계정에 대한 인증 자격 증명이 포함된 Secrets Manager 보안 암호의 Amazon 리소스 이름(ARN)을 제공합니다. 보안 암호는 다음 키가 있는 JSON 구조로 저장됩니다.

    { "personalToken": "token" }
  • IAM 역할 - Secrets Manager 보안 암호에 액세스하고 GitHub 커넥터 및 Amazon Kendra에 필요한 공개 API를 호출할 수 있는 권한이 있는 IAM 역할을 제공하기 위해 CreateDataSource를 호출할 때 RoleArn을 지정합니다. 자세한 내용은 GitHub 데이터 소스에 대한 IAM 역할을 참조하세요.

다음 선택적 기능도 추가할 수 있습니다.

  • Virtual Private Cloud(VPC) - CreateDataSource를 호출할 때 VpcConfiguration을 지정합니다. 자세한 내용은 Amazon VPC를 사용하도록 Amazon Kendra 구성 섹션을 참조하세요.

    참고

    GitHub 서버를 사용하는 경우 GitHub 서버에 연결하려면 Amazon VPC를 사용해야 합니다.

  • 리포지토리 필터 - 리포지토리를 이름과 브랜치 이름으로 필터링합니다.

  • 문서/콘텐츠 유형 - 리포지토리 문서, 문제, 문제 설명, 문제 설명 첨부 파일, 풀 요청, 풀 요청 설명, 풀 요청 설명 첨부 파일을 크롤링할지를 지정합니다.

  • 포함 및 제외 필터 - 특정 파일 및 폴더를 포함할지 또는 제외할지를 지정합니다.

    참고

    대부분의 데이터 소스는 필터라고 하는 포함 또는 제외 패턴인 정규 표현식 패턴을 사용합니다. 포함 필터를 지정하는 경우 포함 필터와 일치하는 콘텐츠만 인덱싱됩니다. 포함 필터와 일치하지 않는 문서는 인덱싱되지 않습니다. 포함 및 제외 필터를 지정하는 경우 제외 필터와 일치하는 문서는 포함 필터와 일치하더라도 인덱싱되지 않습니다.

  • 액세스 제어 목록(ACL) - ACL이 있고 이를 액세스 제어에 사용하려는 경우 문서에 대한 ACL 정보를 크롤링할지를 지정합니다. ACL은 사용자와 그룹이 액세스할 수 있는 문서를 지정합니다. ACL 정보는 검색 결과를 문서에 대한 사용자 또는 그룹의 액세스 권한을 기준으로 필터링하는 데 사용됩니다. 자세한 내용은 사용자 컨텍스트 필터링을 참조하세요.

  • 필드 매핑 - GitHub 데이터 소스 필드를 Amazon Kendra 인덱스 필드에 매핑하기로 선택합니다. 문서 필드, 커밋, 문제, 문제 첨부 파일, 문제 설명, 풀 요청, 풀 요청 첨부 파일, 풀 요청 설명 등을 포함할 수 있습니다. 자세한 내용을 알아보려면 데이터 소스 필드 매핑을 참조하세요.

    참고

    Amazon Kendra가 문서를 검색하려면 문서 본문 필드 또는 문서에 해당하는 문서 본문이 필요합니다. 데이터 소스의 문서 본문 필드 이름을 인덱스 필드 이름 _document_body에 매핑해야 합니다. 다른 모든 필드는 선택 사항입니다.

구성해야 할 기타 중요한 JSON 키 목록은 GitHub 템플릿 스키마를 참조하세요.

자세히 알아보기

GitHub 데이터 소스와 Amazon Kendra의 통합에 대한 자세한 내용은 다음을 참조하세요.