다음을 통해 공유


Service Connector와 Azure Blob Storage 통합

이 페이지에서는 서비스 커넥터를 사용하는 Azure Blob Storage의 지원되는 인증 형식, 클라이언트 형식, 샘플 코드를 보여줍니다. 이 페이지에서는 서비스 연결을 만들 때 가져오는 기본 환경 변수 이름과 값(또는 Spring Boot 구성)도 보여 줍니다.

지원되는 컴퓨팅 서비스

서비스 커넥터를 사용하여 다음 컴퓨팅 서비스를 Azure Blob Storage에 연결할 수 있습니다.

  • Azure App Service
  • Azure Container Apps
  • Azure 기능
  • AKS(Azure Kubernetes Service)
  • Azure Spring Apps

지원되는 인증 유형 및 클라이언트 유형

아래 표에서는 서비스 커넥터를 사용하여 컴퓨팅 서비스를 Azure Blob Storage에 연결하는 데 지원되는 인증 방법과 클라이언트의 조합을 보여 줍니다. "예"는 조합이 지원됨을 나타내고 "아니오"는 지원되지 않음을 나타냅니다.

클라이언트 유형 시스템 할당 관리 ID 사용자 할당 관리 ID 비밀/연결 문자열 서비스 사용자
.NET
Java
Java - Spring Boot
Node.JS
Python
Go
없음

이 표는 비밀/연결 문자열 메서드만 지원하는 Java - Spring Boot 클라이언트 유형을 제외하고 클라이언트 형식 및 인증 방법의 모든 조합이 지원됨을 명확하게 나타냅니다. 다른 모든 클라이언트 유형은 인증 방법을 사용하여 서비스 커넥터를 통해 Azure Blob Storage에 연결할 수 있습니다.

기본 환경 변수 이름 또는 애플리케이션 속성과 샘플 코드

연결의 인증 유형 및 클라이언트 유형에 따라 다음 표의 연결 세부 정보 및 샘플 코드를 참조하여 컴퓨팅 서비스를 Azure Blob Storage에 연결합니다. 서비스 커넥터 환경 변수 명명 규칙에 대해 자세히 알아볼 수 있습니다.

시스템 할당 관리 ID

SpringBoot 클라이언트

시스템이 할당한 관리 ID로 인증하는 기능은 Spring Cloud Azure 버전 4.0 이상에서만 사용할 수 있습니다.

기본 환경 변수 이름 설명 예제 값
spring.cloud.azure.storage.blob.credential.managed-identity-enabled 관리 ID 사용 여부 True
spring.cloud.azure.storage.blob.account-name 스토리지 계정의 이름 storage-account-name
spring.cloud.azure.storage.blob.endpoint Blob 스토리지 엔드포인트 https://<storage-account-name>.blob.core.windows.net/

기타 클라이언트

기본 환경 변수 이름 설명 예제 값
AZURE_STORAGEBLOB_RESOURCEENDPOINT Blob 스토리지 엔드포인트 https://<storage-account-name>.blob.core.windows.net/

샘플 코드

시스템이 할당한 관리 ID를 사용하여 Azure Blob Storage에 연결하려면 아래 단계 및 코드를 참조하세요.

azure-identity를 사용하여 관리 ID 또는 서비스 주체를 통해 인증할 수 있습니다. 서비스 커넥터에서 추가한 환경 변수에서 Azure Blob Storage 엔드포인트 URL을 가져옵니다. 아래 코드를 사용하는 경우 사용하려는 인증 유형에 대한 코드 조각 부분의 주석 처리를 제거합니다.

종속성 설치

dotnet add package Azure.Identity

관리 ID 또는 서비스 주체를 사용하여 Blob Storage에 연결하는 샘플 코드는 다음과 같습니다.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// Uncomment the following lines corresponding to the authentication type you want to use.
// system-assigned managed identity
// var credential = new DefaultAzureCredential();

// user-assigned managed identity
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

사용자 할당 관리 ID

SpringBoot 클라이언트

사용자가 할당한 관리 ID로 인증하는 기능은 Spring Cloud Azure 버전 4.0 이상에서만 사용할 수 있습니다.

기본 환경 변수 이름 설명 예제 값
spring.cloud.azure.storage.blob.credential.managed-identity-enabled 관리 ID 사용 여부 True
spring.cloud.azure.storage.blob.account-name 스토리지 계정의 이름 storage-account-name
spring.cloud.azure.storage.blob.endpoint Blob 스토리지 엔드포인트 https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id 사용자가 할당한 관리 ID의 클라이언트 ID 00001111-aaaa-2222-bbbb-3333cccc4444

기타 클라이언트

기본 환경 변수 이름 설명 예제 값
AZURE_STORAGEBLOB_RESOURCEENDPOINT Blob 스토리지 엔드포인트 https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID 클라이언트 ID <client-ID>

샘플 코드

사용자가 할당한 관리 ID를 사용하여 Azure Blob Storage에 연결하려면 아래 단계 및 코드를 참조하세요.

azure-identity를 사용하여 관리 ID 또는 서비스 주체를 통해 인증할 수 있습니다. 서비스 커넥터에서 추가한 환경 변수에서 Azure Blob Storage 엔드포인트 URL을 가져옵니다. 아래 코드를 사용하는 경우 사용하려는 인증 유형에 대한 코드 조각 부분의 주석 처리를 제거합니다.

종속성 설치

dotnet add package Azure.Identity

관리 ID 또는 서비스 주체를 사용하여 Blob Storage에 연결하는 샘플 코드는 다음과 같습니다.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// Uncomment the following lines corresponding to the authentication type you want to use.
// system-assigned managed identity
// var credential = new DefaultAzureCredential();

// user-assigned managed identity
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

Connection string

Warning

사용 가능한 가장 안전한 인증 흐름을 사용하는 것이 권장됩니다. 이 절차에서 설명된 인증 흐름은 다른 흐름에는 없는 위험을 전달하며, 애플리케이션에서 매우 높은 신뢰 수준을 요구합니다. 이 흐름은 관리 ID와 같은 보다 안전한 다른 흐름을 실행할 수 없는 경우에만 사용되어야 합니다.

SpringBoot 클라이언트

애플리케이션 속성 설명 예제 값
azure.storage.account-name Blob 스토리지 계정 이름 <storage-account-name>
azure.storage.account-key Blob 스토리지 계정 키 <account-key>
azure.storage.blob-endpoint Blob 스토리지 엔드포인트 https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.account-name Spring Cloud Azure 버전 4.0 이상용 Blob Storage-account-name <storage-account-name>
spring.cloud.azure.storage.blob.account-key Spring Cloud Azure 버전 4.0 이상용 Blob Storage 계정 키 <account-key>
spring.cloud.azure.storage.blob.endpoint Spring Cloud Azure 버전 4.0 이상용 Blob Storage 엔드포인트 https://<storage-account-name>.blob.core.windows.net/

기타 클라이언트

기본 환경 변수 이름 설명 예제 값
AZURE_STORAGEBLOB_CONNECTIONSTRING Blob 스토리지 연결 문자열 DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net

샘플 코드

연결 문자열을 사용하여 Azure Blob Storage에 연결하려면 아래 단계 및 코드를 참조하세요.

서비스 커넥터에서 추가한 환경 변수에서 Azure Blob Storage 연결 문자열을 가져옵니다.

종속성 설치

dotnet add package Azure.Storage.Blob
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System; 

// get Blob connection string
var connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CONNECTIONSTRING");

// Create a BlobServiceClient object 
var blobServiceClient = new BlobServiceClient(connectionString);

서비스 사용자

SpringBoot 클라이언트

서비스 주체를 통한 인증은 Spring Cloud Azure 버전 4.0 이상에서만 사용할 수 있습니다.

기본 환경 변수 이름 설명 예제 값
spring.cloud.azure.storage.blob.account-name 스토리지 계정의 이름 storage-account-name
spring.cloud.azure.storage.blob.endpoint Blob 스토리지 엔드포인트 https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id 서비스 주체의 클라이언트 ID 00001111-aaaa-2222-bbbb-3333cccc4444
spring.cloud.azure.storage.blob.credential.client-secret 서비스 주체 인증을 수행하기 위한 클라이언트 암호 Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2

기타 클라이언트

기본 환경 변수 이름 설명 예제 값
AZURE_STORAGEBLOB_RESOURCEENDPOINT Blob 스토리지 엔드포인트 https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID 클라이언트 ID <client-ID>
AZURE_STORAGEBLOB_CLIENTSECRET 클라이언트 암호 <client-secret>
AZURE_STORAGEBLOB_TENANTID 테넌트 ID <tenant-ID>

샘플 코드

서비스 주체를 사용하여 Azure Blob Storage에 연결하려면 아래 단계 및 코드를 참조하세요.

azure-identity를 사용하여 관리 ID 또는 서비스 주체를 통해 인증할 수 있습니다. 서비스 커넥터에서 추가한 환경 변수에서 Azure Blob Storage 엔드포인트 URL을 가져옵니다. 아래 코드를 사용하는 경우 사용하려는 인증 유형에 대한 코드 조각 부분의 주석 처리를 제거합니다.

종속성 설치

dotnet add package Azure.Identity

관리 ID 또는 서비스 주체를 사용하여 Blob Storage에 연결하는 샘플 코드는 다음과 같습니다.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// Uncomment the following lines corresponding to the authentication type you want to use.
// system-assigned managed identity
// var credential = new DefaultAzureCredential();

// user-assigned managed identity
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

다음 단계

서비스 커넥터에 대해 자세히 알아보려면 자습서를 따르세요.