이 문서에서는 SFTP 클라이언트를 사용하여 Azure Storage 계정의 Blob Storage 엔드포인트에 안전하게 연결할 수 있도록 SFTP 클라이언트에 대한 액세스 권한을 부여하는 방법을 보여 줍니다.
Azure Blob Storage의 SFTP 지원에 대한 자세한 내용은 Azure Blob Storage의 SFTP(SSH 파일 전송 프로토콜)를 참조하세요.
필수 조건
로컬 사용자 만들기
Azure Storage는 SFTP 엔드포인트에 액세스하기 위한 SAS(공유 액세스 서명) 또는 Microsoft Entra 인증을 지원하지 않습니다. 대신 Azure에서 생성된 암호 또는 SSH(보안 셸) 키 쌍으로 보호할 수 있는 로컬 사용자라는 ID를 사용해야 합니다. 연결 클라이언트에 대한 액세스 권한을 부여하려면 스토리지 계정에 암호 또는 키 쌍과 연결된 ID가 있어야 합니다. 이 ID를 로컬 사용자라고 합니다.
이 섹션에서는 로컬 사용자를 만들고, 인증 방법을 선택한 다음, 해당 로컬 사용자에 대한 권한을 할당하는 방법을 설명합니다.
SFTP 사용 권한 모델에 대한 자세한 내용은 SFTP 권한 모델을 참조하세요.
인증 방법 선택
암호 또는 SSH(Secure Shell) 공용-프라이빗 키 쌍을 사용하여 SFTP 클라이언트에서 연결하는 로컬 사용자를 인증할 수 있습니다.
중요합니다
두 가지 형태의 인증을 사용하도록 설정할 수 있지만 SFTP 클라이언트는 둘 중 하나만 사용하여 연결할 수 있습니다. 성공적인 인증을 위해 유효한 암호 및 유효한 퍼블릭 및 프라이빗 키 쌍 모두에 필요한 다단계 인증은 지원되지 않습니다.
Azure Portal에서 스토리지 계정으로 이동합니다.
설정에서 SFTP를 선택한 다음, 로컬 사용자 추가를 선택합니다.
로컬 사용자 추가 구성 창에서 사용자의 이름을 추가한 다음, 이 로컬 사용자와 연결할 인증 방법을 선택합니다. 암호 및/또는 SSH 키를 연결할 수 있습니다.
SSH 암호를 선택하면 로컬 사용자 추가 구성 창의 모든 단계를 완료할 때 암호가 표시됩니다. SSH 암호는 Azure에서 생성되며 길이가 최소 32자입니다.
SSH 키 쌍을 선택한 경우 퍼블릭 키 원본을 선택하여 키 원본을 지정합니다.
다음 표에서는 각 키 원본 옵션에 대해 설명합니다.
옵션 |
지침 |
새 키 쌍 생성 |
이 옵션을 사용하여 새 퍼블릭/프라이빗 키 쌍을 만듭니다. 퍼블릭 키는 사용자가 제공하는 키 이름으로 Azure에 저장됩니다. 로컬 사용자가 성공적으로 추가된 후에 프라이빗 키를 다운로드할 수 있습니다. |
Azure에 저장된 기존 키 사용 |
Azure에 이미 저장된 퍼블릭 키를 사용하려는 경우 이 옵션을 사용합니다. Azure에서 기존 키를 찾으려면 키 나열을 참조하세요. SFTP 클라이언트가 Azure Blob Storage에 연결하면 해당 클라이언트는 이 퍼블릭 키와 연결된 프라이빗 키를 제공해야 합니다. |
기존 퍼블릭 키 사용 |
Azure 외부에 저장된 퍼블릭 키를 업로드하려면 이 옵션을 사용합니다. 퍼블릭 키가 없지만 Azure 외부에서 키를 생성하려면 ssh-keygen을 사용하여 키 생성을 참조하세요. |
중요합니다
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
매개 변수를 이전 단계에서 만든 공개 키 개체로 설정합니다.
다음 예에서는 로컬 사용자를 만든 다음 콘솔에 키를 인쇄합니다.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -SshAuthorizedKey $sshkey -HasSharedKey $true -HasSshKey $true
$localuser
$localuser.SshAuthorizedKeys | ft
참고 항목
로컬 사용자에게는 SMB 인증에만 사용되는 sharedKey
속성도 있습니다.
암호를 사용하여 인증(PowerShell)
Set-AzStorageLocalUser 명령을 사용하여 로컬 사용자를 만들고 -HasSshPassword
매개 변수를 $true
로 설정합니다.
다음 예에서는 암호 인증을 사용하는 로컬 사용자를 만듭니다.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -HasSshPassword $true
New-AzStorageLocalUserSshPassword 명령을 사용하여 암호를 만들 수 있습니다.
-UserName
매개 변수를 사용자 이름으로 설정합니다.
다음 예제에서는 사용자에 대한 암호를 생성합니다.
$password = New-AzStorageLocalUserSshPassword -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName
$password
중요합니다
나중에 이 암호를 검색할 수 없습니다. 따라서 암호를 복사한 다음, 찾을 수 있는 장소에 저장해야 합니다. 암호를 잃어버리면 새 암호를 생성해야 합니다. 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 형식으로 변환할 수 있습니다.
SSH 키를 사용하여 인증된 로컬 사용자를 만들려면 az storage account local-user create 명령을 사용한 다음 --has-ssh-key
매개변수를 키 유형과 공개 키가 포함된 문자열로 설정합니다. .
다음 예에서는 contosouser
라는 로컬 사용자를 만들고 인증을 위해 키 값이 ssh-rsa a2V5...
인 ssh-rsa 키를 사용합니다.
az storage account local-user create --account-name contosoaccount -g contoso-resource-group -n contosouser --ssh-authorized-key key="ssh-rsa a2V5..." --has-ssh-key true --has-ssh-password true
참고 항목
로컬 사용자에게는 SMB 인증에만 사용되는 sharedKey
속성도 있습니다.
암호를 사용하여 인증(Azure CLI)
암호를 사용하여 인증된 로컬 사용자를 만들려면 az storage account local-user create 명령을 사용한 다음 --has-ssh-password
매개 변수를 true
로 설정합니다.
다음 예에서는 contosouser
라는 로컬 사용자를 만들고 --has-ssh-password
매개 변수를 true
로 설정합니다.
az storage account local-user create --account-name contosoaccount -g contoso-resource-group -n contosouser --has-ssh-password true
az storage account local-user regenerate-password 명령을 사용하여 암호를 만듭니다.
-n
매개 변수를 로컬 사용자 이름으로 설정합니다.
다음 예제에서는 사용자에 대한 암호를 생성합니다.
az storage account local-user regenerate-password --account-name contosoaccount -g contoso-resource-group -n contosouser
중요합니다
나중에 이 암호를 검색할 수 없습니다. 따라서 암호를 복사한 다음, 찾을 수 있는 장소에 저장해야 합니다. 암호를 잃어버리면 새 암호를 생성해야 합니다. SSH 암호는 Azure에서 생성되며 길이가 최소 32자입니다.
컨테이너에 권한 부여
액세스 권한을 부여할 컨테이너와 제공할 액세스 수준을 선택합니다. 이러한 사용 권한은 컨테이너의 모든 디렉터리 및 하위 디렉터리에 적용됩니다. 각 컨테이너 권한에 대해 자세히 알아보려면 컨테이너 권한을 참조하세요.
파일 및 디렉터리 수준에서 액세스 권한을 부여하려면 ACL 권한 부여를 사용하도록 설정하면 됩니다.
권한 탭에서 이 로컬 사용자가 사용할 수 있도록 할 컨테이너를 선택합니다. 그런 다음, 이 로컬 사용자가 수행할 수 있도록 설정하려는 작업 유형을 선택합니다.
중요합니다
로컬 사용자는 해당 컨테이너의 홈 디렉터리에 대해 하나 이상의 컨테이너 권한 또는 ACL 권한을 가지고 있어야 합니다. 그렇지 않으면 해당 컨테이너에 대한 연결 시도가 실패합니다.
이 컨테이너의 파일 및 디렉터리와 관련된 ACL(액세스 제어 목록)을 사용하여 액세스를 권한 부여하려면 ACL 권한 부여 허용 확인란을 선택합니다. ACL을 사용하여 SFTP 클라이언트에 권한을 부여하는 방법에 대한 자세한 내용은 ACL을 참조 하세요.
해당 사용자를 그룹 ID에 할당하여 이 로컬 사용자를 그룹에 추가할 수도 있습니다. 해당 ID는 원하는 숫자 또는 숫자 체계일 수 있습니다. 사용자를 그룹화하면 전체 디렉터리 구조에 ACL을 다시 적용할 필요 없이 사용자를 추가하고 제거할 수 있습니다. 대신 그룹에서 사용자를 추가하거나 제거할 수 있습니다.
참고 항목
로컬 사용자의 사용자 ID가 자동으로 생성됩니다. 이 ID는 편집할 수 없지만 로컬 사용자를 만든 후 로컬 사용자 편집 창에서 해당 사용자를 다시 열어 ID를 볼 수 있습니다.
홈 디렉터리 편집 상자에 이 로컬 사용자(예: mycontainer/mydirectory
)와 연결된 기본 위치인 컨테이너 이름 또는 디렉터리 경로(컨테이너 이름 포함)를 입력합니다.
홈 디렉터리에 대한 자세한 내용은 홈 디렉터리를 참조하세요.
추가 단추를 선택하여 로컬 사용자를 추가합니다.
암호 인증을 사용하도록 설정한 경우 로컬 사용자가 추가된 후 Azure에서 생성된 암호가 대화 상자에 나타납니다.
중요합니다
나중에 이 암호를 검색할 수 없습니다. 따라서 암호를 복사한 다음, 찾을 수 있는 장소에 저장해야 합니다.
새 키 쌍을 생성하도록 선택한 경우 로컬 사용자가 추가된 후 해당 키 쌍의 프라이빗 키를 다운로드하라는 메시지가 표시됩니다.
참고 항목
로컬 사용자에게는 SMB 인증에만 사용되는 sharedKey
속성이 있습니다.
로컬 사용자가 사용 가능한 컨테이너와 이 로컬 사용자가 수행 가능한 작업 유형을 결정합니다.
New-AzStorageLocalUserPermissionScope 명령을 사용하여 사용 권한 범위 개체를 만들고 해당 명령의 -Permission
매개 변수를 액세스 권한 수준에 해당하는 하나 이상의 문자로 설정합니다. 가능한 값은 읽기(r), 쓰기(w), 삭제(d), 목록(l), 만들기(c), 소유권 수정(o), 권한 수정(p)입니다.
다음 예제 집합은 mycontainer
컨테이너에 대한 읽기 및 쓰기 권한을 제공하는 권한 범위 개체를 만듭니다.
$permissionScope = New-AzStorageLocalUserPermissionScope -Permission rw -Service blob -ResourceName mycontainer
중요합니다
로컬 사용자에게 연결하려는 컨테이너에 대해 하나 이상의 컨테이너 권한이 있어야 합니다. 그렇지 않으면 연결 시도가 실패합니다.
Set-AzStorageLocalUser 명령을 사용하여 로컬 사용자를 업데이트합니다.
-PermissionScope
매개 변수를 이전에 만든 권한 범위 개체로 설정합니다.
다음 예에서는 컨테이너 권한으로 로컬 사용자를 업데이트한 다음 권한 범위를 콘솔에 인쇄합니다.
$UserName = "mylocalusername"
$localuser = Set-AzStorageLocalUser -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -UserName $UserName -HomeDirectory "mycontainer" -PermissionScope $permissionScope
$localuser
$localuser.PermissionScopes | ft
컨테이너에 대한 권한이 있는 로컬 사용자를 업데이트하려면 az storage account local-user update 명령을 사용한 다음 해당 명령의 permission-scope
매개 변수를 액세스 권한 수준에 해당하는 하나 이상의 문자로 설정합니다. 가능한 값은 읽기(r), 쓰기(w), 삭제(d), 목록(l), 만들기(c), 소유권 수정(o), 권한 수정(p)입니다.
다음 예제에서는 contosouser
로컬 사용자 이름에 contosocontainer
라는 컨테이너에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.
az storage account local-user update --account-name contosoaccount -g contoso-resource-group -n contosouser --home-directory contosocontainer --permission-scope permissions=rw service=blob resource-name=contosocontainer
다음 단계
관련 콘텐츠