Share via


SFTP(SSH 파일 전송 프로토콜)를 사용하여 Azure Blob Storage에 연결

이 문서에서는 SFTP 클라이언트를 사용하여 Azure Storage 계정의 Blob Storage 엔드포인트에 안전하게 연결하는 방법을 보여 줍니다. 연결한 후에는 파일을 업로드 및 다운로드할 수 있을 뿐만 아니라 파일 및 폴더에 대한 ACL(액세스 제어 목록)을 수정할 수도 있습니다.

Azure Blob Storage의 SFTP 지원에 대한 자세한 내용은 Azure Blob Storage의 SFTP(SSH 파일 전송 프로토콜)를 참조하세요.

필수 조건

  • Azure Blob Storage에 대한 SFTP 지원을 사용하도록 설정합니다. SFTP 지원 사용 또는 사용 안 함를 참조하세요.

  • SFTP 클라이언트에 대한 액세스를 권한 부여합니다. 클라이언트에 대한 액세스 권한 부여을 참조하세요.

  • 온-프레미스 네트워크에서 연결하는 경우 클라이언트가 SFTP에서 사용하는 포트 22를 통해 나가는 통신을 허용하는지 확인합니다.

SFTP 클라이언트 연결

모든 SFTP 클라이언트를 사용하여 안전하게 연결한 다음, 파일을 전송할 수 있습니다. 다음 예에서는 Open SSH를 사용하는 Windows PowerShell 세션을 보여 줍니다.

PS C:\Users\temp> sftp contoso4.contosouser@contoso4.blob.core.windows.net

SFTP 사용자 이름은 storage_account_name, username입니다. 위의 예에서 storage_account_name은 "contoso4"이고 username은 "contosouser"입니다. 결합된 사용자 이름은 "contoso4.contosouser"가 됩니다. Blob 서비스 엔드포인트는 "contoso4.blob.core.windows.net"입니다.

연결을 완료하려면 하나 이상의 프롬프트에 응답해야 할 수도 있습니다. 예를 들어, 암호 인증으로 로컬 사용자를 구성한 경우 해당 암호를 입력하라는 메시지가 표시됩니다. 호스트 키를 신뢰하라는 메시지가 표시될 수도 있습니다. 유효한 호스트 키는 여기에 게시됩니다.

사용자 지정 도메인을 사용하여 연결

사용자 지정 도메인을 사용하여 Blob 서비스 엔드포인트에 연결하려는 경우 연결 문자열은 myaccount.myuser@customdomain.com입니다. 사용자에 대해 홈 디렉터리가 지정되지 않은 경우 연결 문자열은 myaccount.mycontainer.myuser@customdomain.com입니다.

Important

DNS 공급자가 요청을 프록시 처리하지 않는지 확인합니다. 이로 인해 연결 시도 시간이 초과될 수 있습니다.

사용자 지정 도메인을 Blob 서비스 엔드포인트에 매핑하는 방법을 알아보려면 Azure Blob Storage 엔드포인트에 사용자 지정 도메인 매핑을 참조하세요.

프라이빗 엔드포인트를 사용하여 연결

프라이빗 엔드포인트를 사용하여 Blob 서비스 엔드포인트에 연결하려는 경우 연결 문자열은 myaccount.myuser@myaccount.privatelink.blob.core.windows.net입니다. 사용자에 대해 홈 디렉터리가 지정되지 않은 경우 myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net입니다.

참고 항목

네트워킹 구성을 "선택한 가상 네트워크 및 IP 주소에서 사용"으로 변경했는지 확인한 다음 프라이빗 엔드포인트를 선택합니다. 그렇지 않으면 Blob 서비스 엔드포인트는 계속해서 공개적으로 액세스할 수 있습니다.

데이터 전송

연결한 후 파일을 업로드하고 다운로드할 수 있습니다. 다음 예에서는 활성 Open SSH 세션을 사용하여 logfile.txt라는 파일을 업로드합니다.

sftp> put logfile.txt
Uploading logfile.txt to /mydirectory/logfile.txt
logfile.txt
        100%    19    0.2kb/S    00.00

전송이 완료되면 Azure Portal에서 파일을 보고 관리할 수 있습니다.

스토리지 계정에 나타나는 업로드된 파일의 스크린샷.

참고 항목

Azure Portal은 Blob REST API 및 Data Lake Storage Gen2 REST API를 사용합니다. Azure Portal에서 업로드된 파일과 상호 작용할 수 있는 경우 SFTP와 REST 간에 상호 운용성이 구현된 것입니다.

연결하고 파일을 전송하는 방법에 대한 지침은 SFTP 클라이언트의 설명서를 참조하세요.

파일 또는 디렉터리의 ACL 수정

SFTP 클라이언트를 사용하여 담당 사용자, 담당 그룹 및 ACL의 다른 모든 사용자의 권한 수준을 수정할 수 있습니다. 담당 사용자 및 담당 그룹의 ID를 변경할 수도 있습니다. SFTP 클라이언트에 대한 ACL 지원에 대해 자세히 알아보려면 ACL을 참조하세요.

권한 수정

담당 사용자, 담당 그룹 또는 ACL의 다른 모든 사용자의 권한 수준을 변경하려면 로컬 사용자에게 Modify Permission 권한이 있어야 합니다. 컨테이너에 권한 부여를 참조하세요.

다음 예에서는 디렉터리의 ACL을 콘솔에 인쇄합니다. 그런 다음 chmod 명령을 사용하여 ACL을 777로 설정합니다. 각 7rwx(읽기, 쓰기 및 실행)의 숫자 형식입니다. 따라서 777은 담당 사용자, 담당 그룹 및 기타 모든 사용자에게 읽기, 쓰기 및 실행 권한을 부여합니다. 그런 다음 이 예에서는 업데이트된 ACL을 콘솔에 인쇄합니다. 숫자 및 짧은 형식의 ACL에 대해 자세히 알아보려면 권한에 대한 짧은 형식을 참조하세요.

sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chmod 777 dir1
Changing mode on /dir1
sftp> ls -l
drwxrwxrwx     1234     5678                0 Mon, 08 Jan 2024 16:54:06 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2

참고 항목

명명된 사용자, 명명된 그룹 및 명명된 보안 주체에 대한 ACL 항목을 추가하거나 수정하는 것은 아직 지원되지 않습니다.

담당 사용자 변경

디렉터리 또는 Blob의 담당 사용자를 변경하려면 로컬 사용자에게 Modify Ownership 권한이 있어야 합니다. 컨테이너에 권한 부여를 참조하세요.

다음 예에서는 디렉터리의 ACL을 콘솔에 인쇄합니다. 담당 사용자의 ID는 0입니다. 이 예에서는 chown 명령을 사용하여 담당 사용자의 ID를 1234로 설정하고 변경 내용을 콘솔에 인쇄합니다.

sftp> ls -l
drwxr-x---        0        0                0 Mon, 08 Jan 2024 16:00:12 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chown 1234 dir1
Changing owner on /dir1
sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp>

담당 그룹 변경

디렉터리 또는 Blob의 담당 그룹을 변경하려면 로컬 사용자에게 Modify Ownership 권한이 있어야 합니다. 컨테이너에 권한 부여를 참조하세요.

다음 예에서는 디렉터리의 ACL을 콘솔에 인쇄합니다. 담당 그룹의 ID는 0입니다. 이 예에서는 chgrp 명령을 사용하여 담당 그룹의 ID를 5678로 설정하고 변경 내용을 콘솔에 인쇄합니다.

sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chgrp 5678 dir1
Changing group on /dir1
sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2