기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GitHub
GitHub는 버전 제어와 함께 코드 저장 및 관리 서비스를 제공하는 소프트웨어 개발을 위한 웹 기반 호스팅 서비스입니다. Amazon Kendra 를 사용하여 GitHub Enterprise Cloud(SaaS) 및 GitHub Enterprise Server(온 프레미스) 리포지토리 파일을 인덱싱하고, 요청을 발급 및 가져오고, 요청 설명을 발급 및 가져오고, 요청 설명 첨부 파일을 발급 및 가져올 수 있습니다. 또한 특정 파일을 포함하거나 제외하도록 선택할 수 있습니다.
참고
Amazon Kendra 는 이제 업그레이드된 GitHub 커넥터를 지원합니다.
콘솔이 자동으로 업그레이드되었습니다. 콘솔에서 생성하는 모든 새 커넥터는 업그레이드된 아키텍처를 사용합니다. API를 사용하는 경우 이제 TemplateConfiguration 객체 대신 GitHubConfiguration
객체를 사용하여 커넥터를 구성해야 합니다.
이전 콘솔 및 API 아키텍처를 사용하여 구성된 커넥터는 구성된 대로 계속 작동합니다. 하지만 편집하거나 업데이트할 수는 없습니다. 커넥터 구성을 편집하거나 업데이트하려면 새 커넥터를 생성해야 합니다.
커넥터 워크플로를 업그레이드된 버전으로 마이그레이션하는 것이 좋습니다. 이전 아키텍처를 사용하여 구성된 커넥터에 대한 지원은 2024년 6월까지 종료될 예정입니다.
Amazon Kendra 콘솔
Amazon Kendra GitHub 데이터 소스 커넥터 문제 해결은 섹션을 참조하세요데이터 소스 문제 해결.
지원 기능
Amazon Kendra GitHub 데이터 소스 커넥터는 다음 기능을 지원합니다.
-
필드 매핑
-
사용자 액세스 제어
-
포함/제외 필터
-
전체 및 증분 콘텐츠 동기화
-
Virtual Private Cloud(VPC)
사전 조건
Amazon Kendra 를 사용하여 GitHub 데이터 소스를 인덱싱하려면 먼저 GitHub 및 AWS 계정에서 이러한 변경을 수행합니다.
GitHub에서 다음 사항을 갖추었는지 확인하세요.
-
GitHub 조직에 대한 관리자 권한을 가진 GitHub 사용자를 생성했습니다.
-
Git Hub에서 인증 자격 증명으로 사용할 개인 액세스 토큰을 구성했습니다. 개인 액세스 토큰 생성에 대한 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 Enterprise Cloud(SaaS) 계정 또는 GitHub Enterprise Server(온프레미스) 계정의 조직 이름을 기록했습니다. 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가 ACLs을 크롤링하는 데 필요합니다. -
user:follow
- 다른 사용자를 팔로우하거나 팔로우를 취소할 수 있는 액세스 권한을 부여합니다. Amazon Kendra가 ACLs을 크롤링하는 데 필요합니다. -
read:user
- 사용자의 프로필 데이터를 읽을 수 있는 액세스 권한을 부여합니다. Amazon Kendra가 ACLs을 크롤링하는 데 필요합니다. -
workflow
- GitHub Actions 워크플로 파일을 추가하고 업데이트할 수 있는 기능을 부여합니다. 같은 리포지토리의 다른 브랜치에 동일한 파일(경로와 콘텐츠가 모두 동일)이 있는 경우 워크플로 파일을 이 범위 없이 커밋할 수 있습니다.
자세한 정보는 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 Actions 워크플로 파일을 추가하고 업데이트할 수 있는 기능을 부여합니다. 같은 리포지토리의 다른 브랜치에 동일한 파일(경로와 콘텐츠가 모두 동일)이 있는 경우 워크플로 파일을 이 범위 없이 커밋할 수 있습니다.
자세한 내용은 GitHub 문서의 OAuth 앱 범위
및 GitHub 개발자의 OAuth 앱 범위 이해를 참조하세요 . -
-
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 데이터 소스를 연결할 때 콘솔을 사용하여 새 IAM 역할 및 Secrets Manager 보안 암호를 생성할 수 있습니다 Amazon Kendra. API를 사용하는 경우 기존 IAM 역할 및 Secrets Manager 보안 암호의 ARN과 인덱스 ID를 제공해야 합니다.
연결 지침
GitHub 데이터 소스 Amazon Kendra 에 연결하려면가 데이터에 액세스할 Amazon Kendra 수 있도록 GitHub 데이터 소스에 필요한 세부 정보를 제공해야 합니다. 에 대해 아직 GitHub를 구성하지 않은 경우 섹션을 Amazon Kendra참조하세요사전 조건.
GitHub Amazon Kendra 에 연결하려면
-
에 로그인 AWS Management Console 하고 Amazon Kendra 콘솔
을 엽니다. -
왼쪽 탐색 창에서 인덱스를 선택한 다음 인덱스 목록에서 사용할 인덱스를 선택합니다.
참고
인덱스 설정에서 사용자 액세스 제어 설정을 구성하거나 편집할 수 있습니다.
-
시작하기 페이지에서 데이터 소스 추가를 선택합니다.
-
데이터 소스 추가 페이지에서 GitHub 커넥터를 선택한 다음 커넥터 추가를 선택합니다. 버전 2(해당하는 경우)를 사용하는 경우 "V2.0" 태그가 있는 GitHub 커넥터를 선택합니다.
-
데이터 소스 세부 정보 지정 페이지에서 다음 정보를 입력합니다.
-
이름 및 설명에서 데이터 소스 이름에 데이터 소스의 이름을 입력합니다. 하이픈은 포함할 수 있지만 공백은 포함할 수 없습니다.
-
(선택 사항) 설명 - 데이터 소스에 대한 선택적 설명을 입력합니다.
-
기본 언어 - 문서를 인덱스로 필터링할 언어를 선택합니다. 달리 지정하지 않는 한, 언어는 영어로 기본 설정됩니다. 문서 메타데이터에 지정된 언어가 선택한 언어보다 우선합니다.
-
태그에서 새 태그 추가 - 리소스를 검색 및 필터링하거나 AWS 비용을 추적하는 선택적 태그를 포함합니다.
-
Next(다음)를 선택합니다.
-
-
액세스 및 보안 정의 페이지에서 다음 정보를 입력합니다.
-
GitHub 소스 - GitHub Enterprise Cloud와 GitHub Enterprise Server 중에서 선택합니다.
-
GitHub 호스트 URL - 예를 들어 GitHub 클라우드의 호스트 URL은
https://api.github.com
, GitHub 서버의 호스트 URL은https://on-prem-host-url/api/v3/
일 수 있습니다. -
GitHub 조직 이름 - GitHub 조직 이름을 입력합니다. GitHub 계정에서 조직 정보를 찾을 수 있습니다.
참고
GitHub 커넥터는 데이터 소스 커넥터 인스턴스당 단일 조직 크롤링을 지원합니다.
-
권한 부여 - ACL이 있고 액세스 제어에 사용하려는 경우 문서에 대한 ACL(액세스 제어 목록) 정보를 켜거나 끕니다. ACL은 사용자와 그룹이 액세스할 수 있는 문서를 지정합니다. ACL 정보는 검색 결과를 문서에 대한 사용자 또는 그룹의 액세스 권한을 기준으로 필터링하는 데 사용됩니다. 자세한 내용은 사용자 컨텍스트 필터링을 참조하세요.
-
AWS Secrets Manager 보안 암호 - 기존 보안 암호를 선택하거나 새 Secrets Manager 보안 암호를 생성하여 GitHub 인증 자격 증명을 저장합니다. 새 암호를 만들기로 선택하면 AWS Secrets Manager 보안 암호 창이 열립니다.
-
AWS Secrets Manager 보안 암호 생성 창에 다음 정보를 입력합니다.
-
보안 암호 이름 - 보안 암호의 이름. 'AmazonKendra-GitHub-'라는 접두사가 보안 암호 이름에 자동으로 추가됩니다.
-
GitHub 토큰의 경우 - GitHub에 구성된 인증 자격 증명 값을 입력합니다.
-
-
보안 암호를 저장하고 추가합니다.
-
-
Virtual Private Cloud(VPC) - VPC를 사용하기로 선택할 수 있습니다. 그렇다면 서브넷과 VPC 보안 그룹을 추가해야 합니다.
-
자격 증명 크롤러 - Amazon Kendra의 자격 증명 크롤러를 켤지 여부를 지정합니다. 자격 증명 크롤러는 문서에 대한 ACL(액세스 제어 목록) 정보를 사용하여 문서에 대한 사용자 또는 그룹 액세스를 기반으로 검색 결과를 필터링합니다. 문서에 대한 ACL이 있고 ACL을 사용하도록 선택한 경우 Amazon Kendra의 자격 증명 크롤러를 켜서 검색 결과의 사용자 컨텍스트 필터링을 구성할 수도 있습니다. 그렇지 않으면 자격 증명 크롤러가 꺼지면 모든 문서를 공개적으로 검색할 수 있습니다. 문서에 대한 액세스 제어를 사용하고 자격 증명 크롤러가 꺼져 있는 경우 PutPrincipalMapping API를 사용하여 사용자 컨텍스트 필터링을 위한 사용자 및 그룹 액세스 정보를 업로드할 수 있습니다.
-
IAM 역할 - 기존 IAM 역할을 선택하거나 새 IAM 역할을 생성하여 리포지토리 자격 증명 및 인덱스 콘텐츠에 액세스합니다.
참고
IAM 인덱스에 사용되는 역할은 데이터 소스에 사용할 수 없습니다. 기존 역할을 인덱스나 FAQ에 사용하는지 확실하지 않은 경우 새 역할 생성을 선택하여 오류를 방지하세요.
-
Next(다음)를 선택합니다.
-
-
동기화 설정 구성 페이지에 다음 정보를 입력합니다.
-
리포지토리 선택 - 모든 리포지토리를 크롤링하거나 선택합니다.
선택 리포지토리를 크롤링하도록 선택한 경우 리포지토리의 이름과 선택적으로 특정 브랜치의 이름을 추가합니다.
-
콘텐츠 유형 - 파일, 문제, 풀 요청 등에서 크롤링할 콘텐츠 유형을 선택합니다.
-
정규식 패턴 - 특정 페이지 및 자산을 포함하거나 제외하기 위한 정규 표현식 패턴을 추가합니다.
-
동기화 모드 - 데이터 소스 콘텐츠가 변경될 때 인덱스를 업데이트하는 방법을 선택합니다. 데이터 소스를 Amazon Kendra 와 처음 동기화하면 기본적으로 모든 콘텐츠가 크롤링되고 인덱싱됩니다. 동기화 모드 옵션으로 전체 동기화를 선택하지 않은 경우에도 초기 동기화가 실패한 경우 데이터의 전체 동기화를 실행해야 합니다.
-
전체 동기화: 데이터 소스가 인덱스와 동기화될 때마다 기존 콘텐츠를 대체하여 모든 콘텐츠를 새로 인덱싱합니다.
-
새로운 수정된 동기화: 데이터 소스가 인덱스와 동기화될 때마다 새 콘텐츠와 수정된 콘텐츠만 인덱싱합니다.는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 및 마지막 동기화 이후 변경된 인덱스 콘텐츠를 추적할 Amazon Kendra 수 있습니다.
-
신규, 수정, 삭제된 동기화: 데이터 소스가 인덱스와 동기화될 때마다 신규, 수정 및 삭제된 콘텐츠만 인덱싱합니다. Amazon Kendra 는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 사항을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 인덱싱할 수 있습니다.
-
-
빈도에 대한 동기화 실행 일정에서 데이터 소스 콘텐츠를 동기화하고 인덱스를 업데이트할 빈도를 선택합니다.
-
Next(다음)를 선택합니다.
-
-
필드 매핑 설정 페이지에 다음 정보를 입력합니다.
-
기본 데이터 소스 필드 - 인덱스에 매핑하려는 Amazon Kendra 생성된 기본 데이터 소스 필드 중에서 선택합니다.
-
필드 추가 - 사용자 지정 데이터 소스 필드를 추가하려면 매핑할 인덱스 필드 이름과 필드 데이터 유형을 만듭니다.
-
Next(다음)를 선택합니다.
-
-
검토 및 생성 페이지에서 입력한 정보가 정확한지 확인한 다음 데이터 소스 추가를 선택합니다. 이 페이지에서 정보를 편집하도록 선택할 수도 있습니다. 데이터 소스가 성공적으로 추가된 후 데이터 소스 페이지에 데이터 소스가 표시됩니다.
자세히 알아보기
GitHub 데이터 소스 Amazon Kendra 와 통합하는 방법에 대한 자세한 내용은 다음을 참조하세요.