<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hashicorp Vault 成功案例 彙整 - 歐立威科技</title>
	<atom:link href="https://www.omniwaresoft.com.tw/usecase/vault-usecase/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/</link>
	<description>歐立威科技 Omniwaresoft｜全方位企業級開源軟體解決方案</description>
	<lastBuildDate>Fri, 30 Jan 2026 03:23:32 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.4</generator>

<image>
	<url>https://www.omniwaresoft.com.tw/wp-content/uploads/2022/12/android-icon-192x192-1.png</url>
	<title>Hashicorp Vault 成功案例 彙整 - 歐立威科技</title>
	<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">242464019</site>	<item>
		<title>HashiCorp Vault 成功案例｜Booking.com 混合雲遷移</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/vault-bookingcom-hybrid-cloud/</link>
		
		<dc:creator><![CDATA[gladdis siew]]></dc:creator>
		<pubDate>Wed, 17 Sep 2025 00:49:00 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=45170</guid>

					<description><![CDATA[Booking.com 的營運規模龐大，每天為數百萬名旅客提供服務，其複雜的基礎架構橫跨裸機伺服器、AWS、GCP 與阿里雲。四年前，當 Dan Popescu（Booking.com 資深網站可靠性工程師） 加入金鑰管理團隊時，這家旅遊巨頭已經深入進行混合雲遷移，而這個過程也帶來了獨特的資安挑戰。]]></description>
										<content:encoded><![CDATA[
<p>Booking.com 的營運規模龐大，為數百萬名旅客提供服務，其複雜的基礎架構橫跨裸機伺服器、AWS、GCP 與阿里雲。</p>



<p>四年前，當 Dan Popescu 擔任 Booking.com 資深網站可靠性工程師、 加入金鑰管理團隊時，這家旅遊巨頭已經深入進行混合雲遷移，而這個過程也帶來了獨特的資安挑戰。</p>



<p>在近期 HashiDays 演講中，Dan 分享了他的團隊如何轉變 Booking.com 的金鑰管理方式，將 HashiCorp Vault 擴展至能夠在 100 多個 Kubernetes 叢集上，每秒處理 500 多個請求。</p>



<p>其團隊的使命是：「提供統一的金鑰管理解決方案，打造自助式體驗，使跨雲平台的金鑰共享與生命週期管理既無縫又安全。」</p>



<p><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">推薦閲讀</span>：<a href="https://www.omniwaresoft.com.tw/product-news/vault-news/about-hashicorp-vault/" target="_blank" rel="noreferrer noopener">了解 HashiCorp Vault 機密管理工具：運作流程、核心功能、多元使用案例</a></p>



<h2 class="wp-block-heading">Booking.com 混合雲旅程四大資安亮點</h2>



<h3 class="wp-block-heading">一、混合基礎架構的中央資安橋樑</h3>



<p>混合雲環境中，最大的資安風險在於各系統之間缺乏一致的控管。</p>



<p>Booking.com 希望在公有雲服務與內部基礎架構之間建立身份與金鑰管理的橋樑，讓開發人員無需為每個環境重新設計安全工具鏈與工作流程。</p>



<p>Booking.com <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">將 Vault 定位為多雲環境與裸機基礎架構之間的資安通訊橋樑</span>。當開發人員在內部服務目錄中建立資源時，Vault 會自動上線雲端資源並配置認證。</p>



<p class="is-style-sme-alert-success">無論應用程式運行在裸機、AWS、GCP 或內部 OpenStack 叢集，開發人員都能獲得一致的存取模式，避免各環境自訂解決方案常出現的資安錯誤，這解決了混合雲中維持資安標準同時提升開發生產力的挑戰。</p>



<h3 class="wp-block-heading">二、統一驗證的複雜度</h3>



<p>初期，Booking.com 發現驗證分散帶來重大資安風險。因爲他們需要管理數百個掛載點以及 Kubernetes 叢集中的數千個身份實體 —— 而每個應用程式部署在 100 個叢集上，就需要 100 個獨立掛載點和 200 個設定變更。</p>



<p>這種複雜性讓資安監控幾乎不可能，擴展也極具風險！</p>



<p>在 JWT 驗證遷移過程中，他們突破了挑戰：整合所有 Kubernetes 叢集的 JWK/JWS 端點到單一掛載點，並建立 JWS 管理器，每五分鐘自動更新驗證金鑰。</p>



<p>現在新增叢集只需少量設定變更，而不是數百個。</p>



<p class="is-style-sme-alert-success">簡化的驗證結構降低了錯誤配置的風險，並提升跨所有環境的存取模式可視性。這也讓安全事件回應更快速，因為只需監控和稽核單一驗證系統。</p>



<h3 class="wp-block-heading">三、策略性的雲端原生金鑰管理</h3>



<p>在制定金鑰管理策略時，Booking.com 也必須考量成本與效能。「我們在處理數百萬筆金鑰，跨數百個帳號有 30,000 個 AWS 角色，以及 6,500 個 Snowflake 角色。」Dan 提到。</p>



<p>2025 年，Booking.com 計畫使用 Vault 的 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">金鑰同步功能</span>，為金鑰管理系統增加彈性，同時保留 Vault 作為金鑰管理單一真實來源的優勢。透過金鑰同步，團隊可以在特定 AWS 使用案例中，使用像 AWS Secrets Manager 這類的其他金鑰管理工具，來維持較小的系統足跡。</p>



<p>與其無限制地採用雲端原生工具，他們要求團隊針對特定區域明確申請特定金鑰。Vault 仍然是單一真實來源，但團隊可透過 AWS Secrets Manager 存取適合雲端原生工作負載的金鑰，以提升效能。</p>



<p class="is-style-sme-alert-success">集中化的金鑰治理，同時保有戰術彈性。所有金鑰都經過 Vault 的政策引擎與稽核日誌，即使團隊使用雲端原生工具，也能確保一致的資安控管，避免資安碎片化，同時滿足特定使用需求！</p>



<h3 class="wp-block-heading">四、成本效益型金鑰管理</h3>



<p>太昂貴的資安解決方案往往會被放棄或妥協。而 Booking.com 的做法能夠 <span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">同時兼顧資安與成本效益</span>，對其營運規模而言至關重要。</p>



<p>他們的成本控管資安策略包括：</p>



<ul class="wp-block-list">
<li><strong>智慧 TTL 管理</strong>：Vault 金鑰引擎若未設定 TTL，金鑰會持續累積，可能導致系統中斷。透過適當 TTL 設定，可避免資源浪費與高昂停機成本。</li>



<li><strong>靜態使用者模式</strong>：針對 Snowflake 與 CockroachDB，改用靜態使用者並定期更新密碼，減輕管理負擔。</li>



<li><strong>選擇性雲端整合</strong>：利用 Vault 的同步功能，策略性地放置金鑰以兼顧成本與效能。</li>
</ul>



<p class="is-style-sme-alert-success">可持續的成本控管確保長期資安投入。可預測的支出讓資安改善能持續進行，而不受預算爭議影響，也避免團隊因成本壓力而規避工具使用。</p>



<h2 class="wp-block-heading">成果：Vault 打造無縫遷移基礎</h2>



<p>這些成果展現了 Vault 作為基礎資安架構的強大價值：</p>



<ul class="wp-block-list">
<li>消除 100 多個 Kubernetes 叢集的驗證複雜度</li>



<li>啟用自助上線功能，同時不犧牲資安監控</li>



<li>以一致的資安政策精簡多雲操作</li>



<li>支援大規模運行——每秒 500 多次請求，管理數百萬筆金鑰</li>



<li>透過 Terraform 基礎設施即程式碼加速 Vault 採用</li>
</ul>



<p>使用 Terraform Enterprise，Booking.com 現在能快速可靠地配置新的 Vault 叢集。系統機器會持續自動更新以維持穩定性，而即將實施的金鑰同步功能將維持 Vault 作為單一真實來源，同時允許策略性使用雲端原生工具。</p>



<p>最重要的是，他們的做法讓開發人員能自助操作，同時維持安全防護。團隊可直接上線應用程式並遷移至雲端平台，無需事前通過繁瑣的安全審核，因為資安模式已內建於平台中。</p>



<h2 class="wp-block-heading">總結</h2>



<p>由此可見，透過 Vault 的基礎工具與架構決策，資安不再是遷移瓶頸，反而成為加速可靠雲端採用的助力。對計畫進行混合雲與多雲遷移的組織而言，建立統一的 Vault 金鑰管理基礎，可以將資安從限制轉化為競爭優勢。</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/VAlKI0ldUGM?si=E-aW4Qr2U7Gui1oC" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<p>本文翻譯自：<a href="https://www.hashicorp.com/en/blog/4-security-wins-from-booking-com-s-hybrid-cloud-migration" target="_blank" rel="noreferrer noopener">https://www.hashicorp.com/en/blog/4-security-wins-from-booking-com-s-hybrid-cloud-migration</a> </p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>， <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友</a>、或 <a href="https://www.facebook.com/omniwaresoft/" target="_blank" rel="noreferrer noopener">追蹤臉書粉專</a>！</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">45170</post-id>	</item>
		<item>
		<title>Vodafone 如何透過 HashiCorp Vault 加速數據安全，開創新局面</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/vodafone-vault-security/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Mon, 07 Jul 2025 02:22:09 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<guid isPermaLink="false">https://www.omniwaresoft.com.tw/?p=43366</guid>

					<description><![CDATA[在數位時代，數據安全是企業營運的基石。對...]]></description>
										<content:encoded><![CDATA[
<p>在數位時代，數據安全是企業營運的基石。對於像 Vodafone 這樣擁有龐大用戶群和海量數據的電信巨頭而言，數據加密尤為重要。</p>



<p>Vodafone 在 21 個國家/地區擁有 3 億行動用戶，每天生成大量敏感數據。如何有效保護數據安全，同時不影響業務效率，成為 Vodafone 面臨的重大挑戰。</p>



<p>為了解決這難題，Vodafone 選擇 HashiCorp Vault 作為其數據安全解決方案的核心。<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Vault 是一個身份感知的機密管理和加密平台，能安全儲存和管理 API 金鑰、密碼、憑證等敏感資訊，並提供數據加密服務。</span></p>



<h2 class="wp-block-heading">Vodafone 面臨的海量資料加密挑戰</h2>



<p>Vodafone 每天需要處理來自超過 3 億行動客戶和物聯網設備的海量數據，面臨的挑戰如下：</p>



<ul class="wp-block-list">
<li>要求一個高容量、低延遲的加密解決方案，能每秒處理高達千萬級的加密操作</li>



<li>伺服器端需安全地匿名化數據，並有效管理金鑰的生命週期</li>



<li>實現基於角色的訪問控制 (RBAC) 是確保數據訪問安全的關鍵</li>
</ul>



<h2 class="wp-block-heading">HashiCorp Vault：Vodafone 的資料安全利器</h2>



<p>為應對資料安全挑戰，Vodafone 選擇 HashiCorp Vault 作為其解決方案的核心。</p>



<p>Vault 是一個身份感知的機密管理和加密平台，能夠安全地儲存和管理 API 金鑰、密碼、憑證等敏感資訊，並提供資料加密服務。Vault 的核心功能包括：</p>



<ul class="wp-block-list">
<li><strong><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">集中式機密管理</span></strong>：提供集中式的機密儲存、訪問和分發，簡化管理流程，降低人為錯誤風險。</li>



<li><strong><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">動態機密生成</span></strong>：能動態生成具有租期的機密，如資料庫憑證和 API 金鑰，並在租期到期後自動撤銷，有效降低洩露風險。</li>



<li><strong><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">資料加密</span></strong>：提供簡單易用的 API，使開發人員能輕鬆將資料加密功能整合到應用程式中，以保護資料在傳輸和儲存過程中的安全。</li>



<li><strong><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">身份驗證和授權</span></strong>：支援多種身份驗證方法，並根據身份和策略控制對機密的訪問權限，確保只有授權的用戶和應用程式能訪問敏感資料。</li>



<li><strong><span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">審計和監控</span></strong>：提供詳細審計日誌，幫助安全團隊監控機密使用情況，及時發現和應對潛在的安全威脅。</li>
</ul>



<h2 class="wp-block-heading">Vault 如何助力 Vodafone 構建高速加密引擎</h2>



<p>Vodafone 利用 HashiCorp Vault 的強大功能，成功構建了一個高速加密引擎，實現以下目標：</p>



<ol class="wp-block-list">
<li><strong>低延遲、高吞吐量</strong>：該加密引擎每小時可處理 360 億次數據加密，滿足 Vodafone 海量數據加密的需求，同時保持極低的延遲，確保業務順暢運行。</li>



<li><strong>可擴展的架構</strong>：Vault 的插件架構為 Vodafone 提供了擴展加密引擎功能的框架，使其能夠靈活應對不斷變化的安全需求。</li>



<li><strong>加密即服務</strong>：Vodafone 將加密引擎作為一項服務提供給多個工程團隊，簡化了數據加密流程，從而提高開發效率。</li>



<li><strong>保護 17 PB 數據湖</strong>：Vault 幫助 Vodafone 為其 17 PB 的數據湖啟用安全的加密技術，有效保護了儲存於其中的海量數據。</li>
</ol>



<h2 class="wp-block-heading">Vault 的可擴展性：為 Vodafone 量身打造解決方案</h2>



<p>Vodafone 選擇 Vault Enterprise，不僅因為其開箱即用的功能，更因為其強大的可擴展性，能夠支援未來的項目。<span style="background-image: linear-gradient(transparent 60%, rgba(252, 185, 0, 0.5) 60%)" class="sme-highlighter">Vault Enterprise 提供了廣泛的治理和策略功能，使 Vodafone 能夠精細控制數據訪問權限</span>。</p>



<p>為了滿足高速加密的需求，Vodafone 團隊充分發揮 Vault 的潛力，編寫了自己的插件，實現了以下功能：</p>



<ol class="wp-block-list">
<li><strong>數據加密與解密</strong>：使用 Google Tink 金鑰集進行數據的加密和解密，實現數據匿名化。</li>



<li><strong>伺服器端管理</strong>：在伺服器端進行數據的匿名化和金鑰生命週期管理，並與 Big Query 同步。</li>



<li><strong>瞬態或無狀態數據處理</strong>：提供瞬態或無狀態的數據加密和解密，並安全地將配置和金鑰保存在 Vault 中。</li>
</ol>



<p>Vodafone 雲端技術平台工程經理 Andy Shacklady 表示：「如果你也是 Vault 的用戶，將能體驗到其帶來的無限可能。」t 企業用戶，看看你能做到什麼！依據自身需求撰寫插件是如此簡單，而且可以根據預算調整處理速度。」</p>



<h2 class="wp-block-heading">成果：每小時處理 360 億次加密操作</h2>



<p>透過在 Google Cloud 中進行橫向擴展，Vodafone 在測試平台上實現了驚人的處理能力：每秒高達 1000 萬次加密，這相當於每小時 360 億次加密。Vault 的卓越性能和可擴展性，使 Vodafone 能夠輕鬆應對海量數據的加密挑戰。</p>



<h2 class="wp-block-heading">Vault：探索數據安全的全新潛力</h2>



<p>Vodafone 的成功案例充分展示了 HashiCorp Vault 在數據安全領域的巨大潛力。Vault 不僅是一個強大的秘密管理工具，更是一個高度可擴展的平台，讓企業能夠根據自身需求打造定制化的安全解決方案。</p>



<p>如果您也面臨數據安全和合規的挑戰，不妨考慮 HashiCorp Vault。Vault 將幫助您保護敏感數據，實現數據的價值最大化，並確保業務的合規性和持續性。</p>



<p>本文翻譯自：<a href="https://www.hashicorp.com/case-studies/vodafone?product_intent=vault">Unlocking possibilities</a></p>



<p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是<a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">43366</post-id>	</item>
		<item>
		<title>Vault ㄧ GM Cruise 保護自動駕駛汽車和製造者</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-gm-cruise/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Wed, 23 Mar 2022 02:19:44 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[成功案例]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=17269</guid>

					<description><![CDATA[GM Cruise 利用 Vault 保護自動駕駛汽車和製造者，主要的安全目標是進行平穩的變更，並實施適當的身份驗證和檢索。藉由自定義應用程式管理政策和配置、端到端測試、大規模運用 SSH 並設定政策，而 SSH EasyPass 也是一個更永續的實踐方式。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="17269" class="elementor elementor-17269" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-4c52d2f6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4c52d2f6" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-541853ed" data-id="541853ed" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-796a2165 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="796a2165" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p></p>
<p><span style="font-weight: 400;">在工程師的日常工作流程中建立安全性是一項巨大的挑戰。為了成為一名傑出的資安工程師，特別是在建立自主機器人時，您必須提供平穩的安全性。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">本篇文章將介紹我們採用哪些措施，以確保負責建造和部署自動駕駛汽車的人員能夠在世界級的內建安全性下操作。然後，我們將討論如何把為人類建立的相同系統用於機器人。&nbsp;</span></p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:30px"><b></b><strong><span style="font-size:30px;">自動駕駛汽車<b>管理政策和配置</b>的安全目標</span></strong></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們保護自動駕駛汽車的安全目標是什麼？我們不僅要考慮車輛，還要考慮整體情況。車輛本身可以安全行駛，所有外圍系統也互相影響，而這都是關鍵。我們如何保護車輛？我們如何保護所有重要的組件？我們需要一個健康的安全生態系統。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">平穩的變更</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們主要的安全目標是減少摩擦，平穩的變更。所以如果我們想出新的計畫，它需要盡可能順利的實施。我們希望透過提供易於使用、出色的解決方案來改進這一點。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">信任和保護</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">信任和保護是資訊安全行業的兩大要點，我們希望信任和保護所有資料，因此需要了解資料來源，才可以保護密鑰。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><span style="font-size: 25px;"><b>準備好開發新工具</b></span></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">這意味著您會發現系統間的差異，並為此開發新工具。</span><br><span style="font-weight: 400;">擁有 Vault 後，您將會發現系統中的差距，並準備好為這些差距開發工具。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">操作流程</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">以前我們是這樣操作的：有個文件存在於程式碼儲存庫中，我們有這些標準的複雜性和基本型別，例如加密操作。通常，到目前為止，如果您還沒有使用 Vault，那麼您會有很多工具。也許您喜歡使用 OpenSSL 命令行來加密文件。也許你喜歡使用一些 Python 包裝器。關鍵是，所有工具都是不一致的，所以 A 團隊用 GPG 加密，B 團隊沒有，所以當你需要共享文件時，你只好去 Stack Overflow 上查找它。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">如果我們要運用一個安全工具，比方說，一些不容易閱讀和理解且困惑的二進制協議，那麼您實現的安全工具可能不會那麼成功。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">設定用戶期望</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">用戶、終端用戶或工程師應該多久進行一次身份驗證？也許是 22 小時，也許是一天一次，也許這對一個企業來說是不可接受的。例如，開發團隊的產品 X 每 14 小時進行一次身份驗證以訪問密鑰，與每 2 小時密碼輪換的機器人，可以讓開發軟體檢查令牌並自動更新，有顯著的差異。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">我們可以設定期望，讓企業採用 Vault 來處理這個大型專案，需要在 X 週期進行身份驗證。例如對 Vault 進行身份驗證以獲取身份令牌來證明使用者身分。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">既然我們已經為開發團隊和終端用戶組設定期望，您將在合理的時間週期內進行身份驗證，並且您將執行 2FA。</span><span style="font-weight: 400;">Onboarding 政策非常重要，因此我制定了這四個 onboarding 問題，您可以在企業中採用和使用。</span></p>
<p></p>
<p></p>
<ol class="wp-block-list">
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">確定將由 Vault 儲存/操作的資料類型</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">確定誰將管理這些資料</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">識別並記錄誰（或什麼）可以訪問資料</span><span style="font-weight: 400;"><br></span><span style="font-weight: 400;">從第一天開始，您可能會放入一些密鑰，然後用戶可以使用它。如果您沒有明確定義誰擁有或誰負責維護，並從一開始就設定政策和身份驗證邊界，那麼您將遇到困難。</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">識別並實施適當的身份驗證和檢索</span></li>
</ol>
<p></p>
<p></p>
<p><span style="font-weight: 400;">如果身份驗證更為複雜，例如我有一個雲端實例。無論是需要身份驗證的平台，您都需要識別並設定它。一旦你確定了這一點，如果你有解決方案，你就交付它。如果沒有，就要去找別的解決方案並實施它。幸運的是，Vault 已經建立了一百萬種不同的身份驗證供您使用。</span></p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><strong><span style="font-size: 30px;">三步驟提升您的身份驗證</span></strong></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">如何選擇預設路徑結構？您如何選擇儲存密鑰的位置？哪個團隊管理預設路徑和執行概念？</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><span style="font-size: 25px;"><b>管理政策和配置</b></span></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">管理政策和配置十分重要，從政策和管理的角度來看，我們以文件結構的方式建立 Vault 配置的實體表示。而為什麼我們要配置像 Vault 這樣的應用程式，而不是使用配置來定義 Vault？如果我們手動完成所有操作，並且不可持續？</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">因此我們編寫了一個自定義應用程式，它橫越了文件系統架構，它類似於 Vault API 的樣子。您可以在那裡定義這些值。它可以為您提供了一種更改追蹤的方法，使安全操作人員對內部結構、預設路徑連結、Vault 和 API、schema 有更透徹的了解。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">也許您在 Vault 中一直使用更進階的抽象命令列，並且您不太確定儲存和檢索事物的預設路徑。當有人來問您做的 XYZ 預設路徑是什麼時，它可以追蹤您的配置和更加熟悉 internal。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><span style="font-size: 25px"><b>端到端測試</b></span></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">如果沒有適當的端到端測試，Vault 會是什麼？假設您的公司將製造一堆機器人，這些機器人也會與 Vault 對話。在此過程中，您檢查基本的健康指標，一切順利。通常，一旦 Vault 叢集的採用率增加，它將成為所有應用程式關鍵的路徑。然而，這開始讓一些人擔心，但主要是必須維護該叢集的人。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">強烈建議您確定 Vault 與您的應用程式或基礎架構的關係和執行措施。假設您平常的工作流程是驗證、寫入、讀取和刪除密鑰。例如，您想持續建立一些存在 Vault 外部的流程或測試框架。當完成後，它會問你：每個步驟都成功了嗎？每個請求的時間表是什麼？</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">這對兩件事非常有幫助。如果有一個問題開始浮現，您可以在有人進入您的 Slack channel 並使 security 更危險之前識別出來。此外，您可以識別特定時間內的使用情況。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">大規模設定政策</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">接下來，我們將討論我們如何處理大規模的政策。假設您有一組應用程式伺服器。通常的標準是：應用程式 A 上線，您為應用程式 A 編寫政策。應用程式 A 分佈在 500 台伺服器上，它們都使用相同的 permissions path。只要給他們政策，它會照常檢查。在這種情況下，我們每天要運轉數百個機器人。安全操作人員需要建立一個 （</span><span style="font-weight: 400;">自訂回呼函式</span><span style="font-weight: 400;">）webhook，現在機器人 700-2,000 不會被建立，因為這通常是個過程。我必須運行 create _policy.py 命令檔生成一些數字，並建立政策。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">作為 Vault Enterprise 的客戶，我們使用請求的實時 </span><a href="https://www.hashicorp.com/sentinel"><span style="font-weight: 400;">Sentinel </span></a><span style="font-weight: 400;">分析來簡化政策。以前，它是多對一，現在這個機器人可以發出請求，變成一對多。 Sentinel 將分析該請求，並查看請求中的一些屬性是否與嘗試提出的請求相匹配？</span><br><span style="font-weight: 400;">create_policy.py 已經過時了，因為你有一個新的很酷的、自動化的東西來處理它。我們大規模運用 SSH。典型的 SSH 範式有兩種執行方式，無論是您的 SSH 直接進入機器人，還是擴展和縮短一係列的系統，您只需要一人，操作員或管理員，他們就可以訪問任意數量的系統。典型的範式是，您有一個主機集中訪問，它會發送到您環境中的 X 台主機（一台訪問所有系統）。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">常見的做法是，我有一個用戶名和密碼或一個 SSH 密鑰，有人必須將它分散到這 100 萬個節點。而我有一個 two-factor 供應商的推送通知。問題點尤其是在規模上，隨著用戶的添加和刪除，您必須管理叢集主機中的所有外部資料。如果它是虛擬機，甚至是機器人，假設我們不是在製造汽車，而是在製造無人機或類似的東西。每次都必須更改訪問權限，將機器人帶入並更新某個公用金鑰，這不是長久之計。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">SSH EasyPass 是一個更永續的模型 。對於曾經去過在東岸世界上最大的遊樂園 Cedar Point 的任何人來說，EasyPass 的概念是：您擁有一張 free pass。概念有點類似，但從您已經投資了用戶採用此 Vault 工作流程的角度來看，您需要支付額外費用。當他們進行身份驗證時，他們已經習慣擁有這個令牌，可以讓他們現在做與 SSH 之類的事情。</span></p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><b></b><strong><span style="font-size: 30px;">頒發憑證</span></strong></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">頒發憑證有兩種方法。您可以使用公開憑證頒發機構的方式。我需要一個憑證來證明我們正在開發新事物。現在有了 </span><a href="https://www.vaultproject.io/docs/secrets/pki/index.html"><span style="font-weight: 400;">PKI</span></a><span style="font-weight: 400;"> 後端，我們可以利用第三方 CA。或者您也可以建立自己的憑證頒發機構。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">這對人類和機器人都有好處。對機器人與人類來說都很容易，但可能也沒那麼容易。從機器人或系統的角度來看，我們已經向 Vault 進行了身份驗證，我們擁有這個令牌，現在我們要做的就是提出請求憑證。我們已經實現了憑證信任鏈並頒發了憑證，對用戶也是如此。您不用擔心 openssl-req 命令。進行簡單的 API 調用，就可以獲得憑證。您甚至不必制定 CSR。</span></p>
<p></p>
<p></p>
<p><br>&nbsp;<br><span style="font-weight: 400;">本文翻譯自：</span><a href="https://www.hashicorp.com/resources/securing-autonomous-vehicles-cruise-vault">Vault at GM Cruise: Securing Autonomous Vehicles and the Humans Who Build Them</a><br><span style="font-weight: 400;">參考更多 HashiCorp Vault 相關資訊：</span><a href="https://www.omniwaresoft.com.tw/hashicorp_vault/"><span style="font-weight: 400;">www.omniwaresoft.com.tw/hashicorp_vault/</span></a><span style="font-weight: 400;">&nbsp;</span></p>
<p></p>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17269</post-id>	</item>
		<item>
		<title>Vault 成功案例：Anaplan 與 Vault 整合儲存機密</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-anaplan/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Tue, 22 Mar 2022 04:02:01 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[成功案例]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=17266</guid>

					<description><![CDATA[Anaplan 使用 Vault 減少管理機密的時間，機密和配置管理儲存到單一的機密管理平台，提高營運效率，不僅減少手動機密管理和網路服務的時間，也減少了設置、管理和監控第三方儲存系統的必要性，節省多達 30% 的實例成本、資本支出和時間成本。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="17266" class="elementor elementor-17266" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-481d2e2e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="481d2e2e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c330" data-id="48c6c330" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-598c1fd4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="598c1fd4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p><span style="font-weight: 400;">商務規劃軟體公司 Anaplan 使用 HashiCorp Vault 減少管理機密的時間。</span></p><h2><strong><span style="font-size: 18pt;">公司介紹</span></strong></h2><p><span style="font-weight: 400;">Anaplan 是一間商務規劃軟體公司，正在打造能讓企業績效領導者及其團隊相互溝通，以不斷適應、轉變和重塑的未來。 </span><span style="font-weight: 400;">使 Anaplan 分享可操作的洞見、賦予和釋放創造力以及推動創新。</span></p><p><span style="font-weight: 400;">整個企業的財務和營運領導者可以對複雜的情況進行分析，利用智能工具持續預測，並做出關鍵決策。 </span></p><h3><b></b><strong><span style="font-size: 14pt;">前端增長需要後端的支援</span></strong></h3><p><span style="font-weight: 400;">近年來，向 cloud-based 營運邁進的步伐越來越快。</span><span style="font-weight: 400;">但在 2020 年，前所未有的挑戰推動全球企業加速遷移，這也意味著要找到一個集中的平台來監控所有遷移的事務。許多組織向 Anaplan 尋求幫助。</span></p><p><span style="font-weight: 400;">Anaplan 在單一 cloud-based 平台中為決策提供資料，讓客戶自行編排企業績效，而無需管理 IT 系統來支援該平台。當客戶的資料呈現指數級增長，Anaplan 對高效、安全和可擴展的後端儲存和基礎架構的需求也隨之增長。</span></p><p><span style="font-weight: 400;">Anaplan 首席雲端工程師 Brian Menges 指出，發布平台的更新和版本應該像呼吸一樣容易。隨著我們的成長，它變成了一個更高風險、更有壓力的事件，因為必須管理營運的系統和網路方面的操作。</span></p><p><span style="font-weight: 400;">從長遠來看，我們希望在不影響服務可用性或性能的情況下管理成本，降低我們發布實踐的整體複雜性和成本管理。</span></p><h2><strong><span style="font-size: 18pt;">挑戰</span></strong><span style="font-weight: 400;"><br /></span></h2><ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">減少手動機密管理和網路服務的時間</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">降低營運成本和資本支出</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">在不犧牲性能的情況下整合基礎架構</span></li></ul><h2><strong><span style="font-size: 18pt;">更複雜 → 更多成本</span></strong></h2><p><span style="font-weight: 400;">Anaplan 快速增長的軟體即服務 (SaaS) 平台需要持續更新和新功能，以跟上快速發展的客戶需求和現代數位經濟的壓力。</span></p><p><span style="font-weight: 400;">多年來，該團隊使用 HashiCorp Consul 支援 HashiCorp Vault 作為管理跨多朵雲的訪問密鑰和機密的儲存。</span></p><p><span style="font-weight: 400;">然而，同時管理意味著團隊必須花費時間和資源來管理兩個獨立的平台，例如：維護映像檔、協調操作系統、支付它們之間的網路流量。</span></p><p><span style="font-weight: 400;">多個維護週期需要觀察，其中任何變化都可能影響另一個，因此必須承擔雙重的責任，以確保它們使用相同的資料和配置工作。</span></p><p><span style="font-weight: 400;">整合到一個單一的機密管理平台非常適合簡化營運，進而提高營運效率，同時最大限度地減少一個系統的錯誤將影響另一個系統，以及整體關鍵服務可用性。</span></p><p><span style="font-weight: 400;">根據 Menges 的説法，平衡版本或功能發布與維護服務可用性，取決於他的團隊是否能有效管理多達七個不同實例的 HashiCorp 基礎架構即程式碼解決方案（Terraform），以及近十種 Consul 和 Vault 叢集的能力。</span></p><p><span style="font-weight: 400;">運行兩個獨立系統所需的大量稽核日誌、儀表板、虛擬機和樣式配置實際上可以作為一個系統運行，這超出我們預估需要消耗的時間和成本。</span></p><p><span style="font-weight: 400;">最終，我們決定將兩個系統整合到一個系統中，可以幫助降低營運成本，同時提高生產力和整體平台性能。</span></p><h2><strong><span style="font-size: 18pt;">解決方案</span></strong></h2><p><span style="font-weight: 400;">Anaplan 正在使用 HashiCorp Vault 整合機密儲存，以實現更有效的機密和配置管理，支援快速擴展的 customer-facing 平台後端。</span></p><h3><strong><span style="font-size: 14pt;">選擇 Vault 的好處</span></strong></h3><p><span style="font-weight: 400;">Anaplan 團隊認為最簡單的問題是其機密管理實踐，目的在將機密操作整合到單一解決方案中。</span></p><p><span style="font-weight: 400;">該團隊評估了許多第三方解決方案，甚至開發了自己的機密解決方案，並且選擇 HashiCorp Vault 的整合儲存作為其原生雲方法，因為它與 Anaplan 的整體平台策略和方向高度契合。</span></p><p><span style="font-weight: 400;">借助 Vault 整合儲存（</span><span style="font-weight: 400;">Vault integrated storage</span><span style="font-weight: 400;">），Anaplan 可以獲得一系列的特性和功能，從而建立高效、敏捷且高經濟效益的模型來管理關鍵資料。現今，Anaplan 之前儲存在其他地方的資訊被放置在 Vault 伺服器上。</span></p><p><span style="font-weight: 400;">更重要的是，Vault 整合儲存減少了設置、管理和監控第三方儲存系統的必要性，最大限度地減少了團隊必須執行的手動配置量，同時透過消除額外的網路躍點提供更好的網路性能。</span></p><p><span style="font-weight: 400;">與其他後端儲存不同，Vault 整合儲存將更新寫入硬碟，這讓 Vault 的資料集擺脫主機 RAM 數量的限制。</span></p><p><span style="font-weight: 400;">Vault 解決方案不是從單一資料源運行，而是透過 Raft Consensus Algorithm 在 Vault 叢集中的所有節點上複製其資料副本。</span></p><p><span style="font-weight: 400;">儘管直接寫入硬碟通常比保存到 in-memory 資料庫慢，但它還透過減少 IT footprint 和幫助降低基礎架構成本來減輕 Menges 團隊的營運負擔。</span></p><p><span style="font-weight: 400;">Menges 也説明，使用 Vault 整合儲存幫助我們將需要管理的不同叢集的數量減少了近一半，並完全消除我們過去投入 Vault 的前端資源。</span><span style="font-weight: 400;">在部署、維護映像檔、協調操作系統的時間減少 50 %，因為我們不再需要一個團隊來管理單獨的平台。</span></p><p><span style="font-weight: 400;">所有策略和部署現在都可以透過 Terraform 自動化，讓我們的團隊專注於更有價值的活動。</span></p><h3><strong><span style="font-size: 14pt;">時間就是金錢</span></strong></h3><p><span style="font-weight: 400;">Vault 整合儲存一直是 Anaplan 業務的改革主力。切換到 Vault 整合儲存的最大好處之一是我們需要觀察和管理的資源減少了許多。</span></p><p><span style="font-weight: 400;">將近一半的稽核日誌、儀表板、虛擬機、來自 AWS 或 Google 的映像檔，都需要處理。 過去必須對多個系統執行兩次操作，現在則可以一次透過 Vault 整合儲存完成！</span></p><p><span style="font-weight: 400;">除了減輕團隊的時間負擔外，遷移也為團隊和公司帶來了重要的財務收益。</span></p><p><span style="font-weight: 400;">具體來說，它幫助該公司節省了多達 30% 的實例成本，將其機密管理叢集從 8 個虛擬機縮減到 5 個，同時還減少了昂貴的儲存網路流量和系統之間的持續流量交換，每年僅流量成本就可能節省數千美元。</span></p><p><span style="font-weight: 400;">儘管如此，Menges 表示，雖然節省時間和成本對團隊和整個公司來說都是巨大的成就，但與 HashiCorp 緊密的關係才是長期成功和持續進步的關鍵。</span></p><p><span style="font-weight: 400;">我們與 HashiCorp 保持著良好的關係，因此我們很放心的提出功能請求，並定期討論新解決方案與推薦作法。</span></p><p><span style="font-weight: 400;">儘管我們比大多數人更早採用一些功能，但總是有更多需要學習、更多考慮和更多的工作要做。擁有一個值得信賴的合作夥伴來幫助解決問題，並繼續推動我們更接近我們理想的業務和營運狀態非常重要。</span></p><h2><strong><span style="font-size: 18pt;">成果</span></strong></h2><ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">將機密和配置管理整合到一個平台</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">在兩個系統中管理資料所花費的時間最多可減少一半</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">將來自 AWS 或 Google、VM 和儀表板的稽核日誌、映像檔減少 50%</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">每個叢集大小的機密管理從 8 個虛擬機合併到 5 個</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">將整體實例成本降低約 30%</span></li></ul><p><span style="font-weight: 400;">本文翻譯自：</span><a href="https://www.hashicorp.com/case-studies/anaplan" target="_blank" rel="noopener"><span style="font-weight: 400;">A unified plan for secrets</span></a><span style="font-weight: 400;"> </span><br /><span style="font-weight: 400;">參考更多 HashiCorp Vault 相關資訊：</span><a href="https://www.omniwaresoft.com.tw/hashicorp_vault/" target="_blank" rel="noopener"><span style="font-weight: 400;">www.omniwaresoft.com.tw/hashicorp_vault/</span></a></p><p>想了解更多資訊，<a href="https://www.omniwaresoft.com.tw/contact/" target="_blank" rel="noreferrer noopener">歡迎聯絡我們</a>，或是 <a href="https://page.line.me/870pcqyh?oat__id=4761625&amp;openQrModal=true" target="_blank" rel="noreferrer noopener">加入歐立威 Line 好友！</a></p>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17266</post-id>	</item>
		<item>
		<title>ＨashiCorp VaultㄧASAPP 在 Kubernetes 上使用 Operator 模式實現自動化端到端服務</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-asapp-kubernetes-operator/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Tue, 08 Mar 2022 10:05:16 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[成功案例]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<category><![CDATA[K8s]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=17142</guid>

					<description><![CDATA[ASAPP 在 Kubernetes 上使用 Operator 模式運行 Vault，讓客戶能夠與 Vault 整合並管理機密，而無需被任何 SRE 干擾。此篇文章，我們將討論在 VM 到 Kubernetes 上運行 Vault 的歷程，並討論在 Kubernetes 上運行的優勢。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="17142" class="elementor elementor-17142" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-33bae93f elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="33bae93f" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-59afd67c" data-id="59afd67c" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-58369d86 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="58369d86" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p></p>
<h2 class="wp-block-heading" style="font-size:30px"><strong><span style="font-size: 30px;">挑戰</span></strong></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">在大約三年前 ASAPP 開始使用 Kubernetes，不久後開始使用 Vault。因為機密管理和 Kubernetes 的設計不是那麼完善，無論是既有的平台或產品上，而 Vault 可以輕鬆達成所需。</span><br><span style="font-weight: 400;">當時，Kubernetes 是 1.9 版本，而 Vault 是 0.8 或 0.9 的版本。我們獲得的建議是盡可能單獨運行 Vault。事實上，在 Kubernetes 中運行它的工具幾乎不存在。因此，我們在 EC2 虛擬機上運行它。&nbsp;</span></p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><strong><span style="font-size: 30px;">使用產品</span></strong></h2>
<p></p>
<p></p>
<p><a href="https://www.omniwaresoft.com.tw/hashicorp_vault/"><span style="font-weight: 400;">HashiCorp </span></a><span style="font-weight: 400;">、Kubernetes、<a href="https://www.vaultproject.io/">Vault</a></span></p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><strong><span style="font-size: 30px;">VM 到 Kubernetes 上運行 Vault 的歷程</span></strong></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們是 AWS shop，擁有網路邊界的 VPC，Kubernetes 叢集在此與 Vault 通訊，生產工作負載會使用 Service Account 身份運行。因為 Vault 發布的 Kubernetes OAuth 後端才剛上市，因此讓我們可以自動使用身份驗證方案。</span><br><span style="font-weight: 400;">SRE 團隊可以同時維護 Vault 配置和靜態機密（</span><a href="https://learn.hashicorp.com/tutorials/vault/static-secrets"><span style="font-weight: 400;">static secrets</span></a><span style="font-weight: 400;">）。Vault 配置分為兩部分並用 </span><a href="https://www.hashicorp.com/products/terraform"><span style="font-weight: 400;">Terraform</span></a><span style="font-weight: 400;"> 維護它們。第一，本身 Vault 叢集到形成 Vault 叢集的雲端資源以及角色、策略、選項等後端配置。第二，單獨管理靜態機密。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">每個服務的配置和抽象化</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們已經足夠抽像出每個服務的配置。因此，對於需要透過 Vault 進行身份驗證的任何新服務，服務所有者只需添加在在此列表中，就會傳遞給一個 Terraform </span><a href="https://learn.hashicorp.com/terraform/getting-started/modules.html"><span style="font-weight: 400;">模組</span></a><span style="font-weight: 400;">，該模組將建立服務所需的一切，包含</span><a href="https://www.hashicorp.com/resources/policies-Vault"><span style="font-weight: 400;">策略</span></a><span style="font-weight: 400;">權限、角色等。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">Static Secrets 靜態機密</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">當時 Vault UI 只有 Enterprise版本，我們使用的是開源的版本，因此靜態機密的 KV 後端還在第一版。</span><br><span style="font-weight: 400;">我們的問題是修改附加密鑰或修改協助機密十分複雜。首先，我們必須在命令行中執行此操作，導出至 JSON 文件、修改、重新導入導入，而手動操作十分容易出錯。我們最終採用了使用 KMS 離線加密純文本機密的模式，然後將該 KMS 儲存在 Source Control 中。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">字符串（String）不是實際的機密，而是它的 KMS 加密版本。我們把它放在一個 Terraform 中，我們有一個資料源物件，可以動態解密它，然後 vault generic secret 導入 Vault。顯然，這樣做是有風險的，但是透過使用 Terraform in-memory 後端可以減少此風險。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">即使它沒有記錄，您可以將此 in-memory 後端與空塊一起使用。後端僅存在in-memory，並且只存在於運行期間，不存在機密以純文本形式持久遠程的狀態。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><b></b><strong><span style="font-size: 25px;">多個微服務和單租戶部署以建立高基數</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">現實情況是我們有多個單租戶 Kubernetes 叢集的部署模型。它們每個都有對應的 Vault 叢集而配置幾乎完全相同。</span><br><span style="font-weight: 400;">最重要的是，我們正在經歷多個</span><a href="https://www.hashicorp.com/resources/what-are-challenges-microservice-networking"><span style="font-weight: 400;">微服務</span></a><span style="font-weight: 400;">的爆炸式增長。意味著任何修改牽一髮動全身，要對多個微服務、環境的配置和機密進行多次修改，而不是單個微服務和單個環境而已。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><span style="font-size: 25px;"><strong>無法持續整合/部署（CI/CD）</strong></span></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">如果我們有某種形式的 CI/CD 來進行這些更改，這通常不會有問題，但SRE 團隊遇到一個瓶頸，一切都需要手動應用。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><b></b><span style="font-size:25px;"><strong>Code 是集體所有，但資源不是</strong></span></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">服務自助化的觀念導致服務所有者認為他們可以用 Vault 對服務進行身份驗證和配置。現實情況是，服務所有者的介面都停止了。 PR 批准合併和申請必須由 SRE 團隊完成。該團隊擁有 Terraform 後端的權限以及 Vault 和解密 KMS 的權限。它與 SRE 團隊的耦合度太高，無法實現真正的自助服務。</span></p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><strong><span style="font-size: 30px;">Kubernetes 運行的優勢</span></strong></h2>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">Kubernetes Operator Pattern</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">Kubernetes 本身就像一個循環運行的大控制器，將物件排解或宣告物件為真實的物件，如 pod 和容器等等。但最重要的是，您可以運行客製化控制器層來排解客製化資源定義。這是另一個 Kubernetes 概念，它們是任意資料結構，用於定義事物的屬性和狀態。無論是您的業務領域中的事物、實體物件、外部 API 等。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">它不僅限於 Kubernetes API。控制器不需要只作用於 Kubernetes 物件，也可以與外部 API 整合。例如，在我們的案例中，我們與 AWS API 以及 Vault 後端整合。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">與我們所擁有的 Terraform 設置相比，主要優勢之一是減少了</span><a href="http://hashicorp.com/resources/how-can-i-prevent-configuration-drift"><span style="font-weight: 400;">偏移（drift）</span></a><span style="font-weight: 400;">。它持續確保狀態按定義運行。Terraform 應用不僅僅是一個好的 Cron 作業，因為它合併了所有 API，以及在每個 cron sec 或每個事件的循環上運行，以確保事情如你定義一樣。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">Kubernetes 的另一個方面是導入控制器。它們是攔截對 Kubernetes API 調用的 webhook。無論是您是人為運行 kubectl apply，還是在機器運行（例如 Jenkins 或 Spinnaker）或其他控制器正在與 Kubernetes API 溝通，這些 webhook 將攔截請求。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">其中一種是驗證 webhook，它能檢查有效負載，拒絕請求或將其傳遞。另一種變異 webhook 檢查有效負載，可以在將其傳回並在 Kubernetes 儲存、SCD 或任何您擁有的東西中處理先前的修改。</span><br><span style="font-weight: 400;">驗證 webhook 的主要用例是強制執行超出 RBAC 的規則或限制，無論用戶或角色是否有權執行操作。對於 mutating webhook，您可以使用運行時已知的東西來清理輸入或修改物件。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">Vault in Kubernetes</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">首先，我們想利用 Kubernetes 本身作為自動化平台。我們的服務已經在使用 Kubernetes 身份驗證，因此引入 Vault 並沒有帶來太多好處。但它減少必須維護額外 EC2 實例集的許多風險或操作複雜性。更重要的是，我們希望將配置和機密管理的所有權交給服務團隊。我們希望移除人工作業以及 SRE 團隊，而不必依賴外部團隊。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">下文是我們正在查看的內容以及我們最終得到的內容。首先，現在都在 Kubernetes 中運行，看起來都一樣，我們仍然有工作負載，使用 Service Account 身份運行的 pod 向 Vault 進行身份驗證。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">但我們現在有一個 Vault Operator，負責在內部建立 Vault 資源、pod 和服務等。我們有另一個操作人員負責發現需要為 Vault 身份驗證配置的身份，並為此重新配置 Vault。我們有修改工作負載的變異 webhook，以便他們可以發現 Vault，或知道要與哪個 Vault 溝通。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">Vault Operator</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">對於 Vault Operator，我們使用的是開源版本，由 Banzai Cloud 公司維護。它被稱為 Bank-Vaults。這實際上是在您的叢集中安裝了一個名為 Vault 的新的自定義資源，您可以在該物件中定義 Vault 叢集的狀態和配置。</span><br><span style="font-weight: 400;">這個單一物件用包含所有內容的單一物件取代了我們用於雲資源和配置的 Terraform。最重要的是，它有一個可以被其他東西修改的程式介面。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">Vault Dynamic Configuration Operator</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們的生產工作負載使用 Service Account 物件來使用該身份來識別 Vault，並將 job更換為 Vault </span><a href="https://www.vaultproject.io/guides/identity/lease.html"><span style="font-weight: 400;">令牌</span></a><span style="font-weight: 400;">。</span><br><span style="font-weight: 400;">操作人員需要將配置的 Service Accounts 添加到其中。這裡的關鍵是操作人員不是直接修改 Vault，而是在修改之前定義的 Vault 物件。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">然後 Vault Operator 接受這些變更並對後端進行更改。運行時的行為沒有改變，因為從服務的角度來看，它仍然使用其中的一些身份與同一個 Vault 通訊，並使用同一個工作流進行身份驗證。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">過去如果想要在程式碼前四行聲明 Service Account，就需要添加一個註解，寫著「我希望自動配置」。現在，Vault 後端將擁有角色策略和配置，以便使用 Service Account 的任何服務都能夠與之對話。不需要任何手動參與，因為一切都是在幕後以程式化方式進行。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">Mutating Webhooks</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">Webhook 的想法是透過刪除他們需要知道或修改的事物的表面區域，來降低服務所有者的複雜性。我們想避免 copy-paste，因為也許它們會從以前整合中複製，但現在已經不兼容或需要複製邊車（sidecar） 定義。</span><br><span style="font-weight: 400;">最重要的是，sidecar 本身抽像出我所指的身份驗證服務。這項服務必須了解使用 Kubernetes 特定身份驗證端點的流程，而不是直接請求機密，因為它不需要知道其餘的事情。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">因為我們知道邊車是有爭議的。從長遠來看，我們希望它會趨於一致，但我們也希望為想擁有更多掌控權的團隊明確地提供選擇。您可以擁有自己的 Vault 相關配置並進行相同的邊車定義，或者您可以使用註解，聲明您的意圖，然後 webhook 將會接管。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">Vault Agent Auto-Inject</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">在現實生活中是這樣的，例如，我有我的部署定義，我想在那裡導入一個邊車。但我不想定義邊車，我希望 webhook 為我做這件事。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我添加了一個註解，上面寫著「我希望在這個部署定義中</span><a href="https://learn.hashicorp.com/tutorials/vault/agent-kubernetes"><span style="font-weight: 400;">導入邊車</span></a><span style="font-weight: 400;">。」當該 pod 被調度時，webhook 將攔截請求並導入 Vault agent sidecar。邊車定義未在部署清單中明確聲明，實際上，如果您執行 kubectl describe deployment 之類的操作，您將看不到它。但是，如果您執行 kubectl describe pod，您會看到它，因為它是及時導入的，就在 pod 被安排之前。</span><span style="font-weight: 400;">對於為 Vault 進行直接整合的服務不需要透過邊車。他們還可以請求明確定義環境變量。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我需要定義預填寫的變量。在運行時，當 pod 被調度時，變異的 webhook 將導入 Vault address，Vault CA cert 等等。它不僅會掛載值，還會掛載</span><span style="font-weight: 400;">儲存裝置，</span><span style="font-weight: 400;">並且需要 CA 憑證。所有這些值都是 webhook 先前知道的，因為它是預先配置的，這就是我們抽象所有資源的地方。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">KMS Vault Operator</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們有 KMS Vault Operator 現在有一個新的物件種類，它被稱為 KMS Vault Secret。它是 Kubernetes 之前定義的自定義資源。</span><br><span style="font-weight: 400;">它遵循相同的流程，我們使用 KMS 離線加密機密，我們將其儲存在原始碼控制中。它將成為程式碼及機密，因為現在它是 YAML 中的一個 Kubernetes 物件，你可以將它嵌入到你的 helm charts 或 pipelines 中。Operator 會發現這些物件，然後讀取 KMS 字符串，在 in-memory 解密，導入 Vault。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">實際上，它看起來與 Terraform 模式非常相似。您擁有名為 KMS Vault Secret 的新物件類型、將被建立機密的路徑、 KV 版本（例如 V1）、密鑰和加密的機密。同樣，沒有任何純文字的紀錄。因此我們回到建立和配置 Vault、改變工作負載和導入機密的部分。除了剛開始的必要條件和建立之外，這一切都不需要人力。</span></p>
<p></p>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17142</post-id>	</item>
		<item>
		<title>ＨashiCorp VaultㄧQ2&#8217;s Nomad 利用 Consul 和 Vault 動態檢索機密</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-q2-nomad/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Tue, 08 Mar 2022 02:24:58 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[成功案例]]></category>
		<category><![CDATA[Consul]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=17138</guid>

					<description><![CDATA[Q2 的 Nomad 環境利用 Consul 和 Vault 整合動態檢索機密，運用令牌身份驗證方法，以及使用 Vault 的動態憑證。也探討模板化、在堆棧之間重新使用容器映像，並介紹在地端運行 Nomad 的最佳實踐。最後，本文將介紹他們使用現代化方法在傳統 VMware 資料中心環境中管理 VM。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="17138" class="elementor elementor-17138" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-ea900aa elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ea900aa" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-26574a8d" data-id="26574a8d" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-526121d8 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="526121d8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p></p>
<h2 class="has-large-font-size wp-block-heading"><strong><span style="font-size: 30px;">公司介紹&nbsp;</span></strong></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">Q2 提供全面的數位銀行解決方案，包括開戶、數位網路銀行、貸款解決方案、欺詐保護等等。我們使金融機構能夠為每個帳戶持有人提供豐富的資料驅動體驗。我們滿足消費者銀行業務、小型企業、企業銀行業務，甚至金融科技公司的需求。</span><br><span style="font-weight: 400;">美國十分之一的網上銀行用戶使用 Q2。每分鐘價值 260 萬美元的資金流經我們的平台，每年約 1.5 萬億美元。美國前 100 家銀行中有 33% 是 Q2 的客戶，大多運行在 Nomad 之上的應用程式中。</span></p>
<p></p>
<p></p>
<h2 class="has-large-font-size wp-block-heading"><strong><span style="font-size: 30px;">挑戰</span></strong></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">在 2016 年至 2017 年，我們的應用程式以非常過時的方式運行。部署和升級我們的應用程式涉及大量繁瑣的手動工作，錯誤的可能性也很大。在部署和運行應用程式後，需要進行大量維護。管理生命週期通常很辛苦，確保應用程式保持運行就需要很多時間。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們以手動的方式響應告警並重新啟動服務，在整個環境中引入新的方法是幾乎是不可能的，而且風險很大。如果我們想同時向所有客戶大規模推出更改，則需要大量的計劃和工作，並且風險很高。</span><span style="font-weight: 400;">因為涉及大量要變動的應用程式的修改，這是一項需要手動的任務。我們需要一種更好的方法來擴展環境，以實現快速變更和自助服務。很明顯，隨著我們繼續擴大規模，我們需要徹底改革。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">在評估解決方案和未來走向時，必須滿足幾個重要的考慮。首先，我們的應用程式的很大一部分是基於 Windows。例如，我們的核心業務邏輯在 IIS 上運行。我們需要有 Windows 和 Linux 支援。</span><br><span style="font-weight: 400;">儘管我們更喜歡運行容器，但我們沒有非得要使用它們。如果可以，我們更喜歡直接在 VM 上運行應用程式。</span><span style="font-weight: 400;">我們希望在不對現有應用程式進行大量且耗時的重寫為前提下改進工作流程。由於我們所處的行業，安全性和合規性執行極為關鍵。最後，我們需要簡單、易於使用和維護的解決方案。</span></p>
<p></p>
<p></p>
<h2 class="has-large-font-size wp-block-heading"><strong><span style="font-size: 30px;">使用產品</span></strong></h2>
<p></p>
<p></p>
<p><a href="https://www.omniwaresoft.com.tw/hashicorp_vault/"><span style="font-weight: 400;">HashiCorp</span></a><a href="https://www.hashicorp.com/products/nomad"><span style="font-weight: 400;">、</span><span style="font-weight: 400;">Nomad</span></a><span style="font-weight: 400;">、</span><a href="https://www.vaultproject.io/"><span style="font-weight: 400;">Vault</span></a><span style="font-weight: 400;">、</span><a href="https://www.hashicorp.com/products/consul"><span style="font-weight: 400;">Consul</span></a></p>
<p></p>
<p></p>
<h2 class="has-large-font-size wp-block-heading"><span style="font-size: 30px;"><strong>解決方案</strong></span></h2>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">HashiCorp Nomad</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們評估了幾個主要的協作器。最終，我們選擇了 Nomad，因為它滿足了我們的所有要求。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">全面增加部署</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">由於部署十分簡單，因此建立應用程式變得更加容易，可以進行更好的測試和實驗，並且總體上更容易更改。部署和變更也具有更好的歷史記錄，以便稽核。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">提高應用程式彈性</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們的生產堆棧也獲得額外的彈性。這樣做的方法是防止應用程式堆棧中的單點故障，並確保多個副本同時運行。 Nomad 自動確保服務保持健康運行，並為我們處理 VM 故障和維護事件。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><span style="font-size: 25px;"><b>提高標準和安全性</b></span></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們的客戶十分期待其安全和合規的環境，而 Nomad 正在幫助我們實現這個目標。我們能夠改善和執行所有應用程式的標準。應用程式堆棧現在被定義為程式碼，可以進行版本控制，經過同行審查程序。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們能夠透過自動化工具進行更改，以強制執行標準化。例如，像 </span><a href="https://www.hashicorp.com/sentinel"><span style="font-weight: 400;">Sentinel</span></a><span style="font-weight: 400;"> 這樣的工具，允許我們在作業中強制執行允許的驅動程式、允許的服務和標準配置選項。它還允許我們指定最低和最高資源標準。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">使用 Nomad ACL 和 </span><a href="https://www.hashicorp.com/products/vault/"><span style="font-weight: 400;">Vault</span></a><span style="font-weight: 400;"> 對管理和部署作業的訪問進行嚴格控管。這意味著更改具有稽核追蹤，並且可能曾經存在於配置文件中的機密現在已移至 Vault。 Nomad 和 Vault 都具有稽核日誌紀錄功能。這可以讓您更好地了解環境中發生的行為。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">實踐新技術</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">使用 Nomad，我們的 SRE 和平台工程團隊已經能夠過渡到一些最新的技術管理實踐。我們能夠進步到</span><span style="font-weight: 400;">高市場佔有率及低預期增長的業務</span><span style="font-weight: 400;">。底層 VM 現在更加通用，對於生命週期和維護十分合適。在 Q2，我們能夠將焦點轉移到支援我們的開發團隊和其他業務部門。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading"><strong><span style="font-size: 25px;">環境概述</span></strong></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">今天，我們在 Nomad 的整個環境中運行了 7,000 多個工作，也就是跨 1,500 個 VM 的 40,000 多個任務。我們今天大部分使用 HashiStack, Nomad, </span><a href="https://www.hashicorp.com/products/consul/"><span style="font-weight: 400;">Consul</span></a><span style="font-weight: 400;"> 和 Vault。我們還使用 <a href="https://www.hashicorp.com/products/terraform/">Terraform</a> 和 <a href="https://www.packer.io/">Packer</a> 進行 VM 管理。我們的大多數 Nomad 基礎設施都位於地端，非常傳統但現代的資料中心。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading" style="font-size:25px"><b>作業文件（Job File）</b></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們嘗試從 Windows 的 Docker 開始，但遇到太多挑戰，例如穩定性和密度損失。透過 app 池驅動程式，我們維護運行 IIS 以及 Nomad 和 Consul agents 的 VM。當我們提交作業時，</span><a href="https://www.nomadproject.io/docs/job-specification/artifact"><span style="font-weight: 400;">artifact stanza</span></a><span style="font-weight: 400;"> 會下拉 app 池內容並在 IIS 中啟動它。隨著我們遷移到 .NET Core，下一步是從綁定 IIS 的應用程式遷移到直接的可執行文件。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們透過 Jinja 模板過程生成 Nomad 作業，並將其儲存在版本控制中。這個作業片段以熟悉的 HCL 格式分成兩個映像檔。我們今天為每個 Nomad 區域生成一個作業文件，也期待嘗試更多區域部署。我們將物理資料中心視為 Nomad 區域，主要是由於 Nomad leader如何從地端 Vault 叢集中檢索 Vault </span><a href="https://www.vaultproject.io/guides/identity/lease.html"><span style="font-weight: 400;">令牌</span></a><span style="font-weight: 400;">。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading" style="font-size:25px"><b>Template Stanzas</b></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們在作業中大量使用 template stanzas。這讓我們可以保留通用容器和應用程式池，並且我們在運行時使用作業文件中的 template stanzas，對我們需要的自定義進行分層。這是在幕後使用 Consul 模板，強化您的模板和循環。它還允許您從 Vault 中提取機密和憑證，您不必將它們直接儲存在作業文件中。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">使用 </span><a href="https://medium.com/hashicorp-engineering/pki-as-a-service-with-hashicorp-vault-a8d075ece9a"><span style="font-weight: 400;">Vault PKI</span></a><span style="font-weight: 400;">，可以在需要時動態提取憑證。由於它們被視為租賃（lease），Nomad 和 Vault 會在憑證自動到期時輪換和刷新。</span></p>
<p></p>
<p></p>
<h3 class="wp-block-heading" style="font-size:25px"><b>Consul 和 Vault 整合</b></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">在 Nomad 中，我們充分利用內建的 Consul 和 Vault 整合。我們所有的工作都有service stanzas，包括額外的標籤和健康檢查。我們利用 Vault 與 Nomad 的整合，使用令牌角色而不是 Vault，因此您可以在作業中指定 Vault </span><a href="https://www.hashicorp.com/resources/policies-vault"><span style="font-weight: 400;">策略</span></a><span style="font-weight: 400;">。這些策略授予您訪問 Vault 中特定路徑的權限。這樣，您可以使用 template stanzas 直接從 Vault 中提取機密或憑證。</span><br><span style="font-weight: 400;">我們使用 Vault 的性能複製在資料中心之間複製機密。團隊需要更新主要 Vault 叢集中的機密，以及在資料中心之間複製的機密。</span></p>
<p></p>
<p></p>
<p><span style="font-weight: 400;">並且，我們在 Vault 中使用 Consul 和 Nomad 的機密引擎，因此操作人員可以使用其 LDAP 憑證登錄 Vault。然後，他們可以請求 Nomad 令牌並臨時訪問 Nomad 叢集。這意味著令牌會被自動撤銷，並且有完整的稽核追蹤。</span></p>
<p></p>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17138</post-id>	</item>
		<item>
		<title>ＨashiCorp VaultㄧUBISOFT 利用 Vault 打造安全的遊戲天堂</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-ubisoft/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Mon, 14 Feb 2022 07:34:25 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[Consul]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=16999</guid>

					<description><![CDATA[HashiCorp Vault 解決方案消除手動機密管理和基礎架構編排經常導致的中斷和延遲，讓 Ubisoft 提高了服務品質，也能跨多個雲平台的自動機密輪換，降低手動管理機密的成本。現今線上遊戲對安全管理的要求十分講究，Vault 的便利性和高可用性成為了 Ubisoft 的解決方案首選。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16999" class="elementor elementor-16999" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-76c461ee elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="76c461ee" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-60f98b4a" data-id="60f98b4a" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-735a7ec4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="735a7ec4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p><span style="font-weight: 400;">線上遊戲的先驅 UBISOFT 使用 </span><strong><a href="https://www.vaultproject.io/">HashiCorp Vault</a></strong><span style="font-weight: 400;"> 來增強其全球性遊戲平台的安全、可用性和性能。</span></p>
<h3><b><img fetchpriority="high" data-recalc-dims="1" class="aligncenter wp-image-17000" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/ubisoft-vault-scaled-2.jpeg?resize=652%2C215&#038;ssl=1" alt="ubisoft-vault" width="652" height="215" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/ubisoft-vault-scaled-2.jpeg?w=924&amp;ssl=1 924w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/ubisoft-vault-scaled-2.jpeg?resize=300%2C99&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/ubisoft-vault-scaled-2.jpeg?resize=768%2C253&amp;ssl=1 768w" sizes="(max-width: 652px) 100vw, 652px" /></b></h3>
<h2><b>公司介紹</b></h2>
<p><span style="font-weight: 400;">Ubisoft 成立於 1986 年，總部位於巴黎，擁有 20,000 名團隊成員，分佈在全球 30 多個地點，他們都肩負著共同使命，即打造原創和難忘的遊戲體驗豐富玩家的生活。該公司是許多著名電玩系列的發行商，例如《刺客教條》、《彩虹六號》、《極地戰嚎》、《看門狗》、《雷射超人系列》和《Just Dance》。</span></p>
<h2><b>遊戲走向全球</b></h2>
<p><span style="font-weight: 400;">近 40 年來，Ubisoft 一直走在電玩遊戲開發的最前端，設計和推出了一些很經典的遊戲系列。電玩遊戲從以前以 CD 光碟為主的單一平台發展成線上遊戲，提供更加身歷其境、引人入勝的視覺體驗之外，確保遊戲處在最佳性能所需的 IT 基礎架構支援也在發展當中。對 Ubisoft&nbsp; 來說，這意味著需運行多達六個自己的資料中心，才能提供最佳的線上體驗。從裸機伺服器開始，然後是虛擬化環境和 OpenStack 私有雲，該公司廣泛的 IT 足跡現已作為平台即服務 (PaaS) 部署在多個地區，其上千個應用程式和工作負載也遍佈多個公有雲供應商。在分散和異質的基礎架構中有這種增長量，卻帶來了許多機密管理挑戰和機密曝光的風險。</span></p>
<p><span style="font-weight: 400;">「我們一直都喜歡將每個團隊視為工作室，讓他們自主工作，因為這讓他們更靈活，對客戶和市場需求會做出更好的回應，無需仰賴中央工程團隊的指揮，」Ubisoft 副總監 Donald Havas 説。「但是，當團隊有自己的方法來管理機密和安全時，也會帶來一些特殊和令人擔憂的挑戰，因為可能會限制可見性，且彈性的欠缺會導致服務中斷或降級。」</span></p>
<p><b><i>「HashiCorp Vault 擁有我們所需的所有特性、功能和安全設定，可以推動整個公司作業的標準化，同時也確保每個團隊的自主性和個別的工作風格。」&nbsp;</i></b></p>
<h2><b>用於非標準化開發的標準化祕技</b></h2>
<p><span style="font-weight: 400;">在過去，各個 Ubisoft 團隊皆管理自己的機密和 tokens —— 管理從 MongoDB 或其他資料庫到 API 密鑰、軟體開發工具包 (SDK) 及由 Kubernetes 驅動的 CI/CD 管道的所有權限。由於使用這種零散的方法，即團隊使用內部和第三方工具（例如 Centrify 和 Passwork）來管理他們的機密，導致很少有最佳實踐且營運透明度有限。在現今市場上，遊戲開發者不僅要根據遊戲設計和玩法來評估，還要根據他們的可用性、性能和安全性來評估，將機密管理工作留給各個團隊似乎一定會給開發者和品牌引來問題。</span></p>
<p><span style="font-weight: 400;">Ubisoft IT —— 工程和平台產品負責人 Shuichi Sekino 表示：「我們曾發生過一些事件，像是機密已過期，我們無法查看或追蹤它們，引起一些意外停機問題。」「即使是由於認證過期或有人更改某個網站的密碼而導致的一天停機，也會顯著影響整個遊戲體驗，無論是新玩家註冊還是玩遊戲本身的體驗。」</span></p>
<p><span style="font-weight: 400;">Havas 表示，「Ubisoft 的 IT 和資安團隊開始依照標準化和自動化機密管理建立概念驗證，以提高彈性、可用性和安全性，且不會干擾團隊的遊戲開發進度。」這些團隊優先考慮的案例包括對不同機密類型、用戶界面、應用程式介面 (API)、以角色為基礎的訪問控制 (RBAC)、日誌記錄、稽核以及 metadata 的支援。</span></p>
<p><span style="font-weight: 400;">Vault 的開源版本非常符合 Ubisoft 對客製化開源技術的偏好。更重要的是，該工具豐富的自動化功能使 Ubisoft 能幾乎跨任何環境或平台來大規模管理機密。</span></p>
<p><span style="font-weight: 400;">「我們的</span><span style="font-weight: 400;">對戰配對機制</span><span style="font-weight: 400;">可能在 Azure 中，遙測可能在 AWS 中，其他功能可能在這個複雜的生態系統中的 Google 上運行。在所有這些平台上手動管理機密和輪換憑證，以確保它們的安全實際上是不可能的，」Havas 解釋說。「Vault 會以相同的方式在每個公有雲和私有雲中自動輪換對 tokens、密碼、認證和密鑰的權限，因此我們的開發人員不必浪費時間自己動手。」</span></p>
<h2><b>挑戰</b></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong>在不影響單個團隊工作流程的情況下標準化機密管理，已達到最佳實踐</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>降低資料外洩、意外服務停機和性能下降的風險</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>用自動化解決方案代替手動機密和 token 管理</strong></li>
</ul>
<h2><b>更高的可用性、更低的風險，以及卓越的遊戲體驗</b></h2>
<p><span style="font-weight: 400;">儘管其他解決方案也提供了一些自動化功能，但沒有一個能比得上 Vault 的多平台互操作性和直觀的用戶界面。Vault 是滿足 Ubisoft 需求的理想解決方案。</span></p>
<p><span style="font-weight: 400;">「Vault 不需要很長的學習時間特殊培訓即可啟動和運行，因此能立即開始我們的集中化機密管理操作，並在所有團隊中達到最佳實踐，且管理該工具的資源顯著減少，」Sekino 說。「那些沒有以正確方式使用 Vault 或根本沒有使用它的團隊，現在可以為他們的工作室自動發布、停用或輪換機密，以大幅降低外洩或設定錯誤造成遊戲離線的風險。」</span></p>
<p><span style="font-weight: 400;">Havas 表示，除了公司廣泛使用 HashiCorp Terraform 來提供各種服務所需的基礎架構外，採用 Vault open source 和 Vault Enterprise 對於幫助維持其全球用戶所期盼的品質、性能和進階的遊戲體驗非常重要。</span></p>
<p><span style="font-weight: 400;">「HashiCorp 解決方案藉由消除手動機密管理和基礎架構編排經常導致的中斷和延遲，幫助我們提高了服務品質，並將我們的服務水平拉高至標準以上，」他說。「這一切都解決了，我們有信心再尋求更進階的方式擴展我們的平台，如 API 和 service mesh，這將幫助我們繼續為未來的玩家訂定線上遊戲的標準。」</span></p>
<h2><b>成果</b></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong>將服務水準目標推向 99.9% 的正常運行時間，超過一般水準</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>啟用跨多個雲平台的自動機密輪換，並降低手動管理機密的成本</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>消除了由過期認證或錯誤設定機密所引起的意外服務中斷</strong></li>
</ul>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">16999</post-id>	</item>
		<item>
		<title>HashiCorp VaultㄧComcast Xfinity Mobile 用 Vault 和 Spring Cloud Config 擴展安全性</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-xfinity/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Mon, 14 Feb 2022 01:52:18 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[成功案例]]></category>
		<category><![CDATA[Consul]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=16996</guid>

					<description><![CDATA[HashiCorp Vault 與 Spring Boot 和 Spring Cloud Config 一起使用，幫助 Xfinity 降低了對啟動器依賴性，給他們一個「vault 啟動器」便能讓整個企業的作業自動連接，資源庫在啟動時能獲取密鑰，鞏固安全性。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16996" class="elementor elementor-16996" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-5b602ab9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5b602ab9" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1833d149" data-id="1833d149" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-761148bb flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="761148bb" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p></p>
<p><span style="font-weight: 400;">隨著 Xfinity Mobile 將他們的應用程式從單體式平台 (monolith platform) 擴展到在跨五區運行的 80 多個微服務雲原生平台之後，他們便意識到不僅需擴展架構，還要擴展他們的流程和執行層面。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">主要轉型重點之一是將組態和機密作為 </span><span style="font-weight: 400;">12 &#8211; Factor </span><span style="font-weight: 400;">的一部分，並進行外部化。此文章將介紹如何將 </span><a href="https://www.vaultproject.io/"><span style="font-weight: 400;">HashiCorp Vault</span></a><span style="font-weight: 400;"> 與 Spring Boot 和 Spring Cloud Config 一起使用，也歡迎觀看 </span><a href="https://youtu.be/KuLIJFfqFWA"><b>Xfinity 的影片分享</b></a><span style="font-weight: 400;">。&nbsp;</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>朝向微服務發展</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">事情發生在 12 到 15 年前左右。我們的第一個應用程式在運行時大概是這樣：它有個 UI，還有一堆應用程式程式碼 —— </span><span style="font-weight: 400;">我想主要是在兩塊 silvers 上</span><span style="font-weight: 400;">，也有</span><a href="https://www.hashicorp.com/resources/consul-eliminates-load-balancers"><span style="font-weight: 400;">負載平衡器 (load balancer) </span></a><span style="font-weight: 400;">和帶有幾個防火牆的資料庫伺服器。一切都還滿簡單的。</span><br><span style="font-weight: 400;">但後來我們意識到資料的重要性，因此開始檢討，「我們需要把這些邏輯分隔出來，不希望我們的 UI 邏輯出現在服務當中。我們希望將這個資料庫隔離開來，以增加安全性。」然後事情開始改變。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">然後我們也開始留意網域 (domain)。有些上司會要求説，「我的網域需要這些特殊的東西，我對它有特殊要求。」事情也就變得更加支離破碎。我們仍然在做同樣的 MVC。這時 Spring 開始出現了 —— 人們有更多的工具來啟用這種架構。</span><br><span style="font-weight: 400;">然後是 Agile。大多數人已經知道或體驗過這些東西。儘管我們正在精進 Agile 的部分，但現在客戶都要求快速，希望事情在指定時間內完成，我們希望從這些服務中獲得可預測的結果。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">我們開始將這些東西分解，轉移到功能團隊。這就是我們業內很多人所說的單體模組 (modular monolith)。您仍在容器中部署此應用程式、您仍然擁有這個被部署的單體應用程式，它在部署和發布新功能方面更快速。但可惜的是，它缺乏擴展性。</span><br><span style="font-weight: 400;">就在不久前，當時每個人都說，「我們需要擴展性。」</span><a href="https://www.hashicorp.com/products/terraform"><span style="font-weight: 400;">Terraforms </span></a><span style="font-weight: 400;">和 </span><a href="https://www.hashicorp.com/products/consul"><span style="font-weight: 400;">Consuls</span></a><span style="font-weight: 400;"> 的出現便開始有了轉變，讓應用程式團隊能建立這樣的架構。</span><br><span style="font-weight: 400;">這都是圍繞在擴展的部分。它封裝了資料，且有不同版本。這對一個從事單體應用的架構師來說，可說是個夢想，因為當時的應用程式很不方便。您需要完全可預測您發布的內容；這裡提供了可預測性。您可以運行一個版本的 API，也可以運行一個完全不同版本的 API。你可以把東西移入跟移出，效果真的不錯。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">很快，我們就無法將我們的硬體基礎架構和微服務一起擴展。我們說過，cloud 就是答案，確實如此。這對於現在公司的營運非常重要。我們必須問自己的問題是，「這種複雜性是故意的嗎？是我們想要的嗎？這是一個很大的計劃，還是我們偶然發現了這個設計跟這個架構？」</span><br><span style="font-weight: 400;">是的，這是故意的。這裡的論點是，只要您能夠管理這些複雜性就會方便很多了。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>複雜度管理</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我的團隊開始研究這個。在處理微服務時，它被稱為 </span><a href="https://www.hashicorp.com/blog/twelve-factor-applications-with-consul"><span style="font-weight: 400;">12-Factor 原則</span></a><span style="font-weight: 400;">。很多討論都是關於「你如何處理你的基準代碼 (codebase)？如何處理依賴性問題？從擴展性的角度來看，你對服務做了些什麼？你如何處理日誌和所有內容？」</span><br><span style="font-weight: 400;">第一點和第三點對我們來說很重要，是關於您的基準代碼。假設您希望擁有一個可以在多個環境中運行的單一基準代碼。隨之而來的是一組單一的組態，你想管理你的組態，想把它存儲在代碼之外的環境中，你想把它和你的代碼一起移動 —— 這樣就可以預測所要發布的東西。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>作為代碼的配置</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">在配置方面，我們有很多管理的衝突。我們是一家 Spring Boot 微服務商。Spring 有一個很好的儲存庫，叫做 Spring Cloud Config。它使您可以將配置（或組態）作為代碼進行管理。在本質上，您將所有代碼移動到 Git 資源庫中，當您遷移應用程式代碼時，您也能將配置版本化。您可以把它們放在一起管理，也能一起遷移。</span><br><span style="font-weight: 400;">作為配置的一部分，自然會發生的一件事是，您最終會在配置中有很多機密 —— 您的資料庫密碼、您的 API 密鑰、您的服務憑證等。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">因此人們開始討論，「我們要如何處理現在所處的情況？」 有人說，「你為什麼不加密呢？」是的，我們可以加密它，但加密永遠不能解決問題，因為你總是會遇到所謂的 “Chicken-Egg Problem”。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>整合 Vault 和 Spring</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">那麼，我將把我的密鑰放在哪裡呢？ </span><a href="https://learn.hashicorp.com/tutorials/vault/secure-introduction"><span style="font-weight: 400;">key zero</span></a><span style="font-weight: 400;"> 在哪裡？ 我該如何處理它以及如何確保它是安全的 —— 且它會隨我的代碼在環境中遷移而移動。我們需要一個工具來幫助我們 —— 便偶然發現了 </span><a href="https://www.hashicorp.com/products/vault"><b>HashiCorp Vault</b></a><span style="font-weight: 400;">。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>Vault Spring 與 Cloud Config</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">它的運作是這樣的，我們有微服務、我們有 Cloud Config Server，我們會將我們的配置遷移到 Git 中，並將我們所有的機密移到 Vault 中。Config Server 將輕鬆登入進 Vault 裡面。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">Spring Cloud 還提供了一個 Spring Config Server。在我們開始整合 Vault 之前，我們只有 Git 作為我們所有配置的來源，這對各位來說很簡單。隨著 Spring 與 Vault 越來越緊密的整合，我只需要在這裡提供</span><span style="font-weight: 400;">這個 block</span><span style="font-weight: 400;">。我需要為主機的 port 提供密鑰，然後有趣的是我可以給出這個指令 —— 這是一個優先事項。我可以說，「如果 Vault 和 GitHub 中有可用的配置，請優先考慮 Vault」，然後啟動，我的 Config Server 便成功啟動了！讓我們看看啟動會是什麼樣子。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>在架構中解決 Vault 依賴性問題</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">現在來探討如何讓我的服務也連接到這個 config server。我發現一旦 config server 被裝在 Vault 中，我就必須啟動我的服務。所有與 config server 對話的客戶端現在也需要知道 Vault。我現在不得不把這些 </span><a href="https://learn.hashicorp.com/tutorials/vault/tokens"><span style="font-weight: 400;">Vault tokens</span></a><span style="font-weight: 400;"> 作為啟動微服務的一部分。</span><br><span style="font-weight: 400;">這就是我們開始覺得有點不便的地方。對 Vault 的依賴正在滲透到我架構的其他部分。不僅 config server 需要知道，而且我們所有的微服務都需要知道這一點。以下將會簡單講解一下該問題。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">該服務在 port 8082 上執行，若我要調用它，我有我的服務。這背後的代碼又是怎麼樣的 ?&nbsp; Spring 本質上是非常約定俗成。</span><span style="font-weight: 400;">若您依照慣例 —— 用配置為這個類別加上註解 —— 我必須加上 prefix。</span><span style="font-weight: 400;"> 如果各位還記得我 demo 時的另一個視窗 —— 它的 prefix 是 HashiConf，再來是我的用戶名及密碼。</span><br><span style="font-weight: 400;">一旦我這樣做，配置會根據我的偏好自動顯示出來 —— 無論它們來自 Git 還是 Vault，我的配置一樣都會進來。這部分很棒，但其他部分就沒這麼好了。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>評估該方法 —— 第 1 部分</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">各位覺得以上方法的優點是什麼？我喜歡的點在於，這對我現有的代碼和配置來說改變是最少的，我不必做太多事情，我所要做的就是配置 Vault 並將所有機密移到那裡。然後我對每個微服務的推出都有所掌握。</span><br><span style="font-weight: 400;">但我們不認為這是一件好事。我無法做</span><span style="font-weight: 400;"> atomic comment </span><span style="font-weight: 400;">並將所有這些東西移在一起，所以這是我們覺得不便的地方。我們還發現這個資源庫不支援所有的身份驗證機制。我們想使用 </span><a href="https://www.hashicorp.com/resources/approle-pull-authentication-vault"><span style="font-weight: 400;">AppRole</span></a><span style="font-weight: 400;">，但它沒有對這些提供原生支援。我們不得不將所有東西都轉移到部署架構中，所以這不是最理想的解決方案。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>試試另一種方式</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">「我們如何做到這一點？」是我們想問自己的問題嗎？我們說，「讓我們這樣做吧。我們在 Vault 中的機密——如果我們回到我們所說的，對它們進行加密，並放在 GitHub 中會怎樣？」</span><br><span style="font-weight: 400;">現在我的 config server 不需要知道 Vault。我想，「我的架構中又少了一個需要擔心的耦合。」那我需要做什麼？我想，「無論如何我都必須登入 Vault。如果我只使用主密鑰怎麼辦？我不會儲存所有配置，是只儲存密鑰。」這解決了我的問題，「我該如何處理</span><a href="https://www.hashicorp.com/products/vault/data-protection"><span style="font-weight: 400;">密鑰</span></a><span style="font-weight: 400;">？」</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">這是一個可供我放置密鑰的安全之處。我得到了關於它的所有稽核；我得到了 Vault 為我提供的所有權限 —— 所有的好處都在這裡。所以我想，「這似乎是一個好方法。」我們把對 Spring Cloud Config 的依賴轉移到另一個名為 Spring Vault Core 的資源庫。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>使用 Spring Vault Template</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">如果您使用過任何 Spring Frameworks 或 Spring Libraries，它其實是一種非常類似的方法。和 RestTemplate 和 JdbcTemplate 一樣，它提供了 VaultTemplate。讓從 Vault 中讀取、寫入、修改、刪除 API 或密鑰變得非常簡單。它管理您的所有的 tokens。建立身份驗證模板後，您不必管理 token 或 token 的生命週期。然後它還支援 Vault 中的所有身份驗證機制 —— 實在非常強大。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">為了初始化模板，您必須提供端點及客戶身份驗證。端點非常簡單。您可以根據 URI 或路徑建立它。而客戶身份驗證稍微複雜一些，但只需 10 行甚至更少的程式碼。您只需弄清楚您的身份驗證是什麼就可以了。我們使用的是 AppRole，您只需將初始 token 和身份驗證路徑傳遞給 Vault。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">只需幾行程式碼，我們就能夠與 Vault 整合，獲得主密鑰，並將其放入我們的基準代碼中。一旦初始化了 VaultTemplate，您就可以用它來讀取任何路徑。</span><br><span style="font-weight: 400;">我們來看看它的樣子。回到一個類似的方法 —— 我只儲存主密鑰，而不是儲存用戶密碼。如果您看到這裡的路徑，我仍然按照微服務儲存它，但我也說過想讓它具有特定的環境。我們希望針對每個環境有特定的主密鑰，不想在所有環境中用相同密鑰。而這滿足我的需求。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">在後端，這仍要經過所有存取控制列表 (ACL)，即您在 Vault 中設定的所有規則，以及誰擁有權限等。在我們的例子中，我們使用 GitHub 作為基本身份驗證，因此 </span><span style="font-weight: 400;">GitHub 中的群組</span><span style="font-weight: 400;">擁有 Vault 中某些路徑得權限。在外部，Vault 團隊正在為我們處理這些事情。但這給了我一個非常簡單的 API 來訪問 Vault 並提取我想要的內容。</span><br><span style="font-weight: 400;">一起來看看我的 config server 現在的情況。從技術上來說，它應該是 Git，但因為我需要同時運行兩個 MO，所以我指向內部文件系統進行配置。但這應該是 Git。如圖所示，我的 config server 現在只指向 Git 以獲取所有配置。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>專為開發者打造的服務</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們發現，作為微服務啟動的一部分，我需要提供易於開發人員使用的資源庫。身為開發者 —— 如果我正在與新的 API 或與新服務進行整合，我有服務憑證 —— 我想儲存它們，並確保它與我的程式碼一起存在於我的環境中。我將利用這些憑證，並調用此端點，這是一個加密端點，然後我會給它我需要加密的密鑰跟環境。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">但我還沒有完成，我雖已經完成了加密，但我仍然需要一種在運行時能夠解密它的方法。那會是怎樣的呢？如果你們看到了我之前給你們看的類似程式碼 —— 我將用我們建立的庫替換它。它叫做 KeyUtil。</span><br><span style="font-weight: 400;">我們先重啟一下這個服務，看看啟動前是否生效。該服務現在使用 config server 作為後端，它將轉到 Git；</span><span style="font-weight: 400;">它會去</span><span style="font-weight: 400;">採用</span><span style="font-weight: 400;">那個配置</span><span style="font-weight: 400;">。它在他們的 VLT 中看到這些 prefixes，因此它知道這是一個密鑰 —— 且必須與 Vault 對話。它已經初始化了 Vault；去獲取主密鑰並對其進行解密。讓我們回頭來談談這樣做的結果如何。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">我們給了開發人員一個</span><span style="font-weight: 400;">啟動器</span><span style="font-weight: 400;"> —— 就像在 Spring 中一樣，對啟動器有依賴性。我們給他們一個「vault 啟動器」。</span><span style="font-weight: 400;">他們只需考量那個啟動器的依賴性</span><span style="font-weight: 400;">，所有東西都會自動連接進來。</span><br><span style="font-weight: 400;">它連接到我們給他的端點。它消除了所有依賴，「你如何獲得主密鑰，如何處理它？」他們不必擔心如何獲取它或如何恢復它。我們給他一個 Java API 來為他們解密這些東西。我在我的程式碼中使用它。只是一個自動連接的 util 庫。他們不必擔心自動連接是如何發生的，便可以自動連線。</span><br><span style="font-weight: 400;">我們給他們一個 REST API 來加密這些東西。所有事情都是在他們不知道密鑰在哪或密鑰從哪裡來的情況下完成的。</span>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>評估該方法 —— 第 2 部分</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">以上方法的好處是什麼？若您與之前的解決方案相比，我的機密和配置都在 GitHub 中的一個地方，並且在 GitHub 中有妥善的保護。我可以做一個 atmotic comment，我也可以在不同環境中測試它。我可以利用我的 pipeline 一直驗證它，而且我知道當推送一個程式碼的版本時，其他相應版本的配置也會被移入。我不必與 Vault 團隊協調，確保他們也推送相同配置或使其上線。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">我獲得了 12 factors 的其中一個 —— 我可以一起移動程式碼和配置。對 Vault 的依賴性轉移到每個環境只有一個 key-value&nbsp; —— 我們忽略了這些東西，但這很重要。我已經確定，當我的應用程式正在擴展時、當我有突發的流量或者有一些事情發生時，儘管我收到大量的請求，也不會讓 Vault 平台超載。我這邊的問題不會影響到 Vault 團隊。</span></p>
<p></p>
<p></p>
<p><br><span style="font-weight: 400;">其次，如果我要擴大規模，我會添加一套全新的服務。當我在為活動做準備時，我不需要讓 Vault 團隊中相關的同仁也為該活動做準備。這對他們來說是無關緊要的。對我來說，一個事件不應該滲透到我們這邊的架構中。這讓我們兩者間的工作內容有適當的區分。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>一些預想不到的好處</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">我們發現我們對 Vault 的依賴現在轉移到了 bootstrap。我的資源庫在啟動時能獲取密鑰。在我的服務啟動並運行之後 —— 若基於某種原因我與 Vault 的連接中斷，或者存在網路分裂 (network partition) 或防火牆等問題，而我無法連到 Vault —— 我並不受影響。我的服務將啟動並運行。我唯一擔心的是服務是否正在擴展或新服務是否正在啟動。</span><br><span style="font-weight: 400;">正如之前提到的，我解耦了我的應用程式，因此他們不必知道我的擴展，且所有密鑰都是完全安全的。開發人員可以使用它，但他們不需要知道它的來源或詳細資訊。</span><br>&nbsp;</p>
<p></p>
<p></p>
<h2 class="wp-block-heading" style="font-size:24px"><b>總結</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">若各位是 Spring 商，或者有正在使用 Spring 的開發團隊，那麼 Spring 提供了一些很好的資源庫。有三個主要的生產級資源庫，背後有一個很棒的開源社群和一些優秀的參與者。如果您想直接與 Vault 進行低端、高級的整合 —— 這也是我們最終使用的；如果各位不是微服務應用程式提供商，但仍然在雲端部署，則可以將 Spring Vault 當作資源庫。</span></p>
<p></p>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">16996</post-id>	</item>
		<item>
		<title>HashiCorp Vault｜Elvia 有效整合智能電錶</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-elvia/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Fri, 11 Feb 2022 07:37:27 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[成功案例]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=16992</guid>

					<description><![CDATA[挪威電力公司 Elvia 使用 HashiCorp Terraform 和 Vault 強化其系統，整合 950,000 個智能電錶，以及跨公用事業雲端和地端營運平台的機密。並建立綠能配電的新未來，實現對雲端和地端系統的高自動化、能見度和控制力。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16992" class="elementor elementor-16992" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-4d0aa91b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4d0aa91b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-74f5c2e6" data-id="74f5c2e6" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5795fcb4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="5795fcb4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<h2><strong><span style="font-size: 18pt;">公司介紹</span></strong></h2>
<p><span style="font-weight: 400;">2020 年，Eidsiva Nett 和 Hafslund Nett 合併成立挪威最新的公用事業公司 Elvia，負責每天為 Oslo, Viken, 和 Innlandet 的數百萬人供電。總部位於挪威南部的 Hamar，是挪威最大的網路公司，擁有超過 800 名員工。 Elvia 每天從其營運中心全天候監控其網路，並升級和維護了超過 65,000 公里的網路和電纜，以確保挪威的電力供應穩定。他們使用尖端技術結合多年的經驗和專業知識，滿足客戶的需求與服務。&nbsp;</span></p>
<h2><strong><span style="font-size: 18pt;">挑戰</span></strong></h2>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">整合兩個不同公用事業公司的系統</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">實現對雲端和地端系統的高自動化、能見度和控制力</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">整合來自全國近 100 萬個智能電錶的數據</span></li>
</ol>
<p><span style="font-weight: 400;">由於夏季日照長，冬日短，挪威人在照明和電力方面面臨著獨特的挑戰。他們依靠 Elvia 提供所需的電力，以保持更多的人工照明，和提供國家和生活可靠、可預測和高效率的運作。作為該國少數幾家主要公用事業公司之一，擁有百年歷史的 Elvia 透過歷代建立的龐大電網為超過 200 萬挪威人提供電力。但人口增長、對環境永續的重視以及與另一家公用事業公司的合併迫使 Elvia 展開大規模的轉型計劃，其員工和傳統 IT 環境面臨極大的挑戰。</span></p>
<p><span style="font-weight: 400;">Elvia 技術長 Ståle Sveia Heitmann 指出，作為一家擁有 100 年歷史的公司，擁有自己的傳統 IT 基礎架構和文化，全面改革可能是一項漫長而艱鉅的任務，尤其是嘗試整合和傳輸來自數十萬個智能電錶的數據，同時將系統與新的商業合作夥伴相結合時。因此，我們很早就確定了實現廣泛的現代化工作的最佳方式是完全重建我們的 IT 基礎，以支援混合基礎架構，但我們也知道我們還需要一套完全不同的管理工具來實現這個目標。&nbsp;</span></p>
<p><span style="font-weight: 400;">歷年來，Elvia 一直依靠複雜的地端系統網路、熟練的技術與電氣專家團隊來營運橫跨該地區的大約 28,000 台配電變壓器、架空線和電纜。它與全球科技巨頭合作，建立並管理 IT 基礎架構，以運行各方面的電網營運，但對這些系統的使用方式沒有任何能見度或控制權。</span><br>
<span style="font-weight: 400;">由於無法簡單評估和調整支援其日常營運的 IT 資源集區，該公司一直在緩慢流失閒置資源中的資金，但更大的挑戰正在逼近。首先，由歐洲最大的智能配電研究中心之一推動的一項新倡議，在電網中安裝了近 100 萬個智能電力感測器，擴展了新機構的地理覆蓋範圍，以及基礎架構挑戰。這最終與第二個問題不謀而合：兩家傳統公用事業公司合併成立了一個新的公司，稱為 Elvia。</span></p>
<p><span style="font-weight: 400;">Heitmann 指出，儘管合併了兩個公用事業公司，但我們沒有任何共同的系統，這給 IT 帶來了眾多困難與問題。例如，是否整合、建構新的系統還是購買新的東西供所有人使用。不過，更大的問題是將資料從智能電錶整合並傳送到目標資料庫，因為那裡大約有一百萬個電錶，每個電錶都有四到五個資料點，需要傳送到多個 Azure、Google Cloud 和地端。</span></p>
<h2><strong><span style="font-size: 18pt;">使用產品</span></strong></h2>
<p><a href="https://www.omniwaresoft.com.tw/hashicorp_vault/">HashiCorp</a> <a href="https://www.terraform.io/">Terraform</a> 和 <a href="https://www.vaultproject.io/">Vault&nbsp;</a></p>
<h2><span style="font-size: 18pt;"><strong>解決方案</strong></span></h2>
<p><span style="font-weight: 400;">Elvia AS 使用 HashiCorp Terraform 和 Vault 來標準化和簡化近 100 萬個智能電錶和相關資料庫的基礎架構配置，以及跨公用事業雲端和地端營運平台的機密。</span></p>
<h3><strong><span style="font-size: 14pt;">實現綠能未來的單一資訊來源</span></strong></h3>
<p><span style="font-weight: 400;">智能電錶的推出代表著新時代的開始，公用事業公司必須處理以前不存在的大量感測器資料並從中受益。這引發了對新型解決方案的需求；他們開始進行內部開發，將 HashiCorp Terraform 和 Vault 作為其開發框架的組成部分。</span><br>
<span style="font-weight: 400;">Elvia 採用 Terraform 和 Vault 是為了以一種更簡單、更有效率且更具成本效益的方式來整合一系列的核心系統，並整合快速發展的智能電錶部署的資料傳輸工作流。<br>
</span><br>
<span style="font-weight: 400;">透過 Terraform，Elvia 工程師利用模板，使兩組傳統公司的開發人員能夠在 AWS、Google Cloud 和地端系統編寫、共享、管理和自動化任何基礎架構。這使他們能夠快速部署基礎架構，以支援從智能電錶的資料傳輸和分析，以及對整合後的所有電網自動化核心變壓器的操作及健檢。</span></p>
<p><span style="font-weight: 400;">Elvia 的技術負責人 Marius Matonis 指出，HashiCorp Terraform 具有完善的資源和實用的論壇，讓兩家公司團隊中的每個人都可以輕鬆快速地學習新語法並開始運行。 我們已經使用這些模組和模板在 GitHub、Azure、GCP 和其他近 200 個不同的工作區中建立了近 40 個不同的系統和運行時環境，每個實例的速度比過去快了三天。</span></p>
<p><span style="font-weight: 400;">雖然基於 SaaS 的 Terraform Cloud 幫助公司淘汰了許多過度配置和閒置的 </span><span style="font-weight: 400;">VMs</span><span style="font-weight: 400;">，從而可能每年節省數萬美元的營運支出，但 Vault 同樣簡化了公司的機密管理操作，以幫助進一步加速公司的轉型。</span><br>
<span style="font-weight: 400;">Matonis 指出，過去，我們使用了來自雲端供應商的內建機密管理工具，但 Vault 是一種更輕鬆、更簡單、更穩定的解決方案，來滿足我們的需求。我們甚至可以使用 Terraform 來設置 Vault 叢集，因此我們不再需要擔心手動建立、配送和管理核心系統和服務的訪問密鑰。它是自動化的，讓我們可以專注於持續整合和部署優先事項，並真正推動我們的計劃。</span></p>
<p><span style="font-weight: 400;">儘管公司的轉型仍處於初步階段，但 Heitmann 和 Matonis 一致認為 HashiCorp 解決方案在該公司的成功中發揮了重要作用，並期望增強的自動化、簡化的操作和標準化的流程將使公司能夠儘早實現其目標。</span><br>
<span style="font-weight: 400;">Heitmann 指出，</span><span style="font-weight: 400;">在建立一個完全用程式碼定義的平台之前，我們沒有自動化、沒有能見度，而且真的不知道如何應對如此巨大的變化。Terraform 和 Vault 是現代 IT 平台的基礎，這將有助於將我們擁有百年歷史的公司帶入現代，並使我們能夠鞏固底層基礎架構，為全國人民可靠地供電，同時擁抱環保技術將幫助我們更有效、更負責任的做到這一點。」</span></p>
<p style="text-align: center;"><span style="font-weight: 400;">「我們尋找了許多其他可能的解決方案，但找不到任何具有 HashiCorp 解決方案所提供的跨平台功能或靈活性。此外，我們可以將所有不同的舊系統整合到一個平台和單一資訊來源中，並同時在我們的各種雲端上分離服務和管理機密。」</span></p>
<p style="text-align: center;"><span style="font-weight: 400;">STÅLE SVEIA HEITMANN, CTO, ELVIA</span></p>
<h2><strong><span style="font-size: 18pt;">成果</span></strong></h2>
<ul>
<li style="font-weight: 400;" aria-level="1">將多朵雲的不同 IT 系統統一為單一資料來源</li>
<li style="font-weight: 400;" aria-level="1">將超過 950,000 個智能電錶的資料流整合到多朵雲和地端資料庫</li>
<li style="font-weight: 400;" aria-level="1">減少了昂貴的閒置 VMs，每年可能節省數萬美元</li>
<li style="font-weight: 400;" aria-level="1">將基礎架構部署時間縮短成幾天</li>
<li style="font-weight: 400;" aria-level="1">實現更高的自動化和整合能力</li>
</ul>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">16992</post-id>	</item>
		<item>
		<title>HashiCorp Vault ㄧ eBay 以 HashiStack 的基礎架構即程式碼達成全面容器化平台</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/ebay-hashistack-containerized-platform/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Fri, 11 Feb 2022 07:25:47 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[成功案例]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=16988</guid>

					<description><![CDATA[eBay 藉由 HashiStack 的基礎架構即程式碼，從地端管理的基礎架構遷移到OpenStack 私有雲的基礎上運作，因此 Terraform 僅負責與所有不同的元件進行溝通，達成全面容器化平台。較少的配置管理和易於部署，提供平台即服務的解決方案。實現可重複性，易於理解的管理。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16988" class="elementor elementor-16988" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-382d1a9a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="382d1a9a" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a071efa" data-id="a071efa" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-44f4c9fa flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="44f4c9fa" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<h2><strong><span style="font-size: 18pt;">公司介紹</span></strong></h2>
<p><span style="font-weight: 400;">eBay Classifieds 如何快速從地端管理的基礎架構遷移到私有雲？本文講解了 eBay 如何選擇其技術堆棧以及建立穩定、高度可擴展平台的決策。&nbsp;</span></p>
<h2><strong><span style="font-size: 18pt;">挑戰</span></strong></h2>
<p><span style="font-weight: 400;">eBay Classifieds Group 的網站營運團隊投入大量精力從地端管理的基礎架構遷移到私有雲。隨著 eBay Classified Group 宣佈在柏林成立新的全球策略技術中心，工程團隊被賦予開發一個創新的計劃來建立新產品的挑戰。其中，最大的挑戰是要在極短的時間內打造全新產品。</span></p>
<h2><strong><span style="font-size: 18pt;">使用產品</span></strong></h2>
<p><a href="https://www.omniwaresoft.com.tw/hashicorp_vault/">Vault</a>, <span style="font-weight: 400;">Terraform </span></p>
<h2><strong><span style="font-size: 18pt;">解決方案</span></strong></h2>
<h3><strong><span style="font-size: 14pt;">產品開發建議</span></strong></h3>
<p><span style="font-weight: 400;">ebay 需要穩定且共享的前期製作，在實際的基礎架構和實際的元件進行測試。</span><br>
<span style="font-weight: 400;">ebay 在 OpenStack 私有雲上運行。基本上是給每個登錄過一次的員工提供一個小租戶。而我們有個特別的想法，讓我們在正式、非正式和開發租戶中建立完全相同的平台，服務開發租戶中的每個人。</span></p>
<h3><strong><span style="font-size: 14pt;">全面容器化</span></strong></h3>
<p><span style="font-weight: 400;">我們在 OpenStack 私有雲的基礎上運作，但如果只是打開 Horizon（OpenStack 的 UI）並點擊每個開發人原的實例，這是不可行的實例。它不適用於開發人員，也不適用於非正式與正式環境。所以我們需要基礎架構即程式碼（infrastructure as code）。</span><br>
<span style="font-weight: 400;">一切事物都需要可重複性，易於理解，也易於複製。</span></p>
<p><span style="font-weight: 400;">易於理解：每個使用過 Terraform 的人都知道，在大多數情況下它很容易理解。可重複性和易於複製的部分基本上意味著如果我們擴展到一個新的區域，因為它是基礎架構即程式碼，我們只需輕鬆的複製整個基礎架構。如果crash，我們也只需輕鬆的複製整個基礎架構。藉由運行 Terraform，它會為我們產生所有東西，包含：實例、網路、子網路。</span><br>
<span style="font-weight: 400;">當私有雲中只有虛擬機，那確實做得不夠好。因為這意味著我們需要透過部署實例，解決產品開發團隊所生產的任何東西。而我們認為將內容放在容器化 files 中較為容易。</span></p>
<h3><strong><span style="font-size: 14pt;">全面容器化的優點</span></strong></h3>
<ol>
<li><span style="font-weight: 400;"><span style="font-weight: 400;">較少的配置管理</span></span>想像一下，您有一個 VM，並且想在上面運行 Java。您需要配置的東西很多。現在假設您有一個微服務架構，您需要為您運行的每個微服務分別配置每個主機。但其實我們只需要將 artifacts 放入容器中並運行它，並且所有的主機幾乎都是一樣易於維護。</li>
<li>易於部署基本上，我們不必特別關心如何將 artifacts 放到虛擬機中，以便確保它們實際運行。只需要在我們的建立的管道（pipeline）中建立鏡像，並將它們推送到內部註冊表，您所要做的就是在一個實例上運行 Docker 容器。</li>
</ol>
<h3><strong><span style="font-size: 14pt;">平台即服務的解決方案</span></strong></h3>
<p><span style="font-weight: 400;">如果您運行超過 1 或 2 個實例，可能就有些吃力。想像您有無數個實例，您必須在每一個實例上運行 Dockerrun 或者調用您的容器，這是不可行的。所以我們需要一個平台即服務的解決方案。</span></p>
<ol>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">容器編排引擎：基本上，平台即服務解決方案為我們處理容器，使部署變得更加容易。只需與 API 互動，而不需分別與每個主機互動。</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">規模化（Scaling）：您無需手動啟動更多容器，您只需與 API 互動。</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">提高容錯：如果您在容器編排引擎中有容器 crash，不需要回應。但如果容器不斷的 crash，您確實需要手動檢查它，因為可能存在問題。</span></li>
</ol>
<h3><strong><span style="font-size: 14pt;">容器化圖表</span></strong></h3>
<p><span style="font-weight: 400;">唯一看起來過於複雜的就是各種 OpenStack 元件。但我們不必擔心這一點，我們所有的基礎架構都是程式碼，因此 Terraform 負責與所有不同的元件進行溝通，以建立虛擬機、建立實例、建立子網路、建立網路、安全組織等等。</span></p>
<h3><strong><span style="font-size: 14pt;">Saltmaster</span></strong></h3>
<p><span style="font-weight: 400;">我們確實需要最低限度的配置管理，因為其他 2 個元件，</span><a href="https://github.com/eBayClassifiedsGroup/PanteraS"><span style="font-weight: 400;">PanteraS</span></a><span style="font-weight: 400;"> master 和 Nomad master需要我們配置。有了這個此解決方案，我們不需要把 Salt master 作為 snowflake，因為它是一次性的。只需做一次，其他實例就被建立。因此，如果那個 Salt Master crash 或其他任何原因，只需將其丟棄，再次產生它，然後擷取程式碼即可。</span></p>
<p><span style="font-weight: 400;">PanteraS 作為一個叢集，而 Nomad 作為另一個叢集。使用 PanteraS，它基本上是一個內部建立的開源解決方案，它是一個結合 Marathon-Visio-Consul-Registrator-and-Fabio-as-a-load-balancer。這就是我們部署所有 Stabilus 應用程式的地方。 幾乎所有 PD 團隊開發的東西都在那裡。</span></p>
<p><span style="font-weight: 400;">然後我們有 </span><a href="https://www.hashicorp.com/products/nomad"><span style="font-weight: 400;">Nomad </span></a><span style="font-weight: 400;">叢集，Nomad master workers。這基本上是我們部署所有持久性或持久性層的地方，以及傳輸類型的東西，例如資料庫、Kafka 等等。為什麼我們有 2 個不同的堆棧？因為我們對自己的 Stabilus 應用程式開源解決方案有良好的經驗，但我們對它在 Stateflow 應用程式中的表現並不滿意，所以我們想嘗試 Nomad，而實際上做得很好。</span></p>
<p><span style="font-weight: 400;">此外，它還具有我們喜歡的批次處理作業，並且比 Chronos 更喜歡， Chronos 是 PanTerraS 堆棧中的同類產品。另外，持久層和前端應用程式之間還有額外的隔離級別。這意味著，永遠不會發生以下的情況，例如，我們的資料庫實例與我們的開發團隊製作的應用程式不會位於同一個容器上，因為它們是 2 個不同的堆棧，2 個不同的主機集。</span></p>
<h3><span style="font-size: 14pt;"><b>完全容器化的實踐</b></span></h3>
<p><span style="font-weight: 400;">歸根究底，完全容器化並不完全可能，由於時間限制和安全性，但我們正在盡最大努力做到這一點。</span><br>
<span style="font-weight: 400;">我們很難將 Vault 放入容器中並在排程器上運行它，因為我們以一種非常複雜的方式使用 Vault，將所有東西都放入其中。我們有我們的機密、確認值等等。意思是，如果沒有 Vault，基本上不能產生任何其他容器。這就是我們不將 </span><a href="https://www.hashicorp.com/products/vault/"><span style="font-weight: 400;">Vault </span></a><span style="font-weight: 400;">放入容器的原因。我們在額外的叢集中運行它。</span></p>
<p><span style="font-weight: 400;">唯一沒有放在容器中的是所有基於 ZooKeeper 的東西。 在排程器的容器中運行 ZooKeeper 十分困難，因為 ZooKeeper 需要在叢集開始時就知道其叢集的所有節點。 如果你剛開始在 Drill 中部署一個 ZooKeeper 叢集，比如 Nomad。 但是現在假設其中一個容器 crash，它會在別處重新生成。接下來，如何告訴已經存在的 2 個 ZooKeeper 節點「你的第三個自訂數值改變了」？只要把它放在一個設定檔中就可以做到。我們可以編寫腳本來完成這件事，但是 ZooKeeper 需要重新啟動才能應用新的配置值。</span></p>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">16988</post-id>	</item>
		<item>
		<title>HashiCorp Vault 帶領 Pandora 以音速前進</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-pandora/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Wed, 09 Feb 2022 08:15:18 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[Consul]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=16980</guid>

					<description><![CDATA[Pandora 採用了 Consul，利用集中管理的方式大大簡化了服務網路，也簡化了探索、自動化的工作流程。另外 Vault 將整個營運整合到統一的生態系統中，讓部署時間縮短至 15 分鐘。HarshiCorp 讓工作流程標準化，以提供高效和一致的產品]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16980" class="elementor elementor-16980" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-3f5bfd01 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="3f5bfd01" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b1ecf78" data-id="b1ecf78" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-370d902a flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="370d902a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p><span style="font-weight: 400;">全球串流音樂媒體的領導者使用 HashiCorp 將應用程式上線時間從幾天縮短至分鐘，引起許多共鳴。</span></p>
<h3><b><img data-recalc-dims="1" class="wp-image-16983 aligncenter" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/vault-pandora-scaled-2.jpeg?resize=676%2C223&#038;ssl=1" alt="vault-pandora" width="676" height="223" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/vault-pandora-scaled-2.jpeg?w=924&amp;ssl=1 924w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/vault-pandora-scaled-2.jpeg?resize=300%2C99&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/vault-pandora-scaled-2.jpeg?resize=768%2C253&amp;ssl=1 768w" sizes="(max-width: 676px) 100vw, 676px" /></b></h3>
<h3></h3>
<h2><b>公司介紹</b></h2>
<p><span style="font-weight: 400;">Pandora 是領先的音樂和 podcast 串流平台，透過其手機應用程式、網路以及與 2,000 多種連接產品的整合，無論是在家中還是在旅途中，都提供高度個人化的收聽體驗。 Pandora 是 Sirius XM Holdings Inc.（股票代碼：SIRI）的子公司。Pandora 和 SiriusXM 共同創立了全球最大的音訊娛樂公司。</span></p>
<h2><b>整治及擴大規模</b></h2>
<p><span style="font-weight: 400;">每個月都有 6,000 萬用戶湧向 Pandora，尋找他們喜愛的歌曲。Pandora 特有的音樂和 Podcast Genome 提供了一個隨選的串流音樂和 podcast 平台，為用戶提供個人化的體驗。</span></p>
<p><span style="font-weight: 400;">然而，儘管 Pandora 新穎的工具助長了蓬勃的串流媒體產業，但它們也迎來了越來越多的挑戰。該公司長期以來「do-it-yourself」的企業文化導致了許多</span><span style="font-weight: 400;">臨時的開發工作流程</span><span style="font-weight: 400;">、不同的基礎架構部署流程，以及一系列的自製工具，這使得協調作業更加困難，也降低了企業的敏捷性。</span></p>
<p><span style="font-weight: 400;">「在我們的產業，除了需快速推出新服務之外，也要確保現有服務有良好的成效，」Pandora 首席工程師 Daniel Greene 說。「手動分配計算資源和配置網路元素對於一個不斷增長、以服務為重心的產業來說是不可靠的。我們需要標準化和自動化一些基礎架構，盡可能減少性能問題，並消除新功能上線方面的延遲。」</span></p>
<p><b><i>「每個 HashiCorp 產品的功能都和其他功能搭配，為我們團隊建立一個完整的生態系統，」Cook 說。「Consul 和 Nomad 取代了過去許多冗長的流程，也使其自動化，讓我們能更專注在重要事務上，而不是擔心如何做好工作。」&nbsp;</i></b></p>
<h2><b>可見性、擴展性和其他需克服的障礙</b></h2>
<p><span style="font-weight: 400;">作為美國最受歡迎的音樂串流應用程式，Pandora 的服務是建立在一個廣泛的基礎架構上，用於快速建立、測試和部署新服務。依照慣例，公司各個工程團隊可以自由選擇最適合其特定團隊或項目的資料庫、程式語言和部署方式。</span><br>
<span style="font-weight: 400;">然而，雖然以自己的方式工作對創造力和生產力很有幫助，但卻默默為基礎架構和營運團隊帶來許多複雜的問題。</span><br>
<span style="font-weight: 400;">對於初學者來說，手動 DNS 管理作業意味著 Pandora 基礎架構團隊必須確認可用的伺服器並將它們手動分配給開發人員，他們將使用該空間並根據特定的操作指引來對新功能編寫程式。</span></p>
<p><span style="font-weight: 400;">手動管理空間耗費太多時間，讓團隊在多變的環境中紛紛爭相更新其 F5 和 A10 負載平衡器配置。</span><br>
<span style="font-weight: 400;">更糟糕的是，它導致可見性的差距，使得映射應用程式和依賴程式碼幾乎是不可能的 —— 特別是在舊有系統中。工程師必須手動搜索各種伺服器以連接服務，</span><span style="font-weight: 400;">但無法預測正式環境的服務將如何回應開發中的服務。</span></p>
<p><span style="font-weight: 400;">「<strong><em>我們一直以精進的營運和開源技術而自豪，」Greene 說。「但在某些時候，如此多樣的部署和手動配置流程會隨時間而逐漸分散到各個部分，變得很複雜，從而影響我們的生產力和新服務上線作業。」</em></strong></span></p>
<h2><b>流程的不一致阻礙公司成長</b></h2>
<p><span style="font-weight: 400;">雖然探索和連接服務是一項巨大的挑戰，但這些服務的部署方式也存在問題。團隊中由開發人員負責部署的文化最終導致流程的分裂，每個團隊都管理自己的版本和更新自己的工具。但他們最終都需要自己偏好的技術、部署和團隊精神。這些對營運方面是新的挑戰，他們經常不得不在時間內為每個團隊請求資源，指定不同的部署流程，並每天篩選大量 Jira 問題，以確保伺服器在最新狀態。</span></p>
<p><span style="font-weight: 400;">Pandora 工程總監 Chris Cook 說：「開發人員必須手動檢查部署清單，且可能需要數天時間才能上線新產品，因為步驟太多，而且涉及許多不同的部署方法。」「這對增量生產和可見性來說都很不好，降低了我們的生產力，也危及我們發布新功能和服務的效率，給我們團隊帶來不少的壓力。」</span></p>
<p><span style="font-weight: 400;">團隊間的不一致也使新開發人員的入職變得更加困難，即使公司對人才的需求也在增加。不同的工作流程增加了新進人員的學習時間和負擔，讓他們無法立即有所表現，這對公司的長期生產來說有負面影響，但也無法立即解決。</span><br>
<span style="font-weight: 400;">「如果我們想要持續推出能同時支援數百萬用戶的產品，並加速新功能的上線，就必須做出改變，」庫克說。「藉由自動化服務和調整容器化環境，使我們團隊的部署和配置標準化，將改善開發人員的現況，也能同時實現目標。」</span></p>
<h2><b>挑戰</b></h2>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong>標準化整個企業的應用程式部署方式</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>網路自動化以加速應用程式上線</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>消除重複的操作和手動流程以提高生產力</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>提高團隊間的可見性和協作效率</strong></li>
</ul>
<h2><b>自動化帶來的營運優勢</b></h2>
<p><span style="font-weight: 400;">在對其他解決方案進行簡單評估後，Pandora 決定採用 HashiCorp Consul、Nomad 和 Vault，以標準化和簡化其服務。特別的是，該公司被 HashiCorp 的產品組合所吸引，該組合提供完整的端到端解決方案，為 Pandora 提供他們所需的自動化產品，使其工作更有效率、更加智慧化。</span></p>
<h2><b>更快的服務網路，更快的部署</b></h2>
<p><span style="font-weight: 400;">Pandora 廣泛的應用程式導致一個日益複雜的網路生態，以便管理他們的擴展度。為了解決這種複雜性，Pandora 採用了 Consul，利用集中管理的方式大大簡化了服務網路，也簡化了探索、自動化的工作流程。在過去，Pandora 依賴票券系統來分配和配置伺服器，並提供 DNS。Consul 自動化了這一個流程，使新服務和現有服務能夠立即連接。有了 Consul，Pandora 在施行自動化和提高網路性能方面奠定了基礎。</span></p>
<p><span style="font-weight: 400;">隨著新服務在其環境中部署，Consul 會自動用新服務的資訊更新其負載平衡器。以前可能需要好幾天的手動過程已減少至幾秒鐘，對操作員來說減輕許多負擔。</span><br>
<span style="font-weight: 400;">「Consul 讓我們能在我們的資料環境中完全自動化網路項目，為最耗時的工作提供良好的自助服務替代方案，並大幅加快應用程式上線速度，」Greene 說。「它還用 DNS 和 Consul API 幫我們減少程式碼的依賴性，同時全面標準化我們的流程，達到了以前所沒有的效率和水平。」</span></p>
<p><span style="font-weight: 400;">除了探索服務和自動化服務之外，Pandora 還部署了 Consul 作為 </span><span style="font-weight: 400;">service mesh</span><span style="font-weight: 400;">，為開發人員提供了另一種方式，可以在預設情況下以最少的權限進行操作。「雖然這聽起來會降低可見性，但映射和追蹤請求的功能確實進步了，到底什麼正在生產以及情況如何，皆能掌握。」Green 説道。「Consul 的 service mesh 能簡化開發人員的部署，也帶來可觀察性。」作為一個 service mesh，在 service mesh 中運行之應用程式的流量是用 TLS 加密的，並且以 Envoy 為基礎的 </span><span style="font-weight: 400;">sidecar </span><span style="font-weight: 400;">導出跨度資料，讓 Pandora 能在請求在服務之間轉移時追蹤它們。這些資料可用於優化應用程式的性能，並能在發生意外停機時即時做處理。</span></p>
<h3><b>加快開發速度</b></h3>
<p><span style="font-weight: 400;">同時，HashiCorp 的高性能容器編排器 — Nomad 使 Pandora 僅用單一工具就能輕鬆部署和擴展容器化和非容器化 workloads。Nomad 精簡了大型資源庫的管理，也讓新硬體的設定更加容易。</span><br>
<span style="font-weight: 400;">靈活的編排工具支援多種類型的 workloads，使 Pandora 的開發人員能夠定義應用程式或服務的部署要求，並使用內建排程器 (scheduler) 自動將作業部署到客戶端（無論它們是在裸機上還是在容器中執行）。同時，它也整合 HashiCorp 的機密管理解決方案 Consul 和 Vault，以自動保護服務通訊並簡化資料保護作業，大幅精簡整個部署流程。</span></p>
<h3><b>50,000 個容器加速新功能的推出</b></h3>
<p><span style="font-weight: 400;">HashiCorp 產品已經改變了 Pandora 的開發和部署，標準化了過去不良的作業程序，使新功能和服務的推出更快、更一致、更高效率。</span><br>
<span style="font-weight: 400;">有了 Consul 和 Nomad，Pandora 團隊只需幾個指令行即可部署應用程式，使用開發人員喜歡的任何名稱和代理服務，並自動連接它們。</span><br>
<span style="font-weight: 400;">「開發人員過去要做很多工作，像是複製基礎架構，以方便生產，然後在所有步驟完成後等待系統管理員的回覆，」Greene 說。 「Nomad、Consul 和 Vault 將我們整個營運整合到統一的生態系統中，所有功能都集中在同一個地方，這樣過去需要兩到三天的服務架設和部署現在只需 15 分鐘。」</span><br>
<span style="font-weight: 400;">Cook 表示，使用 HashiCorp 的產品也提高了其串流服務的性能和彈性。更確切來說，容錯 Nomad 幫助團隊編排全球數以千計的服務，在發生中斷或其他服務故障的情況下自動將應用程式遷移到備用主機。</span><br>
<span style="font-weight: 400;">隨著公司進一步採用多雲混合基礎架構，該團隊的成功和對 HashiCorp 產品的依賴讓 Cook 和 Greene 期盼能在 HashiCorp 中發現更多新功能。</span><br>
<span style="font-weight: 400;">「開發一個更實際的 service mesh，達到混合雲基礎架構的靈活性和敏捷性是我們近期的目標之一，」Greene 說。「HashiCorp 正好符合我們的需求，同時為我們未來的計劃提供藍圖。HashiCorp 一路上的陪伴讓我們相信 Consul 和 Nomad 將繼續為我們帶來靈活性和效率，以跟上並符合客戶的期待。」</span></p>
<h3><b>成果</b></h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><strong>在所有開發團隊中採取工作流程的標準化，以提供高效和一致的產品</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>超過 50,000 個案例進行自動服務探索</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>將應用程式推出的時間從幾天縮短至 15 分鐘</strong></li>
<li style="font-weight: 400;" aria-level="1"><strong>為開發人員提供更強大的自助服務功能，無需依賴系統管理員即可部署他們的服務</strong></li>
</ul>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">16980</post-id>	</item>
		<item>
		<title>HashiCorp VaultㄧGithub 在 Vault 的陪伴下成為全球首屈一指的開源社群</title>
		<link>https://www.omniwaresoft.com.tw/usecase/vault-usecase/hashicorp-vault-github/</link>
		
		<dc:creator><![CDATA[Omni]]></dc:creator>
		<pubDate>Tue, 08 Feb 2022 06:50:50 +0000</pubDate>
				<category><![CDATA[Hashicorp Vault 成功案例]]></category>
		<category><![CDATA[Consul]]></category>
		<category><![CDATA[HashiCorp Vault]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">http://www.omniwaresoft.com.tw/?p=16975</guid>

					<description><![CDATA[HashiCorp Terraform 幫助 GitHub 開發團隊建立了一個自助服務的商業模式。此外 Vault 取代手動機密管理功能，只要部署應用程式，就會自動導入機密，方便管理憑證和權限，以大幅降低負載平衡配置時間。]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="16975" class="elementor elementor-16975" data-elementor-post-type="post">
						<section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-1ad5021 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1ad5021" data-element_type="section">
						<div class="elementor-container elementor-column-gap-thegem"><div class="elementor-row">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-50f4582d" data-id="50f4582d" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-6190b64f flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor" data-id="6190b64f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
												<div class="elementor-text-editor elementor-clearfix">
						<p></p>
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p></p>
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex">
<p></p>
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis: 100%;">
<p></p>
<p><b>全球最大的開發者協作平台使用 <a href="https://www.hashicorp.com/" target="_blank" rel="noopener">HashiCorp 解決方案</a>來鞏固內部流程，並以更低的成本與更快的速度提供重要功能。</b></p>
<p></p>
<p></p>
<figure class="wp-block-image size-full"><img width="924" height="315" data-recalc-dims="1" class="wp-image-16976" src="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/github-vault.jpg?w=1170&#038;ssl=1" alt="github-vault" srcset="https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/github-vault.jpg?w=924&amp;ssl=1 924w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/github-vault.jpg?resize=300%2C102&amp;ssl=1 300w, https://i0.wp.com/www.omniwaresoft.com.tw/wp-content/uploads/2022/02/github-vault.jpg?resize=768%2C262&amp;ssl=1 768w" sizes="(max-width: 924px) 100vw, 924px" /></figure>
<p></p>
<p></p>
<h2 class="wp-block-heading"><b>公司介紹</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">GitHub 是專為開發者打造的公司。作為全球超過 6,500 萬開發者的家園，GitHub 是開發人員可以建立、共享和發布最佳代碼的地方。GitHub 使協作、解決問題和技術交流變得更容易。</span><br /> </p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><b>面臨營運中的障礙</b></h2>
<p></p>
<p></p>
<p><span style="font-weight: 400;">對於為全球超過 6,500 萬用戶服務的最大、最先進的開發者協作平台 GitHub 而言，設定基礎架構以支援應用程式開發、協調各種雲環境的微服務並保持它們之間連接安全，可說是一項艱鉅的任務。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">該公司自己的機密管理系統，需要手動設定組態和代碼來連接數百個應用程式和服務，同時手動管理密鑰和機密。對保護公司服務和應用程式機密所進行的任何更改，都意味著在與其連接的無數系統中更改和更新該機密。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;"><strong>負載平衡伺服器（load balancing）</strong>等其他核心項目同樣需要手動操作，而且非常耗時，這迫使團隊開發了軟體，為特定時刻可用的每台主機編寫固定配置。如果團隊想要添加服務容量或新服務，在某些情況下，他們首先必須為特定的負載平衡器添加新配置，這可能會對整個團隊造成負面影響。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">GitHub 基礎架構第二負責人 Scott Sanders 說：「在過去，我們使用一系列自己開發的系統來做機密管理及負載平衡等所有事情，這需要跨數百個服務和數千個節點進行大量整合和制定編碼。」「但隨著我們開始增加更多應用程式、更多節點和更多用戶，這種模式變得難以維持。我們需要一種更高效、更標準、自動化的方式來支援不斷增加的用戶。」 </span></p>
<p></p>
<p></p>
<p><br /> <b><i>「Terraform 幫助我們的開發團隊建立了一個自助服務的商業模式。它省去追蹤審查和批准的過程，因此減少了開發人員間的摩擦。」— Scott Sanders</i></b><br /> </p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><b>挑戰</b></h2>
<p></p>
<p></p>
<ul class="wp-block-list">
<li style="list-style-type: none;">
<ul></ul>
</li>
</ul>
<p> </p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><strong>擴展後端基礎架構以滿足不斷增長的用戶需求</strong></li>
</ul>
</li>
</ul>
<p></p>
<p></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><strong>消除耗時的手動基礎架構配置、服務匹配和機密管理</strong></li>
</ul>
</li>
</ul>
<p></p>
<p></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><strong>使開發人員能依需求自行建立基礎架構</strong></li>
</ul>
</li>
</ul>
<p></p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><b>為何選擇 Harshicorp ?</b></h2>
<p></p>
<p></p>
<h3 class="wp-block-heading"><b>一勞永逸的管理模式</b></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">隨著 GitHub 繼續進行戰略性基礎架構投資以配合平台的發展，有機會以更靈活和敏捷的方式來發展其先前的技術。這一轉變側重於提供一流的開發人員體驗，將使其成為支援跨雲和平台的優良解決方案。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">GitHub 採用 </span><b>HashiCorp Terraform、Consul </b><span style="font-weight: 400;">和 </span><b>Vault</b><span style="font-weight: 400;">，因為該團隊希望用最佳的開源工具，以幫助公司擴展其後端營運，滿足其內部工程團隊和依賴 GitHub 產品的客戶需求。GitHub 想把時間花在如何擴展他們的產品，而不是花在企業內已解決的問題上。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">更明確地說，該公司需要成熟、經過驗證的工具，且這些工具需有一系列自動化功能，可以與 Azure、AWS 和 Google Cloud 上的 workloads 流暢協作。</span><br /> <br /><strong><em>「我們知道，我們絕對希望基礎架構和機密管理工具可以自己運行，且具有強大自動化功能，易於設定和配置，」Sanders 説。 「HashiCorp 解決方案直觀、易於使用，並且在初始設定後可以繼續運作，讓我們能夠專注在更高價值的事務。」</em></strong><br /> <br /><span style="font-weight: 400;">該公司的軟體工程師 Aaron Brown 表示，GitHub 工程師使用 Terraform 模組之後，讓開發人員在管理 AWS 和 Azure 雲資源方面變得更容易和簡單。為此，Terraform 提供了 workloads 和配置原語 (primitives)，與團隊管理其資料庫和 AWS 資源的方式相匹配。現在，當團隊在其各種雲和自己的內部資料中心中使用裸機和虛擬主機建立基礎架構時，團隊成員可以選擇擁有和運行他們的雲資源，或者在基礎架構團隊管理的環境中運行。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">「幾乎我們所有的主機，包括資料中心的主機，都由 Terraform 管理，且無論是 Azure、AWS 還是其他平台，都以相同的方式建立，」Brown 說。「Terraform 幫我們的開發團隊建立了一個自助服務的商業模式，因為他們可以使用 Terraform 基礎架構配置模板來配置他們需要的任何東西。或者他們可以來找我們，讓我們去做。它減少了開發人員的摩擦，因為省去了追蹤審查和批准的過程。」</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">同時，Consul 重要的價值儲存功能是團隊如何處理入職和離職服務的基本工具。這個意外發現的解決方案部署到數千台主機，將註冊服務集中化，並在 GitHub 的各種雲和私有資料中心的主機之間自動進行服務探索，甚至啟動維護狀態，從而大幅簡化和加快服務的連接。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">此外，Vault 取代了手動機密管理功能，只要部署應用程式，就會自動導入機密 —— 管理憑證和權限。當公司運行數十個 Kubernetes 集群時，Vault 的公鑰基礎架構 (PKI) 非常有用，這些集群以前是用指令在管理的。Vault 會動態生成機密，使 GitHub 能夠自動化操作，並每天管理數十萬個機密請求，從而節省寶貴的時間和資源。與其要求整個團隊拉高自身的機密解決方案水準，不如讓他們從事更大、更有挑戰性的項目。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">此外，GitHub 的資安團隊使用 Vault 的憑證管理來管理權限，確保只有擁有特定權限的團隊能訪問機密。</span><br /> </p>
<p></p>
<p></p>
<h3 class="wp-block-heading" style="font-size: 30px;"><b>優先考慮安全性、效率和可靠性</b></h3>
<p></p>
<p></p>
<p><span style="font-weight: 400;">Sanders 指出，擁有流暢、一流的開發者體驗非常重要，尤其當新的工程師入職時，他們對內部開發的解決方案不太熟悉。由於該技術平易近人且操作方式在公司內皆可查看，因此團隊能夠節省成本和時間，讓開發人員快速上手。它還藉由自動保護</span><span style="font-weight: 400;">關鍵連接點</span><span style="font-weight: 400;">和高敏感資料，以加強公司的合規性和安全，這對於平台有大量私人資訊和專有資料的公司來說是不可或缺的。</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">採用 HashiCorp 解決方案還為公司的日常營運帶來很多改善。「以前，部署一個新服務需要向不同的資源庫提出請求，且需要為每個主機發布至少一個配置指令，」Sanders 説。「有了 Consul 的模板和內建負載平衡配置，過去需要 30 分鐘才能完成所有手動步驟來為新服務重建負載平衡配置，現在則不用一分鐘。」</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">Brown 補充說，Terraform 也提供了類似的好處。「在 HashiCorp 之前，新應用程式的原始模型和開發過去需要幾天時間才能將其帶到主機，對其進行負載平衡，然後注入秘密 —— 只是為了達到最低的產品可用標準，」他說。「有了 Terraform，整個過程現在不用一個小時，當我們追蹤數百個不同的內部服務時，所節省的每一分鐘都非常珍貴，讓我們能更專注於工程方面的事務。」</span></p>
<p></p>
<p></p>
<p><br /><span style="font-weight: 400;">GitHub 發現的另一個好處是 Terraform 的可擴展性。Terraform 的擴展性讓他們可以使用已經在雲環境用到的類似工作流程和架構，這對他們管理其內部資料中心的基礎架構來說非常有效，他們也能將此功能延伸到 GitHub 其他的工程部分。</span><br /><span style="font-weight: 400;">Sanders 強調，「HashiCorp 解決方案讓我們能夠審視龐大的 OSS 工具生態系統，以解決 GitHub 的問題，然後將它們組合成解決方案，當作我們營運及如何在 GitHub 建立基礎架構的基石。」</span><br /> </p>
<p></p>
<p></p>
<h2 class="wp-block-heading"><b>成果</b></h2>
<p></p>
<p></p>
<ul class="wp-block-list">
<li style="list-style-type: none;">
<ul></ul>
</li>
</ul>
<p> </p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><strong>標準化開源解決方案，以支援多雲環境</strong></li>
</ul>
</li>
</ul>
<p></p>
<p></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><strong>降低入職和培訓開發人員的成本和工作量</strong></li>
</ul>
</li>
</ul>
<p></p>
<p></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><strong>在數百個服務和數千個節點上進行自動化服務和機密管理</strong></li>
</ul>
</li>
</ul>
<p></p>
<p></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li><strong>將負載平衡配置時間從 30 分鐘減少到 1 分鐘以內</strong></li>
</ul>
</li>
</ul>
<p></p>
<p></p>
</div>
<p></p>
</div>
<p></p>
</div></div>
<p></p>							</div>
										</div>
				</div>
					</div>
		</div>
					</div></div>
		</section>
				</div>
		]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">16975</post-id>	</item>
	</channel>
</rss>
