다음을 통해 공유


Spring Cloud Azure란?

Spring Cloud Azure Spring 애플리케이션에서 Azure 서비스를 더 쉽게 사용할 수 있도록 하는 open source 프로젝트입니다.

Spring Cloud Azure 모든 리소스를 대중에게 제공하는 open source 프로젝트입니다. 다음 목록에서는 이러한 리소스에 대한 링크를 제공합니다.

Spring Cloud Azure 용도는 무엇인가요?

Spring Cloud Azure Spring 애플리케이션에서 다음 작업을 더 쉽게 수행할 수 있습니다.

Spring Cloud Azure 사용의 이점

다음 섹션에서는 Spring Cloud Azure 사용하는 이점에 대해 설명합니다. 이 섹션에서는 Azure Key Vault 저장된 비밀 검색을 예로 사용합니다. 이 섹션에서는 Spring Boot 애플리케이션 개발과 Spring Cloud Azure 없는 경우의 차이점을 비교합니다.

Spring Cloud Azure 없는 경우

Spring Cloud Azure 없으면 Azure Key Vault 저장된 비밀을 검색하려면 다음 단계를 수행해야 합니다.

  1. pom.xml 파일에 다음 종속성을 추가합니다.

    <dependency>
       <groupId>com.azure</groupId>
       <artifactId>azure-security-keyvault-secrets</artifactId>
       <version>4.5.2</version>
    </dependency>
    
  2. 다음 예제와 유사한 코드를 사용하여 SecretClient 클래스 인스턴스를 생성합니다.

    public class DemoClass {
        public static void main(String... args) {
        SecretClient client = new SecretClientBuilder()
            .vaultUrl("vaultUrl")
            .credential(new ClientSecretCredentialBuilder()
                .tenantId("tenantId")
                .clientId("clientId")
                .clientSecret("clientSecret")
                .build())
            .buildClient();
        }
    }
    
  3. 다음 예제와 같이 이러한 속성을 구성할 수 있도록 하여 client-idclient-secret 같은 하드 코딩 정보를 방지합니다.

    @ConfigurationProperties("azure.keyvault")
    public class KeyVaultProperties {
        private String vaultUrl;
        private String tenantId;
        private String clientId;
        private String clientSecret;
    
        public KeyVaultProperties(String vaultUrl, String tenantId, String clientId, String clientSecret) {
            this.vaultUrl = vaultUrl;
            this.tenantId = tenantId;
            this.clientId = clientId;
            this.clientSecret = clientSecret;
        }
    
        public String getVaultUrl() {
            return vaultUrl;
        }
    
        public void setVaultUrl(String vaultUrl) {
            this.vaultUrl = vaultUrl;
        }
    
        public String getTenantId() {
            return tenantId;
        }
    
        public void setTenantId(String tenantId) {
            this.tenantId = tenantId;
        }
    
        public String getClientId() {
            return clientId;
        }
    
        public void setClientId(String clientId) {
            this.clientId = clientId;
        }
    
        public String getClientSecret() {
            return clientSecret;
        }
    
        public void setClientSecret(String clientSecret) {
            this.clientSecret = clientSecret;
        }
    }
    
  4. 다음 예제와 같이 애플리케이션 코드를 업데이트합니다.

    @SpringBootApplication
    @EnableConfigurationProperties(KeyVaultProperties.class)
    public class SecretClientApplication implements CommandLineRunner {
        private KeyVaultProperties properties;
    
        public SecretClientApplication(KeyVaultProperties properties) {
            this.properties = properties;
        }
    
        public static void main(String[] args) {
            SpringApplication.run(SecretClientApplication.class, args);
        }
    
        @Override
        public void run(String... args) {
            SecretClient client = new SecretClientBuilder()
                .vaultUrl(properties.getVaultUrl())
                .credential(new ClientSecretCredentialBuilder()
                    .tenantId(properties.getTenantId())
                    .clientId(properties.getClientId())
                    .clientSecret(properties.getClientSecret())
                    .build())
                .buildClient();
            System.out.println("sampleProperty: " + client.getSecret("sampleProperty").getValue());
        }
    }
    
  5. 다음 예제와 같이 필요한 속성을 application.yml 파일에 추가합니다.

    azure:
      keyvault:
        vault-url:
        tenant-id:
        client-id:
        client-secret:
    
  6. 여러 위치에서 SecretClient을 사용해야 하는 경우 SecretClient 빈을 정의하세요. 그런 다음, 관련 위치에 SecretClient를 자동으로 연결하십시오.

Spring Cloud Azure와 함께

Spring Cloud Azure 사용하여 Azure Key Vault 저장된 비밀을 검색하려는 경우 다음 단계와 같이 요구 사항이 더 간단합니다.

  1. pom.xml 파일에 다음 종속성을 추가합니다.

    <dependencies>
      <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId>
      </dependency>
    </dependencies>
    
  2. 다음 예제와 같이 BOM(청구서)을 사용하여 Spring Cloud Azure 버전을 관리합니다.

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>7.1.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

메모

Spring Boot 4.0.x를 사용 중이라면, spring-cloud-azure-dependencies 버전을 7.1.0로 설정해야 합니다.

Spring Boot 3.5.x를 사용하는 경우, spring-cloud-azure-dependencies 버전을 6.1.0로 설정해야 합니다.

Spring Boot 3.1.x-3.5.x를 사용하는 경우, spring-cloud-azure-dependencies 버전을 5.25.0로 설정해야 합니다.

Spring Boot 2.x를 사용하는 경우 spring-cloud-azure-dependencies 버전을 4.20.0로 설정해야 합니다.

이 BOM(자재 명세서)을 <dependencyManagement> 섹션의 pom.xml 파일에서 구성해야 합니다. 이렇게 하면 모든 Spring Cloud Azure 종속성이 동일한 버전을 사용하게 됩니다.

이 BOM에 사용되는 버전에 대한 자세한 내용은 스프링 클라우드 Azure 사용해야 하는 경우 참조하세요.

  1. application.yml 파일에 다음 속성을 추가합니다.

    spring:
      cloud:
        azure:
          keyvault:
            secret:
              endpoint:
    
  2. 다음 명령을 사용하여 Azure CLI 로그인합니다. 그러면 자격 증명이 Azure CLI 제공되므로 client-idclient-secret 같은 다른 자격 증명 정보를 추가할 필요가 없습니다.

    az login
    
  3. 다음 예제에서 보이는 것처럼 관련된 위치에 SecretClient를 자동 배선하세요.

    @SpringBootApplication
    public class SecretClientApplication implements CommandLineRunner {
    
        private final SecretClient secretClient;
    
        public SecretClientApplication(SecretClient secretClient) {
            this.secretClient = secretClient;
        }
    
        public static void main(String[] args) {
            SpringApplication.run(SecretClientApplication.class, args);
        }
    
        @Override
        public void run(String... args) {
            System.out.println("sampleProperty: " + secretClient.getSecret("sampleProperty").getValue());
        }
    }
    

Spring Cloud Azure 자동 구성된 SecretClient 외에 몇 가지 다른 기능을 제공합니다. 예를 들어 다음 예제와 같이 @Value 사용하여 비밀 값을 가져올 수 있습니다.

@SpringBootApplication
public class PropertySourceApplication implements CommandLineRunner {

    @Value("${sampleProperty1}")
    private String sampleProperty1;

    public static void main(String[] args) {
        SpringApplication.run(PropertySourceApplication.class, args);
    }

    public void run(String[] args) {
        System.out.println("sampleProperty1: " + sampleProperty1);
    }

}

Spring Cloud Azure 구성 요소

Azure 지원

Service Bus, 스토리지, Active Directory 등과 같은 Azure Services에 대한 자동 구성 지원을 제공합니다.

Microsoft Entra ID

인증을 위한 Microsoft Entra ID Spring Security에 대한 통합 지원을 제공합니다. 자세한 내용은 Spring Security용 Spring Cloud Azure 지원을 참조하세요.

Azure Key Vault

Azure Key Vault 비밀과의 통합을 위한 Spring @Value 주석 기능을 제공합니다. 자세한 내용은 Spring Cloud Azure 비밀 관리 참조하세요.

Azure Storage

Azure Storage 서비스에 대한 Spring Boot 지원을 제공합니다. 자세한 내용은 Spring Cloud Azure 리소스 처리 참조하세요.

지원 받기

Spring Cloud Azure 대한 지원이 필요한 경우 다음과 같은 방법으로 도움을 요청할 수 있습니다.

다음 단계