W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Kubernetes具有用于存儲敏感數(shù)據(jù)(例如密碼,OAuth令牌等)的秘密的概念
。該項目提供了與Secrets
的集成,以使Spring Boot應用程序可以訪問機密。您可以通過設置spring.cloud.kubernetes.secrets.enabled
屬性來顯式啟用或禁用此功能。
啟用后,SecretsPropertySource
將從以下來源中為Secrets
查找Kubernetes:
spring.application.name
定義)
注意:
默認情況下,出于安全原因,未啟用通過API消費機密(以上第2點和第3點)。機密上的權限“列表”允許客戶端檢查指定名稱空間中的機密值。 此外,我們建議容器通過安裝的卷共享機密。
如果您通過API啟用使用機密,我們建議您使用授權策略(例如RBAC)限制對機密的訪問。有關通過API使用“機密”時的風險和最佳做法的更多信息,請參閱此文檔 。
如果找到了機密,則其數(shù)據(jù)可供應用程序使用。
假設我們有一個名為demo
的spring boot應用程序,該應用程序使用屬性讀取其數(shù)據(jù)庫配置。我們可以使用以下命令創(chuàng)建Kubernetes機密:
oc create secret generic db-secret --from-literal=username=user --from-literal=password=p455w0rd
前面的命令將創(chuàng)建以下秘密(您可以使用oc get secrets db-secret -o yaml
來查看):
apiVersion: v1 data: password: cDQ1NXcwcmQ= username: dXNlcg== kind: Secret metadata: creationTimestamp: 2017-07-04T09:15:57Z name: db-secret namespace: default resourceVersion: "357496" selfLink: /api/v1/namespaces/default/secrets/db-secret uid: 63c89263-6099-11e7-b3da-76d6186905a8 type: Opaque
請注意,數(shù)據(jù)包含create
命令提供的文字的Base64編碼版本。
然后,您的應用程序可以使用此秘密-例如,通過將秘密的值導出為環(huán)境變量:
apiVersion: v1 kind: Deployment metadata: name: ${project.artifactId} spec: template: spec: containers: - env: - name: DB_USERNAME valueFrom: secretKeyRef: name: db-secret key: username - name: DB_PASSWORD valueFrom: secretKeyRef: name: db-secret key: password
您可以通過多種方式選擇要使用的秘密:
通過列出映射機密的目錄:
-Dspring.cloud.kubernetes.secrets.paths=/etc/secrets/db-secret,etc/secrets/postgresql
如果您已將所有機密映射到公共根,則可以將它們設置為:
-Dspring.cloud.kubernetes.secrets.paths=/etc/secrets
通過設置命名機密:
-Dspring.cloud.kubernetes.secrets.name=db-secret
通過定義標簽列表:
-Dspring.cloud.kubernetes.secrets.labels.broker=activemq -Dspring.cloud.kubernetes.secrets.labels.db=postgresql
表140.2。Properties:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
|
|
|
通過API啟用或禁用使用機密(示例2和3) |
|
|
|
啟用機密 |
|
|
|
設置要查找的機密名稱 |
|
|
客戶端名稱空間 |
設置Kubernetes命名空間的查找位置 |
|
|
|
設置用于查找機密的標簽 |
|
|
|
設置安裝機密的路徑(示例1) |
筆記:
spring.cloud.kubernetes.secrets.labels
屬性的行為如
基于Map的綁定
所定義
。
spring.cloud.kubernetes.secrets.paths
屬性的行為與
基于Collection的binding
定義的行為相同
。
您可以在spring-boot-camel-config中找到使用機密的應用程序示例(盡管尚未更新以使用新的spring-cloud-kubernetes
項目)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: