index.html 70 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519
  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <link rel="prev" href="../multi-tenancy/">
  7. <link rel="next" href="../v1beta1/">
  8. <link rel="icon" href="../../assets/images/favicon.png">
  9. <meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.9">
  10. <title>Security Best Practices - External Secrets Operator</title>
  11. <link rel="stylesheet" href="../../assets/stylesheets/main.85bb2934.min.css">
  12. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  13. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  14. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  15. <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  16. <script id="__analytics">function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-QP38TD8K7V"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","G-QP38TD8K7V",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-QP38TD8K7V",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script>
  17. <script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
  18. </head>
  19. <body dir="ltr">
  20. <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
  21. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  22. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  23. <label class="md-overlay" for="__drawer"></label>
  24. <div data-md-component="skip">
  25. <a href="#security-best-practices" class="md-skip">
  26. Skip to content
  27. </a>
  28. </div>
  29. <div data-md-component="announce">
  30. </div>
  31. <div data-md-color-scheme="default" data-md-component="outdated" hidden>
  32. <aside class="md-banner md-banner--warning">
  33. <div class="md-banner__inner md-grid md-typeset">
  34. You're not viewing the latest version.
  35. <a href="../../..">
  36. <strong>Click here to go to latest.</strong>
  37. </a>
  38. </div>
  39. <script>var el=document.querySelector("[data-md-component=outdated]"),outdated=__md_get("__outdated",sessionStorage);!0===outdated&&el&&(el.hidden=!1)</script>
  40. </aside>
  41. </div>
  42. <header class="md-header" data-md-component="header">
  43. <nav class="md-header__inner md-grid" aria-label="Header">
  44. <a href="../.." title="External Secrets Operator" class="md-header__button md-logo" aria-label="External Secrets Operator" data-md-component="logo">
  45. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
  46. </a>
  47. <label class="md-header__button md-icon" for="__drawer">
  48. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
  49. </label>
  50. <div class="md-header__title" data-md-component="header-title">
  51. <div class="md-header__ellipsis">
  52. <div class="md-header__topic">
  53. <span class="md-ellipsis">
  54. External Secrets Operator
  55. </span>
  56. </div>
  57. <div class="md-header__topic" data-md-component="header-topic">
  58. <span class="md-ellipsis">
  59. Security Best Practices
  60. </span>
  61. </div>
  62. </div>
  63. </div>
  64. <label class="md-header__button md-icon" for="__search">
  65. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
  66. </label>
  67. <div class="md-search" data-md-component="search" role="dialog">
  68. <label class="md-search__overlay" for="__search"></label>
  69. <div class="md-search__inner" role="search">
  70. <form class="md-search__form" name="search">
  71. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
  72. <label class="md-search__icon md-icon" for="__search">
  73. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
  74. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
  75. </label>
  76. <nav class="md-search__options" aria-label="Search">
  77. <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
  78. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
  79. </button>
  80. </nav>
  81. </form>
  82. <div class="md-search__output">
  83. <div class="md-search__scrollwrap" data-md-scrollfix>
  84. <div class="md-search-result" data-md-component="search-result">
  85. <div class="md-search-result__meta">
  86. Initializing search
  87. </div>
  88. <ol class="md-search-result__list" role="presentation"></ol>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <div class="md-header__source">
  95. <a href="https://github.com/external-secrets/external-secrets" title="Go to repository" class="md-source" data-md-component="source">
  96. <div class="md-source__icon md-icon">
  97. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  98. </div>
  99. <div class="md-source__repository">
  100. External Secrets Operator
  101. </div>
  102. </a>
  103. </div>
  104. </nav>
  105. </header>
  106. <div class="md-container" data-md-component="container">
  107. <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
  108. <div class="md-grid">
  109. <ul class="md-tabs__list">
  110. <li class="md-tabs__item">
  111. <a href="../.." class="md-tabs__link">
  112. Introduction
  113. </a>
  114. </li>
  115. <li class="md-tabs__item">
  116. <a href="../../api/components/" class="md-tabs__link">
  117. API
  118. </a>
  119. </li>
  120. <li class="md-tabs__item">
  121. <a href="../introduction/" class="md-tabs__link md-tabs__link--active">
  122. Guides
  123. </a>
  124. </li>
  125. <li class="md-tabs__item">
  126. <a href="../../provider/aws-secrets-manager/" class="md-tabs__link">
  127. Provider
  128. </a>
  129. </li>
  130. <li class="md-tabs__item">
  131. <a href="../../examples/gitops-using-fluxcd/" class="md-tabs__link">
  132. Examples
  133. </a>
  134. </li>
  135. <li class="md-tabs__item">
  136. <a href="../../contributing/devguide/" class="md-tabs__link">
  137. Community
  138. </a>
  139. </li>
  140. </ul>
  141. </div>
  142. </nav>
  143. <main class="md-main" data-md-component="main">
  144. <div class="md-main__inner md-grid">
  145. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  146. <div class="md-sidebar__scrollwrap">
  147. <div class="md-sidebar__inner">
  148. <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
  149. <label class="md-nav__title" for="__drawer">
  150. <a href="../.." title="External Secrets Operator" class="md-nav__button md-logo" aria-label="External Secrets Operator" data-md-component="logo">
  151. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
  152. </a>
  153. External Secrets Operator
  154. </label>
  155. <div class="md-nav__source">
  156. <a href="https://github.com/external-secrets/external-secrets" title="Go to repository" class="md-source" data-md-component="source">
  157. <div class="md-source__icon md-icon">
  158. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  159. </div>
  160. <div class="md-source__repository">
  161. External Secrets Operator
  162. </div>
  163. </a>
  164. </div>
  165. <ul class="md-nav__list" data-md-scrollfix>
  166. <li class="md-nav__item md-nav__item--nested">
  167. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1" >
  168. <div class="md-nav__link md-nav__link--index ">
  169. <a href="../..">Introduction</a>
  170. <label for="__nav_1">
  171. <span class="md-nav__icon md-icon"></span>
  172. </label>
  173. </div>
  174. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
  175. <label class="md-nav__title" for="__nav_1">
  176. <span class="md-nav__icon md-icon"></span>
  177. Introduction
  178. </label>
  179. <ul class="md-nav__list" data-md-scrollfix>
  180. <li class="md-nav__item">
  181. <a href="../../introduction/overview/" class="md-nav__link">
  182. Overview
  183. </a>
  184. </li>
  185. <li class="md-nav__item">
  186. <a href="../../introduction/getting-started/" class="md-nav__link">
  187. Getting started
  188. </a>
  189. </li>
  190. <li class="md-nav__item">
  191. <a href="../../introduction/faq/" class="md-nav__link">
  192. FAQ
  193. </a>
  194. </li>
  195. <li class="md-nav__item">
  196. <a href="../../introduction/stability-support/" class="md-nav__link">
  197. Stability and Support
  198. </a>
  199. </li>
  200. <li class="md-nav__item">
  201. <a href="../../introduction/deprecation-policy/" class="md-nav__link">
  202. Deprecation Policy
  203. </a>
  204. </li>
  205. </ul>
  206. </nav>
  207. </li>
  208. <li class="md-nav__item md-nav__item--nested">
  209. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
  210. <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
  211. API
  212. <span class="md-nav__icon md-icon"></span>
  213. </label>
  214. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
  215. <label class="md-nav__title" for="__nav_2">
  216. <span class="md-nav__icon md-icon"></span>
  217. API
  218. </label>
  219. <ul class="md-nav__list" data-md-scrollfix>
  220. <li class="md-nav__item">
  221. <a href="../../api/components/" class="md-nav__link">
  222. Components
  223. </a>
  224. </li>
  225. <li class="md-nav__item md-nav__item--nested">
  226. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_2" >
  227. <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
  228. Core Resources
  229. <span class="md-nav__icon md-icon"></span>
  230. </label>
  231. <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
  232. <label class="md-nav__title" for="__nav_2_2">
  233. <span class="md-nav__icon md-icon"></span>
  234. Core Resources
  235. </label>
  236. <ul class="md-nav__list" data-md-scrollfix>
  237. <li class="md-nav__item">
  238. <a href="../../api/externalsecret/" class="md-nav__link">
  239. ExternalSecret
  240. </a>
  241. </li>
  242. <li class="md-nav__item">
  243. <a href="../../api/secretstore/" class="md-nav__link">
  244. SecretStore
  245. </a>
  246. </li>
  247. <li class="md-nav__item">
  248. <a href="../../api/clustersecretstore/" class="md-nav__link">
  249. ClusterSecretStore
  250. </a>
  251. </li>
  252. <li class="md-nav__item">
  253. <a href="../../api/clusterexternalsecret/" class="md-nav__link">
  254. ClusterExternalSecret
  255. </a>
  256. </li>
  257. <li class="md-nav__item">
  258. <a href="../../api/pushsecret/" class="md-nav__link">
  259. PushSecret
  260. </a>
  261. </li>
  262. </ul>
  263. </nav>
  264. </li>
  265. <li class="md-nav__item md-nav__item--nested">
  266. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_3" >
  267. <div class="md-nav__link md-nav__link--index ">
  268. <a href="../../api/generator/">Generators</a>
  269. <label for="__nav_2_3">
  270. <span class="md-nav__icon md-icon"></span>
  271. </label>
  272. </div>
  273. <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
  274. <label class="md-nav__title" for="__nav_2_3">
  275. <span class="md-nav__icon md-icon"></span>
  276. Generators
  277. </label>
  278. <ul class="md-nav__list" data-md-scrollfix>
  279. <li class="md-nav__item">
  280. <a href="../../api/generator/acr/" class="md-nav__link">
  281. Azure Container Registry
  282. </a>
  283. </li>
  284. <li class="md-nav__item">
  285. <a href="../../api/generator/ecr/" class="md-nav__link">
  286. AWS Elastic Container Registry
  287. </a>
  288. </li>
  289. <li class="md-nav__item">
  290. <a href="../../api/generator/gcr/" class="md-nav__link">
  291. Google Container Registry
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="../../api/generator/vault/" class="md-nav__link">
  296. Vault Dynamic Secret
  297. </a>
  298. </li>
  299. <li class="md-nav__item">
  300. <a href="../../api/generator/password/" class="md-nav__link">
  301. Password
  302. </a>
  303. </li>
  304. <li class="md-nav__item">
  305. <a href="../../api/generator/fake/" class="md-nav__link">
  306. Fake
  307. </a>
  308. </li>
  309. </ul>
  310. </nav>
  311. </li>
  312. <li class="md-nav__item md-nav__item--nested">
  313. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_4" >
  314. <label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
  315. Reference Docs
  316. <span class="md-nav__icon md-icon"></span>
  317. </label>
  318. <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
  319. <label class="md-nav__title" for="__nav_2_4">
  320. <span class="md-nav__icon md-icon"></span>
  321. Reference Docs
  322. </label>
  323. <ul class="md-nav__list" data-md-scrollfix>
  324. <li class="md-nav__item">
  325. <a href="../../api/spec/" class="md-nav__link">
  326. API specification
  327. </a>
  328. </li>
  329. <li class="md-nav__item">
  330. <a href="../../api/controller-options/" class="md-nav__link">
  331. Controller Options
  332. </a>
  333. </li>
  334. <li class="md-nav__item">
  335. <a href="../../api/metrics/" class="md-nav__link">
  336. Metrics
  337. </a>
  338. </li>
  339. </ul>
  340. </nav>
  341. </li>
  342. </ul>
  343. </nav>
  344. </li>
  345. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  346. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
  347. <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
  348. Guides
  349. <span class="md-nav__icon md-icon"></span>
  350. </label>
  351. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
  352. <label class="md-nav__title" for="__nav_3">
  353. <span class="md-nav__icon md-icon"></span>
  354. Guides
  355. </label>
  356. <ul class="md-nav__list" data-md-scrollfix>
  357. <li class="md-nav__item">
  358. <a href="../introduction/" class="md-nav__link">
  359. Introduction
  360. </a>
  361. </li>
  362. <li class="md-nav__item md-nav__item--nested">
  363. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_2" >
  364. <label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
  365. External Secrets
  366. <span class="md-nav__icon md-icon"></span>
  367. </label>
  368. <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
  369. <label class="md-nav__title" for="__nav_3_2">
  370. <span class="md-nav__icon md-icon"></span>
  371. External Secrets
  372. </label>
  373. <ul class="md-nav__list" data-md-scrollfix>
  374. <li class="md-nav__item">
  375. <a href="../all-keys-one-secret/" class="md-nav__link">
  376. Extract structured data
  377. </a>
  378. </li>
  379. <li class="md-nav__item">
  380. <a href="../getallsecrets/" class="md-nav__link">
  381. Find Secrets by Name or Metadata
  382. </a>
  383. </li>
  384. <li class="md-nav__item">
  385. <a href="../datafrom-rewrite/" class="md-nav__link">
  386. Rewriting Keys
  387. </a>
  388. </li>
  389. <li class="md-nav__item md-nav__item--nested">
  390. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_2_4" >
  391. <label class="md-nav__link" for="__nav_3_2_4" id="__nav_3_2_4_label" tabindex="0">
  392. Advanced Templating
  393. <span class="md-nav__icon md-icon"></span>
  394. </label>
  395. <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_4_label" aria-expanded="false">
  396. <label class="md-nav__title" for="__nav_3_2_4">
  397. <span class="md-nav__icon md-icon"></span>
  398. Advanced Templating
  399. </label>
  400. <ul class="md-nav__list" data-md-scrollfix>
  401. <li class="md-nav__item">
  402. <a href="../templating/" class="md-nav__link">
  403. v2
  404. </a>
  405. </li>
  406. <li class="md-nav__item">
  407. <a href="../templating-v1/" class="md-nav__link">
  408. v1
  409. </a>
  410. </li>
  411. </ul>
  412. </nav>
  413. </li>
  414. <li class="md-nav__item">
  415. <a href="../common-k8s-secret-types/" class="md-nav__link">
  416. Kubernetes Secret Types
  417. </a>
  418. </li>
  419. <li class="md-nav__item">
  420. <a href="../ownership-deletion-policy/" class="md-nav__link">
  421. Lifecycle: ownership & deletion
  422. </a>
  423. </li>
  424. <li class="md-nav__item">
  425. <a href="../decoding-strategy/" class="md-nav__link">
  426. Decoding Strategies
  427. </a>
  428. </li>
  429. <li class="md-nav__item">
  430. <a href="../controller-class/" class="md-nav__link">
  431. Controller Classes
  432. </a>
  433. </li>
  434. </ul>
  435. </nav>
  436. </li>
  437. <li class="md-nav__item">
  438. <a href="../generator/" class="md-nav__link">
  439. Generators
  440. </a>
  441. </li>
  442. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  443. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" checked>
  444. <label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
  445. Operations
  446. <span class="md-nav__icon md-icon"></span>
  447. </label>
  448. <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="true">
  449. <label class="md-nav__title" for="__nav_3_4">
  450. <span class="md-nav__icon md-icon"></span>
  451. Operations
  452. </label>
  453. <ul class="md-nav__list" data-md-scrollfix>
  454. <li class="md-nav__item">
  455. <a href="../multi-tenancy/" class="md-nav__link">
  456. Multi Tenancy
  457. </a>
  458. </li>
  459. <li class="md-nav__item md-nav__item--active">
  460. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  461. <label class="md-nav__link md-nav__link--active" for="__toc">
  462. Security Best Practices
  463. <span class="md-nav__icon md-icon"></span>
  464. </label>
  465. <a href="./" class="md-nav__link md-nav__link--active">
  466. Security Best Practices
  467. </a>
  468. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  469. <label class="md-nav__title" for="__toc">
  470. <span class="md-nav__icon md-icon"></span>
  471. Table of contents
  472. </label>
  473. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  474. <li class="md-nav__item">
  475. <a href="#pod-security" class="md-nav__link">
  476. Pod Security
  477. </a>
  478. </li>
  479. <li class="md-nav__item">
  480. <a href="#rbac" class="md-nav__link">
  481. RBAC
  482. </a>
  483. </li>
  484. <li class="md-nav__item">
  485. <a href="#network-policy" class="md-nav__link">
  486. Network Policy
  487. </a>
  488. </li>
  489. <li class="md-nav__item">
  490. <a href="#policy-engine-best-practices" class="md-nav__link">
  491. Policy Engine Best Practices
  492. </a>
  493. </li>
  494. <li class="md-nav__item">
  495. <a href="#regular-patches" class="md-nav__link">
  496. Regular Patches
  497. </a>
  498. </li>
  499. <li class="md-nav__item">
  500. <a href="#verify-artefacts" class="md-nav__link">
  501. Verify Artefacts
  502. </a>
  503. <nav class="md-nav" aria-label="Verify Artefacts">
  504. <ul class="md-nav__list">
  505. <li class="md-nav__item">
  506. <a href="#verify-container-images" class="md-nav__link">
  507. Verify Container Images
  508. </a>
  509. </li>
  510. <li class="md-nav__item">
  511. <a href="#verify-provenance" class="md-nav__link">
  512. Verify Provenance
  513. </a>
  514. </li>
  515. <li class="md-nav__item">
  516. <a href="#fetching-sbom" class="md-nav__link">
  517. Fetching SBOM
  518. </a>
  519. </li>
  520. </ul>
  521. </nav>
  522. </li>
  523. </ul>
  524. </nav>
  525. </li>
  526. <li class="md-nav__item">
  527. <a href="../v1beta1/" class="md-nav__link">
  528. Upgrading to v1beta1
  529. </a>
  530. </li>
  531. <li class="md-nav__item">
  532. <a href="../using-latest-image/" class="md-nav__link">
  533. Using Latest Image
  534. </a>
  535. </li>
  536. <li class="md-nav__item">
  537. <a href="../disable-cluster-features/" class="md-nav__link">
  538. Disable Cluster Features
  539. </a>
  540. </li>
  541. </ul>
  542. </nav>
  543. </li>
  544. </ul>
  545. </nav>
  546. </li>
  547. <li class="md-nav__item md-nav__item--nested">
  548. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
  549. <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
  550. Provider
  551. <span class="md-nav__icon md-icon"></span>
  552. </label>
  553. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
  554. <label class="md-nav__title" for="__nav_4">
  555. <span class="md-nav__icon md-icon"></span>
  556. Provider
  557. </label>
  558. <ul class="md-nav__list" data-md-scrollfix>
  559. <li class="md-nav__item">
  560. <a href="../../provider/aws-secrets-manager/" class="md-nav__link">
  561. AWS Secrets Manager
  562. </a>
  563. </li>
  564. <li class="md-nav__item">
  565. <a href="../../provider/aws-parameter-store/" class="md-nav__link">
  566. AWS Parameter Store
  567. </a>
  568. </li>
  569. <li class="md-nav__item">
  570. <a href="../../provider/azure-key-vault/" class="md-nav__link">
  571. Azure Key Vault
  572. </a>
  573. </li>
  574. <li class="md-nav__item">
  575. <a href="../../provider/google-secrets-manager/" class="md-nav__link">
  576. Google Cloud Secret Manager
  577. </a>
  578. </li>
  579. <li class="md-nav__item">
  580. <a href="../../provider/hashicorp-vault/" class="md-nav__link">
  581. HashiCorp Vault
  582. </a>
  583. </li>
  584. <li class="md-nav__item">
  585. <a href="../../provider/kubernetes/" class="md-nav__link">
  586. Kubernetes
  587. </a>
  588. </li>
  589. <li class="md-nav__item">
  590. <a href="../../provider/ibm-secrets-manager/" class="md-nav__link">
  591. IBM Secrets Manager
  592. </a>
  593. </li>
  594. <li class="md-nav__item">
  595. <a href="../../provider/akeyless/" class="md-nav__link">
  596. Akeyless
  597. </a>
  598. </li>
  599. <li class="md-nav__item">
  600. <a href="../../provider/yandex-certificate-manager/" class="md-nav__link">
  601. Yandex Certificate Manager
  602. </a>
  603. </li>
  604. <li class="md-nav__item">
  605. <a href="../../provider/yandex-lockbox/" class="md-nav__link">
  606. Yandex Lockbox
  607. </a>
  608. </li>
  609. <li class="md-nav__item">
  610. <a href="../../provider/alibaba/" class="md-nav__link">
  611. Alibaba Cloud
  612. </a>
  613. </li>
  614. <li class="md-nav__item">
  615. <a href="../../provider/gitlab-variables/" class="md-nav__link">
  616. GitLab Variables
  617. </a>
  618. </li>
  619. <li class="md-nav__item">
  620. <a href="../../provider/oracle-vault/" class="md-nav__link">
  621. Oracle Vault
  622. </a>
  623. </li>
  624. <li class="md-nav__item">
  625. <a href="../../provider/1password-automation/" class="md-nav__link">
  626. 1Password Secrets Automation
  627. </a>
  628. </li>
  629. <li class="md-nav__item">
  630. <a href="../../provider/webhook/" class="md-nav__link">
  631. Webhook
  632. </a>
  633. </li>
  634. <li class="md-nav__item">
  635. <a href="../../provider/fake/" class="md-nav__link">
  636. Fake
  637. </a>
  638. </li>
  639. <li class="md-nav__item">
  640. <a href="../../provider/senhasegura-dsm/" class="md-nav__link">
  641. senhasegura DevOps Secrets Management (DSM)
  642. </a>
  643. </li>
  644. <li class="md-nav__item">
  645. <a href="../../provider/doppler/" class="md-nav__link">
  646. Doppler
  647. </a>
  648. </li>
  649. <li class="md-nav__item">
  650. <a href="../../provider/keeper-security/" class="md-nav__link">
  651. Keeper Security
  652. </a>
  653. </li>
  654. <li class="md-nav__item">
  655. <a href="../../provider/scaleway/" class="md-nav__link">
  656. Scaleway
  657. </a>
  658. </li>
  659. </ul>
  660. </nav>
  661. </li>
  662. <li class="md-nav__item md-nav__item--nested">
  663. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
  664. <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
  665. Examples
  666. <span class="md-nav__icon md-icon"></span>
  667. </label>
  668. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
  669. <label class="md-nav__title" for="__nav_5">
  670. <span class="md-nav__icon md-icon"></span>
  671. Examples
  672. </label>
  673. <ul class="md-nav__list" data-md-scrollfix>
  674. <li class="md-nav__item">
  675. <a href="../../examples/gitops-using-fluxcd/" class="md-nav__link">
  676. FluxCD
  677. </a>
  678. </li>
  679. <li class="md-nav__item">
  680. <a href="../../examples/anchore-engine-credentials/" class="md-nav__link">
  681. Anchore Engine
  682. </a>
  683. </li>
  684. <li class="md-nav__item">
  685. <a href="../../examples/jenkins-kubernetes-credentials/" class="md-nav__link">
  686. Jenkins
  687. </a>
  688. </li>
  689. <li class="md-nav__item">
  690. <a href="../../examples/bitwarden/" class="md-nav__link">
  691. BitWarden
  692. </a>
  693. </li>
  694. </ul>
  695. </nav>
  696. </li>
  697. <li class="md-nav__item md-nav__item--nested">
  698. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
  699. <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
  700. Community
  701. <span class="md-nav__icon md-icon"></span>
  702. </label>
  703. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
  704. <label class="md-nav__title" for="__nav_6">
  705. <span class="md-nav__icon md-icon"></span>
  706. Community
  707. </label>
  708. <ul class="md-nav__list" data-md-scrollfix>
  709. <li class="md-nav__item md-nav__item--nested">
  710. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6_1" >
  711. <label class="md-nav__link" for="__nav_6_1" id="__nav_6_1_label" tabindex="0">
  712. Contributing
  713. <span class="md-nav__icon md-icon"></span>
  714. </label>
  715. <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_1_label" aria-expanded="false">
  716. <label class="md-nav__title" for="__nav_6_1">
  717. <span class="md-nav__icon md-icon"></span>
  718. Contributing
  719. </label>
  720. <ul class="md-nav__list" data-md-scrollfix>
  721. <li class="md-nav__item">
  722. <a href="../../contributing/devguide/" class="md-nav__link">
  723. Developer guide
  724. </a>
  725. </li>
  726. <li class="md-nav__item">
  727. <a href="../../contributing/process/" class="md-nav__link">
  728. Contributing Process
  729. </a>
  730. </li>
  731. <li class="md-nav__item">
  732. <a href="../../contributing/release/" class="md-nav__link">
  733. Release Process
  734. </a>
  735. </li>
  736. <li class="md-nav__item">
  737. <a href="../../contributing/coc/" class="md-nav__link">
  738. Code of Conduct
  739. </a>
  740. </li>
  741. <li class="md-nav__item">
  742. <a href="../../contributing/roadmap/" class="md-nav__link">
  743. Roadmap
  744. </a>
  745. </li>
  746. </ul>
  747. </nav>
  748. </li>
  749. <li class="md-nav__item md-nav__item--nested">
  750. <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6_2" >
  751. <label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
  752. External Resources
  753. <span class="md-nav__icon md-icon"></span>
  754. </label>
  755. <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
  756. <label class="md-nav__title" for="__nav_6_2">
  757. <span class="md-nav__icon md-icon"></span>
  758. External Resources
  759. </label>
  760. <ul class="md-nav__list" data-md-scrollfix>
  761. <li class="md-nav__item">
  762. <a href="../../eso-talks/" class="md-nav__link">
  763. Talks
  764. </a>
  765. </li>
  766. <li class="md-nav__item">
  767. <a href="../../eso-demos/" class="md-nav__link">
  768. Demos
  769. </a>
  770. </li>
  771. <li class="md-nav__item">
  772. <a href="../../eso-blogs/" class="md-nav__link">
  773. Blogs
  774. </a>
  775. </li>
  776. </ul>
  777. </nav>
  778. </li>
  779. </ul>
  780. </nav>
  781. </li>
  782. </ul>
  783. </nav>
  784. </div>
  785. </div>
  786. </div>
  787. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  788. <div class="md-sidebar__scrollwrap">
  789. <div class="md-sidebar__inner">
  790. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  791. <label class="md-nav__title" for="__toc">
  792. <span class="md-nav__icon md-icon"></span>
  793. Table of contents
  794. </label>
  795. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  796. <li class="md-nav__item">
  797. <a href="#pod-security" class="md-nav__link">
  798. Pod Security
  799. </a>
  800. </li>
  801. <li class="md-nav__item">
  802. <a href="#rbac" class="md-nav__link">
  803. RBAC
  804. </a>
  805. </li>
  806. <li class="md-nav__item">
  807. <a href="#network-policy" class="md-nav__link">
  808. Network Policy
  809. </a>
  810. </li>
  811. <li class="md-nav__item">
  812. <a href="#policy-engine-best-practices" class="md-nav__link">
  813. Policy Engine Best Practices
  814. </a>
  815. </li>
  816. <li class="md-nav__item">
  817. <a href="#regular-patches" class="md-nav__link">
  818. Regular Patches
  819. </a>
  820. </li>
  821. <li class="md-nav__item">
  822. <a href="#verify-artefacts" class="md-nav__link">
  823. Verify Artefacts
  824. </a>
  825. <nav class="md-nav" aria-label="Verify Artefacts">
  826. <ul class="md-nav__list">
  827. <li class="md-nav__item">
  828. <a href="#verify-container-images" class="md-nav__link">
  829. Verify Container Images
  830. </a>
  831. </li>
  832. <li class="md-nav__item">
  833. <a href="#verify-provenance" class="md-nav__link">
  834. Verify Provenance
  835. </a>
  836. </li>
  837. <li class="md-nav__item">
  838. <a href="#fetching-sbom" class="md-nav__link">
  839. Fetching SBOM
  840. </a>
  841. </li>
  842. </ul>
  843. </nav>
  844. </li>
  845. </ul>
  846. </nav>
  847. </div>
  848. </div>
  849. </div>
  850. <div class="md-content" data-md-component="content">
  851. <article class="md-content__inner md-typeset">
  852. <h1 id="security-best-practices">Security Best Practices</h1>
  853. <p>The purpose of this document is to provide a set of best practices for securing External Secrets Operator. These best practices are designed to reduce the risk of a successful attack against the operator or the Kubernetes cluster it integrates with.</p>
  854. <h2 id="pod-security">Pod Security</h2>
  855. <p>The External Secrets Operator Pods have been configured to adhere to <a href="https://kubernetes.io/docs/concepts/security/pod-security-standards/">Pod Security Standards</a> <code>restricted</code> profile which establish a great security posture by following current Pod hardening best practices such as the <a href="https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF">NSA Kubernetes Hardening Guide</a>.</p>
  856. <p>These measures provide a secure and robust environment for the External Secrets Operator to operate within. They have been set as default since <code>v0.8.2</code> and should not be changed to conform with the principle of least privilege.</p>
  857. <h2 id="rbac">RBAC</h2>
  858. <p>The External Secrets Operator runs with highly privileged access to your Kubernetes cluster. Due to it's purpose it is able to read and write to all secrets across all namespaces.</p>
  859. <p>Make sure to restrict access to ESO resources like <code>ExternalSecret</code>, <code>SecretStore</code> etc. where appropriate. This is particularly important for cluster-scoped resources like <code>ClusterExternalSecret</code> and <code>ClusterSecretStore</code>. If an attacker is able to tamper with these resources he could potentially get unauthorized access to secrets or may be able to exfiltrate data out of your system.</p>
  860. <p>In most scenarios the External Secrets Operator runs cluster-wide. If this is not desired and you want to run it per-namespace, you can scope it to a particular namespace, see <code>scopedRBAC</code> and <code>scopedNamespace</code> in the helm chart.</p>
  861. <p>A short checklist for you to walk through:</p>
  862. <ul>
  863. <li>restrict access to execute a shell <code>pods/exec</code> in External Secrets Operator Pod</li>
  864. <li>restrict access to <code>(Cluster)ExternalSecret</code> and <code>(Cluster)SecretStore</code></li>
  865. <li>restrict access to <a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles">aggregated ClusterRoles</a> <code>view/edit/admin</code> where needed</li>
  866. <li>run ESO with scoped RBAC/Namespace if needed</li>
  867. </ul>
  868. <h2 id="network-policy">Network Policy</h2>
  869. <p>Network Traffic from/to the operator should be restricted using <code>NetworkPolicies</code> or similar. By default, External Secrets Operator does not provide Network Policies for you.</p>
  870. <div class="admonition danger">
  871. <p class="admonition-title">Data Exfiltration Risk</p>
  872. <p>If not configured properly ESO may be used to exfiltrate data out of your cluster.
  873. It is advised to create tight NetworkPolicies and use a policy engine such as kyverno to prevent data exfiltration.</p>
  874. </div>
  875. <p>You should restrict access in <strong>egress</strong> direction:</p>
  876. <ul>
  877. <li>controller<ul>
  878. <li>kube-apiserver</li>
  879. <li>secret provider (AWS, GCP, ...), where possible use private endpoints.</li>
  880. </ul>
  881. </li>
  882. <li>webhook<ul>
  883. <li>kube-apiserver</li>
  884. </ul>
  885. </li>
  886. <li>cert-controller<ul>
  887. <li>kube-apiserver</li>
  888. </ul>
  889. </li>
  890. </ul>
  891. <p>Further, you also should restrict <strong>ingress</strong> traffic to ESO Pods:</p>
  892. <ul>
  893. <li>controller<ul>
  894. <li><code>:8080</code> from you monitoring agent</li>
  895. </ul>
  896. </li>
  897. <li>cert-controller:<ul>
  898. <li><code>:8080</code> from you monitoring agent</li>
  899. <li><code>:8081</code> from kubelet (healthz/readyz)</li>
  900. </ul>
  901. </li>
  902. <li>webhook:<ul>
  903. <li><code>:10250</code> from the kube-apiserver</li>
  904. <li><code>:8080</code> from you monitoring agent</li>
  905. <li><code>:8081</code> from kubelet (healthz/readyz)</li>
  906. </ul>
  907. </li>
  908. </ul>
  909. <h2 id="policy-engine-best-practices">Policy Engine Best Practices</h2>
  910. <p>You should use a policy engine like <a href="http://kyverno.io/">kyverno</a> or <a href="https://github.com/open-policy-agent/gatekeeper">OPA Gatekeeper</a> to restrict changes made to ESO resources like <code>SecretStore</code> and <code>ExternalSecret</code>.</p>
  911. <div class="admonition danger">
  912. <p class="admonition-title">Data Exfiltration Risk</p>
  913. <p>ESO could be used to exfiltrate data out of your cluster. You should disable all providers you don't need.
  914. Further, you should implement <code>NetworkPolicies</code> to restrict network access to known entities (see above), to prevent data exfiltration.</p>
  915. </div>
  916. <p>Here a couple of recommendations for you to consider:</p>
  917. <ul>
  918. <li>explicitly deny usage of the providers you don't need</li>
  919. <li>restrict access to secrets with/without a particular prefix in <code>.spec.data[].remoteRef.key</code></li>
  920. <li>restrict usage of a <code>(Cluster)SecretStore</code> reference in an ExternalSecret</li>
  921. </ul>
  922. <div class="admonition note">
  923. <p class="admonition-title">Provider Validation Example Policy</p>
  924. <p>The following policy validates the usage of the <code>provider</code> field in the SecretStore manifest.</p>
  925. <div class="highlight"><pre><span></span><code><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">kyverno.io/v1</span>
  926. <span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ClusterPolicy</span>
  927. <span class="nt">metadata</span><span class="p">:</span>
  928. <span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">require-secretstore-aws-provider</span>
  929. <span class="nt">spec</span><span class="p">:</span>
  930. <span class="w"> </span><span class="nt">validationFailureAction</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Enforce</span>
  931. <span class="w"> </span><span class="nt">rules</span><span class="p">:</span>
  932. <span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">require-secretstore-aws-provider</span>
  933. <span class="w"> </span><span class="nt">match</span><span class="p">:</span>
  934. <span class="w"> </span><span class="nt">any</span><span class="p">:</span>
  935. <span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">resources</span><span class="p">:</span>
  936. <span class="w"> </span><span class="nt">kinds</span><span class="p">:</span>
  937. <span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">SecretStore</span>
  938. <span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ClusterSecretStore</span>
  939. <span class="w"> </span><span class="nt">validate</span><span class="p">:</span>
  940. <span class="w"> </span><span class="nt">message</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;You</span><span class="nv"> </span><span class="s">must</span><span class="nv"> </span><span class="s">only</span><span class="nv"> </span><span class="s">use</span><span class="nv"> </span><span class="s">AWS</span><span class="nv"> </span><span class="s">SecretsManager&quot;</span>
  941. <span class="w"> </span><span class="nt">pattern</span><span class="p">:</span>
  942. <span class="w"> </span><span class="nt">spec</span><span class="p">:</span>
  943. <span class="w"> </span><span class="nt">provider</span><span class="p">:</span>
  944. <span class="w"> </span><span class="nt">aws</span><span class="p">:</span>
  945. <span class="w"> </span><span class="nt">service</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">SecretsManager</span>
  946. </code></pre></div>
  947. </div>
  948. <h2 id="regular-patches">Regular Patches</h2>
  949. <p>Regularly patch and update all software components of ESO and the cluster to ensure that known vulnerabilities are addressed. Use automated patching and updating tools to ensure that all components are kept up-to-date.</p>
  950. <p>We provide regular updates to ESO, see <a href="../../introduction/stability-support.md">Stability and Support</a>.</p>
  951. <h2 id="verify-artefacts">Verify Artefacts</h2>
  952. <h3 id="verify-container-images">Verify Container Images</h3>
  953. <p>External Secrets Operator container images are signed using Cosign and the keyless signing feature. To verify the container image, follow the steps below.</p>
  954. <div class="highlight"><pre><span></span><code>$<span class="w"> </span>crane<span class="w"> </span>digest<span class="w"> </span>ghcr.io/external-secrets/external-secrets:v0.8.1
  955. sha256:36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554
  956. $<span class="w"> </span><span class="nv">COSIGN_EXPERIMENTAL</span><span class="o">=</span><span class="m">1</span><span class="w"> </span>cosign<span class="w"> </span>verify<span class="w"> </span>ghcr.io/external-secrets/external-secrets@sha256:36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554<span class="w"> </span><span class="p">|</span><span class="w"> </span>jq
  957. <span class="c1"># ...</span>
  958. <span class="o">[</span>
  959. <span class="w"> </span><span class="o">{</span>
  960. <span class="w"> </span><span class="s2">&quot;critical&quot;</span>:<span class="w"> </span><span class="o">{</span>
  961. <span class="w"> </span><span class="s2">&quot;identity&quot;</span>:<span class="w"> </span><span class="o">{</span>
  962. <span class="w"> </span><span class="s2">&quot;docker-reference&quot;</span>:<span class="w"> </span><span class="s2">&quot;ghcr.io/external-secrets/external-secrets&quot;</span>
  963. <span class="w"> </span><span class="o">}</span>,
  964. <span class="w"> </span><span class="s2">&quot;image&quot;</span>:<span class="w"> </span><span class="o">{</span>
  965. <span class="w"> </span><span class="s2">&quot;docker-manifest-digest&quot;</span>:<span class="w"> </span><span class="s2">&quot;sha256:36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554&quot;</span>
  966. <span class="w"> </span><span class="o">}</span>,
  967. <span class="w"> </span><span class="s2">&quot;type&quot;</span>:<span class="w"> </span><span class="s2">&quot;cosign container image signature&quot;</span>
  968. <span class="w"> </span><span class="o">}</span>,
  969. <span class="w"> </span><span class="s2">&quot;optional&quot;</span>:<span class="w"> </span><span class="o">{</span>
  970. <span class="w"> </span><span class="s2">&quot;1.3.6.1.4.1.57264.1.1&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://token.actions.githubusercontent.com&quot;</span>,
  971. <span class="w"> </span><span class="s2">&quot;1.3.6.1.4.1.57264.1.2&quot;</span>:<span class="w"> </span><span class="s2">&quot;workflow_dispatch&quot;</span>,
  972. <span class="w"> </span><span class="s2">&quot;1.3.6.1.4.1.57264.1.3&quot;</span>:<span class="w"> </span><span class="s2">&quot;a0d2aef2e35c259c9ee75d65f7587e6ed71ef2ad&quot;</span>,
  973. <span class="w"> </span><span class="s2">&quot;1.3.6.1.4.1.57264.1.4&quot;</span>:<span class="w"> </span><span class="s2">&quot;Create Release&quot;</span>,
  974. <span class="w"> </span><span class="s2">&quot;1.3.6.1.4.1.57264.1.5&quot;</span>:<span class="w"> </span><span class="s2">&quot;external-secrets/external-secrets&quot;</span>,
  975. <span class="w"> </span><span class="s2">&quot;1.3.6.1.4.1.57264.1.6&quot;</span>:<span class="w"> </span><span class="s2">&quot;refs/heads/main&quot;</span>,
  976. <span class="w"> </span><span class="s2">&quot;Bundle&quot;</span>:<span class="w"> </span><span class="o">{</span>
  977. <span class="w"> </span><span class="c1"># ...</span>
  978. <span class="w"> </span><span class="o">}</span>,
  979. <span class="w"> </span><span class="s2">&quot;GITHUB_ACTOR&quot;</span>:<span class="w"> </span><span class="s2">&quot;gusfcarvalho&quot;</span>,
  980. <span class="w"> </span><span class="s2">&quot;Issuer&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://token.actions.githubusercontent.com&quot;</span>,
  981. <span class="w"> </span><span class="s2">&quot;Subject&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://github.com/external-secrets/external-secrets/.github/workflows/release.yml@refs/heads/main&quot;</span>,
  982. <span class="w"> </span><span class="s2">&quot;githubWorkflowName&quot;</span>:<span class="w"> </span><span class="s2">&quot;Create Release&quot;</span>,
  983. <span class="w"> </span><span class="s2">&quot;githubWorkflowRef&quot;</span>:<span class="w"> </span><span class="s2">&quot;refs/heads/main&quot;</span>,
  984. <span class="w"> </span><span class="s2">&quot;githubWorkflowRepository&quot;</span>:<span class="w"> </span><span class="s2">&quot;external-secrets/external-secrets&quot;</span>,
  985. <span class="w"> </span><span class="s2">&quot;githubWorkflowSha&quot;</span>:<span class="w"> </span><span class="s2">&quot;a0d2aef2e35c259c9ee75d65f7587e6ed71ef2ad&quot;</span>,
  986. <span class="w"> </span><span class="s2">&quot;githubWorkflowTrigger&quot;</span>:<span class="w"> </span><span class="s2">&quot;workflow_dispatch&quot;</span>
  987. <span class="w"> </span><span class="o">}</span>
  988. <span class="w"> </span><span class="o">}</span>
  989. <span class="o">]</span>
  990. </code></pre></div>
  991. <p>Note that the important fields to verify in the output are <code>optional.Issuer</code> and <code>optional.Subject</code>. If Issuer and Subject do not match the values shown above, the image is not legit and should not be used.</p>
  992. <h3 id="verify-provenance">Verify Provenance</h3>
  993. <p>External Secrets Operator creates and attests to the provenance of its builds using the <a href="https://slsa.dev/provenance/v0.1">SLSA standard</a>. The attested provenance may be verified using the cosign tool.</p>
  994. <div class="highlight"><pre><span></span><code>$<span class="w"> </span><span class="nv">COSIGN_EXPERIMENTAL</span><span class="o">=</span><span class="m">1</span><span class="w"> </span>cosign<span class="w"> </span>verify-attestation<span class="w"> </span>--type<span class="w"> </span>slsaprovenance<span class="w"> </span>ghcr.io/external-secrets/external-secrets:v0.8.1<span class="w"> </span><span class="p">|</span><span class="w"> </span>jq<span class="w"> </span>.payload<span class="w"> </span>-r<span class="w"> </span><span class="p">|</span><span class="w"> </span>base64<span class="w"> </span>--decode<span class="w"> </span><span class="p">|</span><span class="w"> </span>jq
  995. Verification<span class="w"> </span><span class="k">for</span><span class="w"> </span>ghcr.io/external-secrets/external-secrets:v0.8.1<span class="w"> </span>--
  996. The<span class="w"> </span>following<span class="w"> </span>checks<span class="w"> </span>were<span class="w"> </span>performed<span class="w"> </span>on<span class="w"> </span>each<span class="w"> </span>of<span class="w"> </span>these<span class="w"> </span>signatures:
  997. <span class="w"> </span>-<span class="w"> </span>The<span class="w"> </span>cosign<span class="w"> </span>claims<span class="w"> </span>were<span class="w"> </span>validated
  998. <span class="w"> </span>-<span class="w"> </span>Existence<span class="w"> </span>of<span class="w"> </span>the<span class="w"> </span>claims<span class="w"> </span><span class="k">in</span><span class="w"> </span>the<span class="w"> </span>transparency<span class="w"> </span>log<span class="w"> </span>was<span class="w"> </span>verified<span class="w"> </span>offline
  999. <span class="w"> </span>-<span class="w"> </span>Any<span class="w"> </span>certificates<span class="w"> </span>were<span class="w"> </span>verified<span class="w"> </span>against<span class="w"> </span>the<span class="w"> </span>Fulcio<span class="w"> </span>roots.
  1000. Certificate<span class="w"> </span>subject:<span class="w"> </span>https://github.com/external-secrets/external-secrets/.github/workflows/release.yml@refs/heads/main
  1001. Certificate<span class="w"> </span>issuer<span class="w"> </span>URL:<span class="w"> </span>https://token.actions.githubusercontent.com
  1002. GitHub<span class="w"> </span>Workflow<span class="w"> </span>Trigger:<span class="w"> </span>workflow_dispatch
  1003. GitHub<span class="w"> </span>Workflow<span class="w"> </span>SHA:<span class="w"> </span>a0d2aef2e35c259c9ee75d65f7587e6ed71ef2ad
  1004. GitHub<span class="w"> </span>Workflow<span class="w"> </span>Name:<span class="w"> </span>Create<span class="w"> </span>Release
  1005. GitHub<span class="w"> </span>Workflow<span class="w"> </span>Trigger<span class="w"> </span>external-secrets/external-secrets
  1006. GitHub<span class="w"> </span>Workflow<span class="w"> </span>Ref:<span class="w"> </span>refs/heads/main
  1007. <span class="o">{</span>
  1008. <span class="w"> </span><span class="s2">&quot;_type&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://in-toto.io/Statement/v0.1&quot;</span>,
  1009. <span class="w"> </span><span class="s2">&quot;predicateType&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://slsa.dev/provenance/v0.2&quot;</span>,
  1010. <span class="w"> </span><span class="s2">&quot;subject&quot;</span>:<span class="w"> </span><span class="o">[</span>
  1011. <span class="w"> </span><span class="o">{</span>
  1012. <span class="w"> </span><span class="s2">&quot;name&quot;</span>:<span class="w"> </span><span class="s2">&quot;ghcr.io/external-secrets/external-secrets&quot;</span>,
  1013. <span class="w"> </span><span class="s2">&quot;digest&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1014. <span class="w"> </span><span class="s2">&quot;sha256&quot;</span>:<span class="w"> </span><span class="s2">&quot;36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554&quot;</span>
  1015. <span class="w"> </span><span class="o">}</span>
  1016. <span class="w"> </span><span class="o">}</span>
  1017. <span class="w"> </span><span class="o">]</span>,
  1018. <span class="w"> </span><span class="s2">&quot;predicate&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1019. <span class="w"> </span><span class="s2">&quot;builder&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1020. <span class="w"> </span><span class="s2">&quot;id&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://github.com/external-secrets/external-secrets/Attestations/GitHubHostedActions@v1&quot;</span>
  1021. <span class="w"> </span><span class="o">}</span>,
  1022. <span class="w"> </span><span class="s2">&quot;buildType&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://github.com/Attestations/GitHubActionsWorkflow@v1&quot;</span>,
  1023. <span class="w"> </span><span class="s2">&quot;invocation&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1024. <span class="w"> </span><span class="s2">&quot;configSource&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1025. <span class="w"> </span><span class="s2">&quot;uri&quot;</span>:<span class="w"> </span><span class="s2">&quot;git+https://github.com/external-secrets/external-secrets&quot;</span>,
  1026. <span class="w"> </span><span class="s2">&quot;digest&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1027. <span class="w"> </span><span class="s2">&quot;sha1&quot;</span>:<span class="w"> </span><span class="s2">&quot;a0d2aef2e35c259c9ee75d65f7587e6ed71ef2ad&quot;</span>
  1028. <span class="w"> </span><span class="o">}</span>,
  1029. <span class="w"> </span><span class="s2">&quot;entryPoint&quot;</span>:<span class="w"> </span><span class="s2">&quot;Create Release&quot;</span>
  1030. <span class="w"> </span><span class="o">}</span>,
  1031. <span class="w"> </span><span class="s2">&quot;parameters&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1032. <span class="w"> </span><span class="s2">&quot;version&quot;</span>:<span class="w"> </span><span class="s2">&quot;v0.8.1&quot;</span>
  1033. <span class="w"> </span><span class="o">}</span>
  1034. <span class="w"> </span><span class="o">}</span>,
  1035. <span class="w"> </span><span class="o">[</span>...<span class="o">]</span>
  1036. <span class="w"> </span><span class="o">}</span>
  1037. <span class="o">}</span>
  1038. </code></pre></div>
  1039. <h3 id="fetching-sbom">Fetching SBOM</h3>
  1040. <p>An SBOM (Software Bill of Materials) in Software Package Data Exchange (SPDX) JSON format is attached to every External Secrets Operator image. To download and verify the SBOM for a specific version, install Cosign and run:</p>
  1041. <div class="highlight"><pre><span></span><code>$<span class="w"> </span>crane<span class="w"> </span>digest<span class="w"> </span>ghcr.io/external-secrets/external-secrets:v0.8.1
  1042. sha256:36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554
  1043. $<span class="w"> </span><span class="nv">COSIGN_EXPERIMENTAL</span><span class="o">=</span><span class="m">1</span><span class="w"> </span>cosign<span class="w"> </span>verify-attestation<span class="w"> </span>--type<span class="w"> </span>spdx<span class="w"> </span>ghcr.io/external-secrets/external-secrets@sha256:36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554<span class="w"> </span><span class="p">|</span><span class="w"> </span>jq<span class="w"> </span><span class="s1">&#39;.payload |= @base64d | .payload | fromjson&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>jq<span class="w"> </span><span class="s1">&#39;.predicate.Data | fromjson&#39;</span>
  1044. <span class="o">[</span>...<span class="o">]</span>
  1045. <span class="o">{</span>
  1046. <span class="w"> </span><span class="s2">&quot;SPDXID&quot;</span>:<span class="w"> </span><span class="s2">&quot;SPDXRef-DOCUMENT&quot;</span>,
  1047. <span class="w"> </span><span class="s2">&quot;name&quot;</span>:<span class="w"> </span><span class="s2">&quot;ghcr.io/external-secrets/external-secrets@sha256-36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554&quot;</span>,
  1048. <span class="w"> </span><span class="s2">&quot;spdxVersion&quot;</span>:<span class="w"> </span><span class="s2">&quot;SPDX-2.2&quot;</span>,
  1049. <span class="w"> </span><span class="s2">&quot;creationInfo&quot;</span>:<span class="w"> </span><span class="o">{</span>
  1050. <span class="w"> </span><span class="s2">&quot;created&quot;</span>:<span class="w"> </span><span class="s2">&quot;2023-03-17T23:17:01.568002344Z&quot;</span>,
  1051. <span class="w"> </span><span class="s2">&quot;creators&quot;</span>:<span class="w"> </span><span class="o">[</span>
  1052. <span class="w"> </span><span class="s2">&quot;Organization: Anchore, Inc&quot;</span>,
  1053. <span class="w"> </span><span class="s2">&quot;Tool: syft-0.40.1&quot;</span>
  1054. <span class="w"> </span><span class="o">]</span>,
  1055. <span class="w"> </span><span class="s2">&quot;licenseListVersion&quot;</span>:<span class="w"> </span><span class="s2">&quot;3.16&quot;</span>
  1056. <span class="w"> </span><span class="o">}</span>,
  1057. <span class="w"> </span><span class="s2">&quot;dataLicense&quot;</span>:<span class="w"> </span><span class="s2">&quot;CC0-1.0&quot;</span>,
  1058. <span class="w"> </span><span class="s2">&quot;documentNamespace&quot;</span>:<span class="w"> </span><span class="s2">&quot;https://anchore.com/syft/image/ghcr.io/external-secrets/external-secrets@sha256-36e606279dbebac51b4b9300b9fa85e8c08c1c673ba3ecc38af1402a0b035554-83484ebb-b469-45fa-8fcc-9290c4ea4f6f&quot;</span>,
  1059. <span class="w"> </span><span class="s2">&quot;packages&quot;</span>:<span class="w"> </span><span class="o">[</span>
  1060. <span class="w"> </span><span class="o">[</span>...<span class="o">]</span>
  1061. <span class="w"> </span><span class="o">{</span>
  1062. <span class="w"> </span><span class="s2">&quot;SPDXID&quot;</span>:<span class="w"> </span><span class="s2">&quot;SPDXRef-c809070b0beb099e&quot;</span>,
  1063. <span class="w"> </span><span class="s2">&quot;name&quot;</span>:<span class="w"> </span><span class="s2">&quot;tzdata&quot;</span>,
  1064. <span class="w"> </span><span class="s2">&quot;licenseConcluded&quot;</span>:<span class="w"> </span><span class="s2">&quot;NONE&quot;</span>,
  1065. <span class="w"> </span><span class="s2">&quot;downloadLocation&quot;</span>:<span class="w"> </span><span class="s2">&quot;NOASSERTION&quot;</span>,
  1066. <span class="w"> </span><span class="s2">&quot;externalRefs&quot;</span>:<span class="w"> </span><span class="o">[</span>
  1067. <span class="w"> </span><span class="o">{</span>
  1068. <span class="w"> </span><span class="s2">&quot;referenceCategory&quot;</span>:<span class="w"> </span><span class="s2">&quot;SECURITY&quot;</span>,
  1069. <span class="w"> </span><span class="s2">&quot;referenceLocator&quot;</span>:<span class="w"> </span><span class="s2">&quot;cpe:2.3:a:tzdata:tzdata:2021a-1\\+deb11u8:*:*:*:*:*:*:*&quot;</span>,
  1070. <span class="w"> </span><span class="s2">&quot;referenceType&quot;</span>:<span class="w"> </span><span class="s2">&quot;cpe23Type&quot;</span>
  1071. <span class="w"> </span><span class="o">}</span>,
  1072. <span class="w"> </span><span class="o">{</span>
  1073. <span class="w"> </span><span class="s2">&quot;referenceCategory&quot;</span>:<span class="w"> </span><span class="s2">&quot;PACKAGE_MANAGER&quot;</span>,
  1074. <span class="w"> </span><span class="s2">&quot;referenceLocator&quot;</span>:<span class="w"> </span><span class="s2">&quot;pkg:deb/debian/tzdata@2021a-1+deb11u8?arch=all&amp;distro=debian-11&quot;</span>,
  1075. <span class="w"> </span><span class="s2">&quot;referenceType&quot;</span>:<span class="w"> </span><span class="s2">&quot;purl&quot;</span>
  1076. <span class="w"> </span><span class="o">}</span>
  1077. <span class="w"> </span><span class="o">]</span>,
  1078. <span class="w"> </span><span class="s2">&quot;filesAnalyzed&quot;</span>:<span class="w"> </span>false,
  1079. <span class="w"> </span><span class="s2">&quot;licenseDeclared&quot;</span>:<span class="w"> </span><span class="s2">&quot;NONE&quot;</span>,
  1080. <span class="w"> </span><span class="s2">&quot;originator&quot;</span>:<span class="w"> </span><span class="s2">&quot;Person: GNU Libc Maintainers &lt;debian-glibc@lists.debian.org&gt;&quot;</span>,
  1081. <span class="w"> </span><span class="s2">&quot;sourceInfo&quot;</span>:<span class="w"> </span><span class="s2">&quot;acquired package info from DPKG DB: /var/lib/dpkg/status.d/tzdata, /usr/share/doc/tzdata/copyright&quot;</span>,
  1082. <span class="w"> </span><span class="s2">&quot;versionInfo&quot;</span>:<span class="w"> </span><span class="s2">&quot;2021a-1+deb11u8&quot;</span>
  1083. <span class="w"> </span><span class="o">}</span>
  1084. <span class="w"> </span><span class="o">]</span>
  1085. <span class="o">}</span>
  1086. </code></pre></div>
  1087. </article>
  1088. </div>
  1089. </div>
  1090. </main>
  1091. <footer class="md-footer">
  1092. <div class="md-footer-meta md-typeset">
  1093. <div class="md-footer-meta__inner md-grid">
  1094. <div class="md-copyright">
  1095. <div class="md-copyright__highlight">
  1096. &copy; 2023 The external-secrets Authors.<br/>
  1097. &copy; 2023 The Linux Foundation. All rights reserved.<br/><br/>
  1098. The Linux Foundation has registered trademarks and uses trademarks.<br/>
  1099. For a list of trademarks of The Linux Foundation, please see our <a href="https://www.linuxfoundation.org/trademark-usage/">Trademark Usage page</a>.
  1100. </div>
  1101. Made with
  1102. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  1103. Material for MkDocs
  1104. </a>
  1105. </div>
  1106. </div>
  1107. </div>
  1108. </footer>
  1109. </div>
  1110. <div class="md-dialog" data-md-component="dialog">
  1111. <div class="md-dialog__inner md-typeset"></div>
  1112. </div>
  1113. <script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.indexes", "navigation.expand"], "search": "../../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
  1114. <script src="../../assets/javascripts/bundle.fac441b0.min.js"></script>
  1115. </body>
  1116. </html>