Agenda
- AzCopy 인증 방식 알아 보기
- Microsoft Entra ID 인증 방식
- Authorize a user identity
- Authorize a managed identity
- Authorize by using a system-wide managed identity # Skip
- Authorize by using a user-assigned managed identity # Skip
- Authorize a service principal # Skip
- Storage Account SAS Token 인증 방식 # Skip
- Microsoft Entra ID 인증 방식
AzCopy 인증 방식 알아 보기
사전 준비
- 테스트용 Storage Container 만들기
참고:
az storage account create
az storage container
Quickstart: Create, download, and list blobs with Azure CLI
# Variables
$RESOURCE_GROUP = "YourResourceGroupName"
$LOCATION = "Location"
$STORAGE_ACCOUNT = "YourStorageAccountName"
$CONTAINER = "YourContainerName"
# Create a resource group
az group create `
--name $RESOURCE_GROUP `
--location $LOCATION
# Create a storage account
az storage account create `
--name $STORAGE_ACCOUNT `
--resource-group $RESOURCE_GROUP `
--location $LOCATION `
--sku Standard_LRS `
--encryption-services blob
# Retrieve storage account details and convert the output to JSON
$STORAGE_ACCOUNT_INFO = az storage account show `
--resource-group $RESOURCE_GROUP `
--name $STORAGE_ACCOUNT | ConvertFrom-Json
# Save the storage account ID to a variable
$STORAGE_ACCOUNT_ID = $STORAGE_ACCOUNT_INFO.id
# Create a container
$USER_ID=az ad signed-in-user show --query id -o tsv
az role assignment create `
--role "Storage Blob Data Contributor" `
--assignee $USER_ID `
--scope $STORAGE_ACCOUNT_ID
az storage container create `
--account-name $STORAGE_ACCOUNT `
--name $CONTAINER `
--auth-mode login
Microsoft Entra ID 인증 방식
Authorize a user identity
Microsoft Entra ID 사용자 계정을 사용하여 AzCopy 에 인증하는 방식이다.
사용자의 자격증명을 직접 사용하여 보다 세밀한 접근 제어를 구현할 수 있다. 주로 개발 및 테스트 환경에서 사용자가 직접 작업을 관리할 필요가 있을 때 적합하다.
- 개발자가 개인적으로 데이터를 Azure Storage 로 이동 및 백업을 실시하는 경우
- 테스트 환경에서 개별적인 데이터 접근 및 관리가 필요한 경우
참고:
Authorize access to blobs and files with AzCopy and Microsoft Entra ID
azcopy login
azcopy login [flag]
명령어를 실행할 때 기본값으로 동작을 환경 변수로 지정할 수 있다 (Optional)
$env:AZCOPY_AUTO_LOGIN_TYPE="DEVICE"
# Authorize with Entra User ID
azcopy login
나는 GitHub 계정을 사용해서 Azure 테넌트를 사용하고 있는데, User 인증에서 실패 했다.
해결 방법으로는 azcopy login --tenant-id [YourTanatId]
옵션을 사용하면 정상적으로 User 인증이 가능하다.
$AZ_INFO=az account show | convertfrom-json
$AZ_TENANT_ID=$AZ_INFO.tenantId
azcopy login --tenant-id $AZ_TENANT_ID
Authorize a managed identity
Azure 에 의해 관리되는 Managed ID 를 사용하여 사용자의 개입 없이 서비스나 앱의 인증을 자동으로 처리할 수 있다.
주로 Azure Virtual Machine, Functions 와 같은 서비스에서 사용된다. 인증 과정에서 사용자의 개입이 필요 없고, 보안적인 측면에서 안전한 장점이 있다. 대규모 앱, 프로덕션 환경, 자동화 스크립트를 사용할 때 유용하다.
- Azure 에서 호스팅되는 앱에서 데이터 처리를 자동화하는 경우
- Azure VM 에서 Azure Storage 에 접근하고 작업을 자동화 하는 경우
- 프로덕션 환경에서 데이터 관리 및 백업을 자동화 하는 경우
사전 준비
- Azure Virtual Machine (Windows) 배포
- System Assigned Managed ID 설정
- Storage Account IAM 설정에서 Azure VM Managed ID 권한 설정
- Azure Virtual Machine 에 azcopy.exe 설치 및 환경 변수 설정
Azure VM 에서 AzCopy 동작 확인
Tip. Permission 문제로 Failed 한 경우, Storage Account 의 IAM 설정을 다시 확인한다.