Amazon SageMaker AI 인스턴스에 코드 리포지토리를 추가하려고 합니다.
해결 방법
SageMaker AI는 GitHub 코드 리포지토리와의 통합을 지원합니다. HTTPS의 경우 SageMaker AI에 내장된 Git 통합을 사용합니다. 가상 프라이빗 클라우드(VPC)를 통해 액세스하는 SSH 리포지토리 또는 내부 Git 서버의 경우 수명 주기 구성을 사용합니다.
HTTPS에 SageMaker AI Git 통합 사용
SageMaker AI 계정에 Git 리포지토리를 추가합니다.
리포지토리에 들어갈 때는 다음 형식을 사용합니다.
- GitHub URL: https://github.com/workspace/repository.git
- Bitbucket URL: https://bitbucket.org/workspace/repository.git
- GitLab URL: https://gitlab.com/workspace/repository.git
SageMaker AI는 리포지토리를 **/home/ec2-user/SageMaker/**에 복제합니다.
SSH 기반 Git 통합에 수명 주기 구성 사용
다음 단계를 완료합니다.
-
AWS Secrets Manager에 SSH 프라이빗 키를 저장합니다.
-
수명 주기 구성을 생성합니다.
-
노트북 시작 편집기에서 다음 스크립트를 입력하고 Git 서버 및 보안 정책에 맞게 사용자 지정합니다.
bash
#!/bin/bash
python << EOF
import boto3
import base64
secret_name = "your_secret_name"
region_name = "your_region"
session = boto3.session.Session()
client = session.client(service_name='secretsmanager', region_name=region_name)
get_secret_value_response = client.get_secret_value(SecretId=secret_name)
if 'SecretString' in get_secret_value_response:
secret = get_secret_value_response['SecretString']
with open('/home/ec2-user/.ssh/id_rsa', 'wt') as tmp:
tmp.write(secret)
else:
decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])
with open('/home/ec2-user/.ssh/id_rsa', 'wt') as tmp:
tmp.write(decoded_binary_secret)
EOF
echo "Host github.com " >> /home/ec2-user/.ssh/config
echo " StrictHostKeyChecking no" >> /home/ec2-user/.ssh/config
echo " IdentityFile /home/ec2-user/.ssh/id_rsa" >> /home/ec2-user/.ssh/config
chmod 600 /home/ec2-user/.ssh/config
chmod 600 /home/ec2-user/.ssh/id_rsa
chown ec2-user:ec2-user /home/ec2-user/.ssh/config
chown ec2-user:ec2-user /home/ec2-user/.ssh/id_rsa
cd /home/ec2-user/SageMaker
sudo su ec2-user -c "git clone git@github.com:myAccount/SageMakerNotebook.git"
rm /home/ec2-user/.ssh/config
-
노트북 인스턴스의 AWS Identity and Access Management(IAM) 역할에 Secrets Manager에 액세스할 수 있는 다음 권한 정책이 있는지 확인합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
}
]
}
관련 정보
Amazon SageMaker AI 노트북 인스턴스 생성
ID 기반 정책
Git 리포지토리를 SageMaker AI 노트북 인스턴스에 연결하는 것과 관련된 문제를 해결하려면 어떻게 해야 합니까?