Spring系列学习之Spring Cloud Vault微服务外部配置凭据客户端支持

英文原文:Page Redirection

目录

Spring Cloud Vault

特性

快速开始

添加Spring Cloud Vault配置模块

发布版本

相关项目


Spring Cloud Vault

Spring Cloud Vault Config为分布式系统中的外部化配置提供客户端支持。 使用HashiCorp的Vault,您可以在所有环境中为应用程序管理外部机密属性。 Vault可以管理静态和动态机密,例如远程应用程序/资源的用户名/密码,并为外部服务提供凭据,如MySQL,PostgreSQL,Apache Cassandra,MongoDB,Consul,AWS等。

特性

  •      从Vault检索机密并使用远程属性源初始化Spring Environment。
  •      获取使用SSL保护的机密。
  •      为MySQL,PostgreSQL,Apache Cassandra,MongoDB,Consul,AWS和RabbitMQ生成凭据。
  •      令牌,AppId,AppRole,客户端证书,Cubbyhole,以及AWS EC2和IAM,Kubernetes身份验证。
  •      Bootstrap应用程序上下文:主应用程序的父上下文,可以训练为执行任何操作。
  •      通过Spring Cloud Vault Connector使用HashiCorp的Vault服务代理进行Cloud Foundry集成。

快速开始

在项目中开始使用spring-cloud-vault的推荐方法是使用依赖关系管理系统 - 下面的代码段可以复制并粘贴到您的构建中。 需要帮忙? 请参阅我们的Maven和Gradle构建入门指南。

Maven:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-vault-dependencies</artifactId>
            <version>2.1.0.RC1</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-vault-config</artifactId>
    </dependency>
</dependencies><repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/libs-milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

Gradle:

buildscript {
	dependencies {
		classpath "io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE"
	}
}

apply plugin: "io.spring.dependency-management"

dependencyManagement {
	imports {
		mavenBom 'org.springframework.cloud:spring-cloud-vault-dependencies:2.1.0.RC1'
	}
}

dependencies {
	compile 'org.springframework.cloud:spring-cloud-starter-vault-config'
}repositories {
    maven {
        url 'https://repo.spring.io/libs-milestone'
    }
}

要开始使用Spring Cloud Vault,只需包含构建依赖项。

例如,典型的POM依赖关系是:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>

然后配置Vault端点和身份验证

bootstrap.yml用于基于令牌的身份验证

spring.application.name: my-application
spring.cloud.vault:
    host: localhost
    port: 8200
    scheme: https
    authentication: TOKEN
    token: …

用于AWS-EC2身份验证的bootstrap.yml

spring.application.name: my-application
spring.cloud.vault:
    host: localhost
    port: 8200
    scheme: https
    authentication: AWS_EC2

最后,使用应用程序中存储在Vault中的属性

@Configuration
@RestController
public class Application {

  @Value("${config.name}")
  String name = "World";

  @RequestMapping("/")
  public String home() {
    return "Hello " + name;
  }

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

Spring Cloud Vault Config使用应用程序名称和活动配置文件从Vaults读取配置属性:

/secret/{application}/{profile}
/secret/{application}
/secret/{default-context}/{profile}
/secret/{default-context}

添加Spring Cloud Vault配置模块


Spring Cloud Vault Config附带了多个支持不同集成的模块。 要在适当的版本中获取依赖关系,您可以在依赖关系管理中包含BOM(物料清单)。 例如,典型的POM依赖关系管理将是:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-vault-dependencies</artifactId>
            <version>x.y.z</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-vault-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-vault-config-consul</artifactId>
    </dependency>
</dependencies>

发布版本

Spring Cloud Vault

Release

Documentation

2.1.0 RC1

Reference API

2.0.3

Reference API

2.0.2

Reference API

1.1.3

Reference API

1.1.2

Reference API

1.1.2

Reference API

1.0.2

Reference API

相关项目

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值