Git 리포지토리를 Amazon SageMaker 노트북 인스턴스에 추가하려고 하는데 다음과 같은 오류가 하나 이상 발생합니다.
"fatal: unable to access <Git repository URL>: the requested URL returned error: 403"
"fatal: unable to access <Git repository URL> : failed to connect to …: port 443: connection timed out"
"fatal: unable to access <Git repository URL> could not resolve the host: …"
"fatal: could not read Username for <Git repository URL>: terminal prompts disabled"
"fatal: could not read Password for <Git repository URL>: terminal prompts disabled"
"fatal: authentication failed for <Git repository URL>"
"No space left on device while cloning Git repo. Please try using a larger volume"
해결 방법
SageMaker 노트북 인스턴스에 새 Git 리포지토리를 추가하려면 Amazon SageMaker 계정에 Git 리포지토리 추가를 참조하세요. AWS CodeCommit에서 호스팅되지 않은 Git 리포지토리를 추가하려고 하면 다음과 같은 오류가 발생할 수 있습니다.
연결 관련 오류
연결 문제가 있는 경우 다음과 같은 오류 중 하나가 발생할 수 있습니다.
- "fatal: unable to access <Git repository URL>: the requested URL returned error: 403"
- "fatal: unable to access <Git repository URL>: failed to connect to …: port 443: connection timed out"
- "fatal: unable to access <Git repository URL> could not resolve the host: …"
이러한 오류를 해결하려면 다음을 수행합니다.
- 노트북 인스턴스가 연결되어 있는지 확인합니다.
- Git 리포지토리 URL이 정확한지 확인합니다.
노트북 인스턴스가 연결되어 있는지 확인
노트북 인스턴스가 Git 리포지토리에 성공적으로 연결되었는지 확인합니다. 이 리포지토리는 온프레미스 Git 리포지토리 서버 또는 퍼블릭 클라우드 서버(예: GitHub, Bitbucket 또는 GitLab)에 위치할 수 있습니다.
노트북 인스턴스에 사용되는 네트워크 구성을 확인합니다. 노트북 인스턴스는 다음과 같은 네트워크 구성 중 하나를 가질 수 있습니다.
- 인스턴스가 Amazon Virtual Private Cloud(VPC)에 연결되어 있지 않습니다.
- Amazon VPC가 인터넷에 직접 액세스할 수 있습니다.
- VPC가 인터넷에 직접 액세스할 수 없습니다.
VPC를 사용하는 경우 서브넷, 보안 그룹, 네트워크 ACL(액세스 제어 목록), NAT 게이트웨이, 인터넷 게이트웨이 및 라우팅 테이블이 올바르게 구성되어 있는지 확인하세요.
Git 리포지토리 URL이 정확한지 확인
추가하려는 Git 리포지토리 URL의 형식이 다음과 같아야 합니다.
- GitHub URL: https://github.com/<workspace>/<repository.git>
- Bitbucket URL: https://bitbucket.org/<workspace>/<repository.git>
- GitLab URL: https://gitlab.com/<workspace>/<repository.git>
다음과 같이 항목을 바꿔야 합니다.
- workspace를 Git 워크스페이스 이름으로 바꿉니다.
- repository.git을 파일 확장명이*.git인 코드 리포지토리 이름으로 바꿉니다.
예를 들어 Bitbucket을 Git 리포지토리로 사용하고 사용자의 워크스페이스 이름이 myworkspace이며 사용자의 Git 리포지토리가 myrepository.git인 경우 Git 리포지토리 URL은 https://bitbucket.org/myworkspace/myrepository.git이 되어야 합니다.
인증 관련 오류
인증 문제가 있는 경우 다음과 같은 오류 중 하나가 발생할 수 있습니다.
- "fatal: could not read Username for <Git repository URL>: terminal prompts disabled"
- "fatal: could not read Password for <Git repository URL>: terminal prompts disabled"
- "fatal: authentication failed for <Git repository URL>"
이러한 오류를 해결하려면 다음을 수행합니다.
- 인증 세부 정보를 확인합니다.
- AWS Secrets Manager에 액세스하는 데 필요한 권한이 AWS Identity and Access Management(IAM) 사용자 또는 역할에 있는지 확인합니다.
인증 세부 정보가 정확한지 확인
Secrets Manager에서 사용자 이름과 암호가 정확한지 확인합니다.
- GitHub: 2단계 인증을 활성화한 경우 암호 대신 개인용 액세스 토큰을 사용해야 합니다. 이 토큰이 생성된 후에는 새로 생성된 토큰을 사용하여 Secrets Manager에서 암호를 업데이트해야 합니다.
- Bitbucket: Bitbucket은 Git 인증을 위한 계정 암호를 지원하지 않습니다. 개인 설정을 사용하여 앱 암호를 생성하는 것이 가장 좋습니다. 앱 암호를 생성한 후에는 Secrets Manager에서 암호를 업데이트해야 합니다.
- GitLab: 2단계 인증을 활성화한 경우 암호 대신 개인용 액세스 토큰을 사용해야 합니다. 이 토큰이 생성된 후에는 새로 생성된 토큰을 사용하여 Secrets Manager에서 암호를 업데이트해야 합니다.
노트북 인스턴스의 IAM 역할에 필요한 권한이 있는지 확인
노트북 인스턴스에 사용되는 IAM 역할의 IAM 정책에 secretsmanager:GetSecretValue 권한이 연결되어 있는지 확인합니다. IAM 역할에 필요한 권한이 없는 경우 다음과 같은 정책을 IAM 역할에 추가할 수 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"example-secret-ARN"
]
},
{
"Effect": "Allow",
"Action": "secretsmanager:ListSecrets",
"Resource": "*"
}
]
}
참고:
example-secret-ARN은 Git 리포지토리 인증에 대한 보안 암호(사용자 이름 및 암호)가 있는
Secrets Manager의 ARN입니다.
스토리지 관련 오류
스토리지 관련 문제가 있는 경우 다음과 같은 오류가 발생할 수 있습니다.
No space left on device while cloning Git repo. Please try using a larger volume
이 오류를 해결하려면 노트북 인스턴스에 충분한 스토리지가 있는지 확인하세요. 노트북 인스턴스 볼륨의 여유 공간 크기가 복제에 사용하는 Git 리포지토리의 여유 공간보다 커야 합니다. 디스크 공간이 부족할 경우 VolumeSizeInGB에 더 큰 값을 지정하세요. 자세한 내용은 Amazon SageMaker를 사용하여 노트북 볼륨 크기를 최대 16TB까지 사용자 지정을 참조하세요.
관련 정보
Git 리포지토리와 Amazon SageMaker 노트북 인스턴스 연결
인터페이스 VPC 엔드포인트에 AWS CodeCommit 사용