Azure Storage는 SFTP 엔드포인트에 액세스하기 위한 SAS(공유 액세스 서명) 또는 Microsoft Entra 인증을 지원하지 않습니다. 대신 Azure에서 생성된 암호 또는 SSH(보안 셸) 키 쌍으로 보호할 수 있는 로컬 사용자라는 ID를 사용해야 합니다. 연결 클라이언트에 대한 액세스 권한을 부여하려면 스토리지 계정에 암호 또는 키 쌍과 연결된 ID가 있어야 합니다. 이 ID를 로컬 사용자라고 합니다.
이 섹션에서는 로컬 사용자를 만들고, 인증 방법을 선택한 다음, 해당 로컬 사용자에 대한 권한을 할당하는 방법을 설명합니다.
로컬 사용자 추가 구성 창에서 사용자의 이름을 추가한 다음, 이 로컬 사용자와 연결할 인증 방법을 선택합니다. 암호 및/또는 SSH 키를 연결할 수 있습니다.
SSH 암호를 선택하면 로컬 사용자 추가 구성 창의 모든 단계를 완료할 때 암호가 표시됩니다. SSH 암호는 Azure에서 생성되며 길이가 최소 32자입니다.
SSH 키 쌍을 선택한 경우 퍼블릭 키 원본을 선택하여 키 원본을 지정합니다.
다음 표에서는 각 키 원본 옵션에 대해 설명합니다.
옵션
지침
새 키 쌍 생성
이 옵션을 사용하여 새 퍼블릭/프라이빗 키 쌍을 만듭니다. 퍼블릭 키는 사용자가 제공하는 키 이름으로 Azure에 저장됩니다. 로컬 사용자가 성공적으로 추가된 후에 프라이빗 키를 다운로드할 수 있습니다.
Azure에 저장된 기존 키 사용
Azure에 이미 저장된 퍼블릭 키를 사용하려는 경우 이 옵션을 사용합니다. Azure에서 기존 키를 찾으려면 키 나열을 참조하세요. SFTP 클라이언트가 Azure Blob Storage에 연결하면 해당 클라이언트는 이 퍼블릭 키와 연결된 프라이빗 키를 제공해야 합니다.
기존 퍼블릭 키 사용
Azure 외부에 저장된 퍼블릭 키를 업로드하려면 이 옵션을 사용합니다. 퍼블릭 키가 없지만 Azure 외부에서 키를 생성하려면 ssh-keygen을 사용하여 키 생성을 참조하세요.
Important
OpenSSH 형식의 공개 키만 지원됩니다. 제공하는 키는 <key type> <key data> 형식을 사용해야 합니다. 예를 들어 RSA 키는 ssh-rsa AAAAB3N...과 유사합니다. 키가 다른 형식인 경우 ssh-keygen과 같은 도구를 사용하여 OpenSSH 형식으로 변환할 수 있습니다.
다음을 선택하여 구성 창의 권한 탭을 엽니다.
이 섹션에서는 SSH 키 또는 암호를 사용하여 인증하는 방법을 보여 줍니다.
SSH 키(PowerShell)를 사용하여 인증
사용하려는 공개 키 형식을 선택합니다.
Azure에 저장된 기존 키 사용
Azure에 이미 저장된 퍼블릭 키를 사용하려는 경우 이 옵션을 사용합니다. Azure에서 기존 키를 찾으려면 키 나열을 참조하세요. SFTP 클라이언트가 Azure Blob Storage에 연결하면 해당 클라이언트는 이 퍼블릭 키와 연결된 프라이빗 키를 제공해야 합니다.
Azure 외부에 저장된 기존 공개 키를 사용합니다.
아직 공개 키가 없다면 ssh-keygen으로 키 만들기를 참조하여 공개 키를 만드는 방법을 알아봅니다. OpenSSH 형식의 공개 키만 지원됩니다. 제공하는 키는 <key type> <key data> 형식을 사용해야 합니다. 예를 들어 RSA 키는 ssh-rsa AAAAB3N...과 유사합니다. 키가 다른 형식인 경우 ssh-keygen과 같은 도구를 사용하여 OpenSSH 형식으로 변환할 수 있습니다.
New-AzStorageLocalUserSshPublicKey 명령을 사용하여 공개 키 개체를 만듭니다. -Key 매개 변수를 키 형식 및 공개 키를 포함하는 문자열로 설정합니다. 다음 예제에서 키 종류는 ssh-rsa이고 키는 ssh-rsa a2V5...입니다.
$sshkey = "ssh-rsa a2V5..."
$sshkey = New-AzStorageLocalUserSshPublicKey -Key $sshkey -Description "description for ssh public key"
Set-AzStorageLocalUser 명령을 사용하여 로컬 사용자를 생성합니다. SSH 키를 사용하는 경우 SshAuthorizedKey 매개 변수를 이전 단계에서 만든 공개 키 개체로 설정합니다.
나중에 이 암호를 검색할 수 없습니다. 따라서 암호를 복사한 다음, 찾을 수 있는 장소에 저장해야 합니다. 암호를 잃어버리면 새 암호를 생성해야 합니다. SSH 암호는 Azure에서 생성되며 길이가 최소 32자입니다.
이 섹션에서는 SSH 키 또는 암호를 사용하여 인증하는 방법을 보여 줍니다.
SSH 키를 사용하여 인증(Azure CLI)
사용하려는 공개 키 형식을 선택합니다.
Azure에 저장된 기존 키 사용
Azure에 이미 저장된 퍼블릭 키를 사용하려는 경우 이 옵션을 사용합니다. Azure에서 기존 키를 찾으려면 키 나열을 참조하세요. SFTP 클라이언트가 Azure Blob Storage에 연결하면 해당 클라이언트는 이 퍼블릭 키와 연결된 프라이빗 키를 제공해야 합니다.
Azure 외부에 저장된 기존 공개 키를 사용합니다.
아직 공개 키가 없다면 ssh-keygen으로 키 만들기를 참조하여 공개 키를 만드는 방법을 알아봅니다. OpenSSH 형식의 공개 키만 지원됩니다. 제공하는 키는 <key type> <key data> 형식을 사용해야 합니다. 예를 들어 RSA 키는 ssh-rsa AAAAB3N...과 유사합니다. 키가 다른 형식인 경우 ssh-keygen과 같은 도구를 사용하여 OpenSSH 형식으로 변환할 수 있습니다.
권한 탭에서 이 로컬 사용자가 사용할 수 있도록 할 컨테이너를 선택합니다. 그런 다음, 이 로컬 사용자가 수행할 수 있도록 설정하려는 작업 유형을 선택합니다.
Important
로컬 사용자는 해당 컨테이너의 홈 디렉터리에 대해 하나 이상의 컨테이너 권한 또는 ACL 권한을 가지고 있어야 합니다. 그렇지 않으면 해당 컨테이너에 대한 연결 시도가 실패합니다.
이 컨테이너의 파일 및 디렉터리와 관련된 ACL(액세스 제어 목록)을 사용하여 액세스를 권한 부여하려면 ACL 권한 부여 허용 확인란을 선택합니다. ACLS를 사용하여 SFTP 클라이언트를 권한 부여하는 방법에 대해 자세히 알아보려면 ACL을 참조하세요.
해당 사용자를 그룹 ID에 할당하여 이 로컬 사용자를 그룹에 추가할 수도 있습니다. 해당 ID는 원하는 숫자 또는 숫자 체계일 수 있습니다. 사용자를 그룹화하면 전체 디렉터리 구조에 ACL을 다시 적용할 필요 없이 사용자를 추가하고 제거할 수 있습니다. 대신 그룹에서 사용자를 추가하거나 제거할 수 있습니다.
참고 항목
로컬 사용자의 사용자 ID가 자동으로 생성됩니다. 이 ID는 편집할 수 없지만 로컬 사용자를 만든 후 로컬 사용자 편집 창에서 해당 사용자를 다시 열어 ID를 볼 수 있습니다.
홈 디렉터리 편집 상자에 이 로컬 사용자(예: mycontainer/mydirectory)와 연결된 기본 위치인 컨테이너 이름 또는 디렉터리 경로(컨테이너 이름 포함)를 입력합니다.
암호 인증을 사용하도록 설정한 경우 로컬 사용자가 추가된 후 Azure에서 생성된 암호가 대화 상자에 나타납니다.
Important
나중에 이 암호를 검색할 수 없습니다. 따라서 암호를 복사한 다음, 찾을 수 있는 장소에 저장해야 합니다.
새 키 쌍을 생성하도록 선택한 경우 로컬 사용자가 추가된 후 해당 키 쌍의 프라이빗 키를 다운로드하라는 메시지가 표시됩니다.
참고 항목
로컬 사용자에게는 SMB 인증에만 사용되는 sharedKey 속성이 있습니다.
로컬 사용자가 사용 가능한 컨테이너와 이 로컬 사용자가 수행 가능한 작업 유형을 결정합니다. New-AzStorageLocalUserPermissionScope 명령을 사용하여 사용 권한 범위 개체를 만들고 해당 명령의 -Permission 매개 변수를 액세스 권한 수준에 해당하는 하나 이상의 문자로 설정합니다. 가능한 값은 읽기(r), 쓰기(w), 삭제(d), 목록(l), 만들기(c), 소유권 수정(o), 권한 수정(p)입니다.
다음 예제 집합은 mycontainer 컨테이너에 대한 읽기 및 쓰기 권한을 제공하는 권한 범위 개체를 만듭니다.
컨테이너에 대한 권한이 있는 로컬 사용자를 업데이트하려면 az storage account local-user update 명령을 사용한 다음 해당 명령의 permission-scope 매개 변수를 액세스 권한 수준에 해당하는 하나 이상의 문자로 설정합니다. 가능한 값은 읽기(r), 쓰기(w), 삭제(d), 목록(l), 만들기(c), 소유권 수정(o), 권한 수정(p)입니다.
다음 예제에서는 contosouser 로컬 사용자 이름에 contosocontainer라는 컨테이너에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.