{"id":36918,"date":"2019-10-31T22:14:43","date_gmt":"2019-10-31T19:14:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/bezopasnost-helm\/"},"modified":"2019-10-31T22:14:43","modified_gmt":"2019-10-31T19:14:43","slug":"bezopasnost-helm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/bezopasnost-helm","title":{"rendered":"Helm Security","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Essensen i fortellingen om den mest popul\u00e6re pakkebehandleren for Kubernetes kan illustreres med hjelp av emojis:<\/p>\n<ul>\n<li>eske \u2013 det er Helm (den mest passende i den nyeste Emoji-utgivelsen);<\/li>\n<li>l\u00e5s \u2013 sikkerhet;<\/li>\n<li>menneske \u2013 en l\u00f8sning p\u00e5 problemet.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/91099b372fd73bce94268563c3ee2c50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI virkeligheten vil alt v\u00e6re litt mer komplisert, og fortellingen er full av tekniske detaljer om hvordan <b>man kan gj\u00f8re Helm sikker<\/b>.<\/p>\n<ul>\n<li>Kort sagt, hva er Helm, hvis du ikke visste eller har glemt det. Hvilke problemer l\u00f8ser det, og hvor i \u00f8kosystemet ligger det.<\/li>\n<li>La oss se p\u00e5 arkitekturen til Helm. Ingen samtale om sikkerhet og om hvordan man kan gj\u00f8re et verkt\u00f8y eller en l\u00f8sning sikrere kan omg\u00e5s uten forst\u00e5else av komponentarkitekturen.<\/li>\n<li>Vi vil diskutere komponentene i Helm.<\/li>\n<li>Det mest presserende sp\u00f8rsm\u00e5let \u2013 fremtiden \u2013 den nye versjonen av Helm 3.\u00a0<\/li>\n<\/ul>\n<p>\nAlt i denne artikkelen gjelder Helm 2. Denne versjonen er n\u00e5 i produksjon, og det er sannsynligvis den du bruker n\u00e5, og det er der sikkerhetstrusler finnes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"_8zNTJ1_R5I\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/_8zNTJ1_R5I\/hqdefault.jpg\" alt=\"Spill video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n<strong>Om foredragsholderen:<\/strong> Alexander Khayev (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/allexx\/\" class=\"user_link\">allexx<\/a><\/noindex>) har jobbet med utvikling i 10 \u00e5r, hjelper til med \u00e5 forbedre innholdet <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.python.ru\/2019\">Moscow Python Conf++<\/a><\/noindex> og har sluttet seg til komiteen <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/events\/helm-summit-2019\/\">Helm Summit<\/a><\/noindex>. Han jobber n\u00e5 i Chainstack som development lead \u2013 en hybrid mellom en utviklerleder og en som har ansvar for levering av endelige utgivelser. Det vil si han befinner seg p\u00e5 slagmarken, hvor alt skjer fra produktutvikling til drift.<\/p>\n<p>Chainstack er en liten, aktivt voksende oppstart, med m\u00e5l om \u00e5 gi kundene muligheten til \u00e5 glemme om infrastrukturen og utfordringene ved \u00e5 drifte desentraliserte applikasjoner, utviklingsteamet befinner seg i Singapore. Ikke be Chainstack om \u00e5 selge eller kj\u00f8pe kryptovaluta, men foresl\u00e5 \u00e5 snakke om enterprise blockchain-rammeverk, og de vil gjerne svare deg.<\/p>\n<h2>Helm<\/h2>\n<p>\nDet er en pakkebehandler (charts) for Kubernetes. Den mest forst\u00e5elige og universelle m\u00e5ten \u00e5 f\u00e5 applikasjoner inn i Kubernetes-klyngen p\u00e5.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/30c0fc1cc1c6ebde97c6e8ec1886ce9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet handler selvf\u00f8lgelig om en mer strukturert og industriell tiln\u00e6rming enn \u00e5 lage egne YAML-manifest og skrive sm\u00e5 verkt\u00f8y.<\/p>\n<blockquote><p>Helm er det beste som n\u00e5 er tilgjengelig og popul\u00e6rt.<\/p><\/blockquote>\n<p>\nHvorfor Helm? F\u00f8rst og fremst fordi det st\u00f8ttes av CNCF. Cloud Native er en stor organisasjon som er morselskap for prosjektene Kubernetes, etcd, Fluentd og andre.<\/p>\n<p>En annen viktig fakt er at Helm er et veldig popul\u00e6rt prosjekt. Da jeg i januar 2019 begynte \u00e5 tenke p\u00e5 hvordan jeg kunne gj\u00f8re Helm sikkert, hadde prosjektet tusen stjerner p\u00e5 GitHub. I mai hadde det blitt 12 tusen.<\/p>\n<p>Mange er nysgjerrige p\u00e5 Helm, s\u00e5 selv om du ikke bruker det enn\u00e5, vil kunnskap om sikkerheten rundt det v\u00e6re nyttig. <strong>Sikkerhet er viktig.<\/strong><\/p>\n<p>Hovedteamet for Helm st\u00f8ttes av Microsoft Azure, og derfor er dette et ganske stabilt prosjekt sammenlignet med mange andre. Utgivelsen av Helm 3 Alpha 2 i midten av juli viser at det er mange som jobber med prosjektet, og de har vilje og styrke til \u00e5 utvikle og forbedre Helm.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/e53c8e64c3cf5eea3fbd9b0095b0f81e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHelm l\u00f8ser flere grunnleggende problemer med applikasjonsadministrasjon i Kubernetes.<\/p>\n<ul>\n<li>Pakking av applikasjoner. Selv en applikasjon som 'Hello, World' med WordPress representerer allerede flere tjenester, og man \u00f8nsker \u00e5 pakke dem sammen.<\/li>\n<li>H\u00e5ndtering av kompleksiteten som oppst\u00e5r med administrasjon av disse applikasjonene.<\/li>\n<li>Livssyklusen som ikke avsluttes etter installasjonen eller distribusjonen av applikasjonen. Den fortsetter \u00e5 eksistere, den m\u00e5 oppdateres, og Helm hjelper i dette og pr\u00f8ver \u00e5 bringe til rette for riktige tiltak og retningslinjer.<\/li>\n<\/ul>\n<p>\n<strong>Pakking<\/strong> er bygget p\u00e5 en forst\u00e5elig m\u00e5te: det er metadata i full overensstemmelse med funksjonen til en vanlig pakkeh\u00e5ndterer for Linux, Windows eller MacOS. Det vil si, et repository, avhengigheter fra forskjellige pakker, metainformasjon for applikasjoner, innstillinger, konfigurasjonsfunksjoner, indeksering av informasjon osv. Alt dette lar Helm f\u00e5 tilgang til og bruke for applikasjoner.<\/p>\n<p><strong>H\u00e5ndtering av kompleksitet<\/strong>. Hvis du har mange like applikasjoner, er parameterisering n\u00f8dvendig. Her kommer maler inn, men for \u00e5 unng\u00e5 \u00e5 finne p\u00e5 din egen m\u00e5te \u00e5 lage maler p\u00e5, kan du bruke det Helm tilbyr rett ut av boksen.<\/p>\n<p><strong>Administrasjon av applikasjons livssyklus<\/strong> \u2013 etter min mening er dette det mest interessante og ul\u00f8ste sp\u00f8rsm\u00e5let. Det er grunnen til at jeg en gang kom til Helm. Vi trengte \u00e5 f\u00f8lge livssyklusen til applikasjonen, og vi \u00f8nsket \u00e5 overf\u00f8re v\u00e5r CI\/CD og applikasjonssykluser inn i dette paradigmet.<\/p>\n<p>Helm lar deg:<\/p>\n<ul>\n<li>administrere distribusjoner, introdusere konseptet konfigurasjon og revisjoner;<\/li>\n<li>utf\u00f8re rollback med suksess;<\/li>\n<li>bruke hooks p\u00e5 forskjellige hendelser;<\/li>\n<li>legge til ekstra sjekker for applikasjoner og reagere p\u00e5 resultatene deres.<\/li>\n<\/ul>\n<p>\nI tillegg <strong>Helm har \u00abbatterier\u00bb<\/strong> \u2014 et stort antall smakfulle ting som kan inkluderes som plugins, noe som forenkler livet ditt. Plugins kan skrives selv, de er ganske isolerte og krever ikke en str\u00f8mlinjeformet arkitektur. Hvis du \u00f8nsker \u00e5 realisere noe, anbefaler jeg \u00e5 gj\u00f8re det som et plugin, og s\u00e5 kanskje inkludere det i upstream senere.<\/p>\n<p>Helm bygger p\u00e5 tre grunnleggende konsepter:<\/p>\n<ul>\n<li><strong>Chart Repo<\/strong> \u2014 en beskrivelse og en rekke parametere som kan anvendes for manifestet ditt.\u00a0<\/li>\n<li><strong>Konfigurasjon<\/strong> \u2014 det vil si verdier som vil bli brukt (tekst, numeriske verdier osv.).<\/li>\n<li><strong>Release<\/strong> samler sammen to \u00f8verste komponenter, og sammen blir de til en Release. Utgivelser kan versjoneres, noe som oppn\u00e5r organisering av livssyklusen: liten ved installasjon og stor ved oppgradering, nedgradering eller tilbakestilling.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Helm-arkitektur<\/h2>\n<p>\nDiagrammet reflekterer konseptuelt den h\u00f8y-niv\u00e5 arkitekturen til Helm.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/c5cf54890682a3d6ca7a45021b5006a1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa meg minne om at Helm er noe som henger sammen med Kubernetes. Derfor kan vi ikke klare oss uten en Kubernetes-kluster (rektangel). Komponent Kube-apiserver befinner seg p\u00e5 masteren. Uten Helm har vi Kubeconfig. Helm bringer med seg et lite bin\u00e6rt, om man kan si det slik, verkt\u00f8y, Helm CLI, som installeres p\u00e5 datamaskinen, laptopen, mainframen \u2013 hva som helst.<\/p>\n<p>Men det er ikke nok. Helm har en serverkomponent Tiller. Den representerer Helm sine interesser inne i klusteret, det er en applikasjon inne i Kubernetes-klusteret, akkurat som alle andre.<\/p>\n<p>Den neste komponenten, Chart Repo, er et repository med charts. Det finnes et offisielt repository, og det kan v\u00e6re et privat repository fra et selskap eller prosjekt.<\/p>\n<h3>Interaksjon<\/h3>\n<p>\nLa oss se p\u00e5 hvordan komponentene i arkitekturen samhandler n\u00e5r vi \u00f8nsker \u00e5 installere en applikasjon ved hjelp av Helm.<\/p>\n<ul>\n<li>Vi sier <code>Helm install<\/code>, henvender oss til repository (Chart Repo) og f\u00e5r Helm-chartet.<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>Helm-verkt\u00f8yet (Helm CLI) interagerer med Kubeconfig for \u00e5 finne ut hvilket cluster det skal kontakte.\u00a0<\/li>\n<li>N\u00e5r vi har f\u00e5tt denne informasjonen, kontakter verkt\u00f8yet Tiller, som befinner seg i klusteret v\u00e5rt, allerede som en applikasjon.\u00a0<\/li>\n<li>Tiller kontakter Kube-apiserver for \u00e5 utf\u00f8re handlinger i Kubernetes og opprette objekter (tjenester, pods, replikaer, hemmeligheter osv.).<\/li>\n<\/ul>\n<p>\nDeretter vil vi komplisere diagrammet for \u00e5 se angrepsvektorene som hele Helm-arkitekturen kan utsettes for. Og s\u00e5 vil vi fors\u00f8ke \u00e5 beskytte det.<\/p>\n<h3>Angrepsvektor<\/h3>\n<p>\nDet f\u00f8rste potensielt svake stedet \u2014 <strong>privilegert API<\/strong>&#8212;<strong>bruker<\/strong>Som i schemaen er det en hacker som har f\u00e5tt admin tilgang til Helm CLI.<\/p>\n<p><strong>En ikke-privileger API-bruker<\/strong> kan ogs\u00e5 utgj\u00f8re en trussel hvis han befinner seg i n\u00e6rheten. En slik bruker vil ha en annen kontekst, for eksempel kan han v\u00e6re begrenset til ett namespace i klyngens Kubeconfig-innstillinger.<\/p>\n<p>Den mest interessante angrepsvinkelen kan v\u00e6re en prosess som kj\u00f8rer i klyngen, et sted n\u00e6r Tiller, og kan kontakte det. Dette kan v\u00e6re en webserver eller mikrotjeneste som ser nettverksmilj\u00f8et i klyngen.<\/p>\n<p>Et eksotisk, men voksende angrepsalternativ er relatert til Chart Repo. Et chart laget av en illojal forfatter kan inneholde usikre ressurser, og du vil utf\u00f8re det i god tro. Eller han kan bytte ut chartet du laster ned fra det offisielle depotet, og for eksempel opprette ressurser i form av policyer og eskalere sin egen tilgang.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/2828046feb9ba8413a1b0e8741b4c354.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa oss pr\u00f8ve \u00e5 forsvare oss mot angrep fra alle disse fire sidene og forst\u00e5 hvor det er problemer med Helm-arkitekturen, og hvor det eventuelt ikke er det.<\/p>\n<p>Vi vil forst\u00f8rre diagrammet, legge til flere elementer, men opprettholde alle grunnleggende komponenter.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/4110898e79619b8546408c668c48da0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHelm CLI kommuniserer med Chart Repo, interagerer med Kubeconfig, og oppgaver blir sendt til klyngen til komponenten Tiller.<\/p>\n<p>Tiller er representert av to objekter:<\/p>\n<ul>\n<li>Tiller-deploy svc, som eksponerer en form for tjeneste;<\/li>\n<li>Tiller-deploy pod (i diagrammet i enkelt eksemplar i ett replika), der all belastning kj\u00f8rer, og som kommuniserer med klyngen.<\/li>\n<\/ul>\n<p>\nUlike protokoller og skjematikker brukes for interaksjon. P\u00e5 sikkerhetsmessig grunnlag er vi s\u00e6rlig interessert i:<\/p>\n<ul>\n<li>Mekanismen som Helm CLI bruker for \u00e5 kontakte chart repo: hvilken protokoll, om autentisering finnes og hva som kan gj\u00f8res med dette.<\/li>\n<li>Protokollen som Helm CLI benytter for \u00e5 kommunisere med Tiller via kubectl. Dette er en RPC-server installert inne i klyngen.<\/li>\n<li>Selve Tiller er tilgjengelig for mikrotjenester som befinner seg i klyngen, og interagerer med Kube-apiserver.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/19e7e085567f3bbb49746e6402926bd6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa oss diskutere alle disse retningene i rekkef\u00f8lge.<\/p>\n<h2>RBAC<\/h2>\n<p><\/p>\n<blockquote><p>Det er meningsl\u00f8st \u00e5 snakke om sikkerheten til Helm eller en annen tjeneste inne i klyngen hvis RBAC ikke er aktivert.<\/p><\/blockquote>\n<p>\nDet kan virke som en ikke s\u00e5 ny anbefaling, men jeg er sikker p\u00e5 at mange fortsatt ikke har aktivert RBAC selv i produksjon, fordi det er mye arbeid og mye som m\u00e5 konfigureres. Likevel oppfordrer jeg til \u00e5 gj\u00f8re det.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/37ee8aeb2b331b75ea5569c0b114a756.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/rbac.dev\/\">https:\/\/rbac.dev\/<\/a><\/noindex> \u2014 en advokatnettsted for RBAC. Det er samlet en rekke interessante materialer der som kan hjelpe med \u00e5 sette opp RBAC, viser hvorfor det er bra, og hvordan man i det hele tatt kan leve med det i produksjon.<\/p>\n<p>Jeg skal fors\u00f8ke \u00e5 forklare hvordan Tiller og RBAC fungerer. Tiller kj\u00f8rer inne i klyngen under en eller annen tjenestekonto. Vanligvis, hvis RBAC ikke er konfigurert, vil dette v\u00e6re superbrukeren. I standardkonfigurasjonen vil Tiller v\u00e6re administrator. Nettopp derfor sier mange at Tiller er en SSH-tunnel til klyngen din. Det er faktisk slik, s\u00e5 man kan bruke en separat spesialisert tjenestekonto i stedet for Default Service Account i diagrammet over.<\/p>\n<p>N\u00e5r du initialiserer Helm, installerer det for f\u00f8rste gang p\u00e5 serveren, kan du spesifisere tjenestekontoen ved hjelp av <code>--service-account<\/code>. Dette lar deg bruke en bruker med det minimum n\u00f8dvendige rettighetssettet. Du m\u00e5 imidlertid opprette en slik \u00abgirland\u00bb: Rolle og RolleBinding.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/ec805cde756495cfd5c480ac40739c43.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDessverre vil ikke Helm gj\u00f8re dette for deg. Du eller administratoren for Kubernetes-klyngen din m\u00e5 p\u00e5 forh\u00e5nd forberede et sett med Rolle, RolleBinding for tjenestekontoen, for \u00e5 overlevere til Helm.<\/p>\n<p>Det oppst\u00e5r et sp\u00f8rsm\u00e5l \u2014 hva er forskjellen mellom Rolle og ClusterRole? Forskjellen er at ClusterRole gjelder for alle namespaces, i motsetning til vanlige Rolle og RolleBinding, som bare fungerer for en spesialisert namespace. Man kan konfigurere policyer b\u00e5de for hele klyngen og alle namespaces, samt personlig for hver enkelt namespace.<\/p>\n<p>Det er verdt \u00e5 nevne at RBAC l\u00f8ser et annet stort problem. Mange klager over at Helm dessverre ikke er multitenancy (st\u00f8tter ikke flere leietakere). Hvis flere team bruker klyngen og bruker Helm, er det i prinsippet umulig \u00e5 konfigurere policyer og begrense tilgangen deres innenfor denne klyngen, fordi det er en viss tjenestekonto som Helm kj\u00f8rer under, og den oppretter alle ressurser i klyngen under den, noe som noen ganger er sv\u00e6rt upraktisk. Dette er faktisk sant \u2014 b\u00e5de som den bin\u00e6re filen og som prosessen, <strong>Helm Tiller har ikke begrep om multitenancy<\/strong>.<\/p>\n<p>Men det finnes en flott m\u00e5te \u00e5 kj\u00f8re Tiller i klyngen flere ganger p\u00e5. Det er ingen problemer med dette, Tiller kan startes i hver namespace. Dermed kan du dra nytte av RBAC, Kubeconfig som kontekst, og begrense tilgangen til spesifikk Helm.<\/p>\n<p>Det vil se slik ut.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/eae922c7b5e1422fb51667364ed79e0a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFor example, there are two Kubeconfigs with contexts for different teams (two namespaces): the X Team for the developers and the admin cluster. The admin cluster has its own broad Tiller located in the Kube-system namespace, corresponding to an advanced service account. There is a separate namespace for the developers, who will be able to deploy their services into a special namespace.<\/p>\n<p>This is a workable approach; Tiller isn\u2019t so resource-hungry that it would significantly impact your budget. It\u2019s one of the quick solutions.<\/p>\n<blockquote><p>Feel free to configure Tiller separately and provide a Kubeconfig with context for the team, for a specific developer, or for the environment: Dev, Staging, Production (it's unlikely everything will be on one cluster, however, that can be done).<\/p><\/blockquote>\n<p>\nContinuing our story, let\u2019s switch from RBAC and talk about ConfigMaps.<\/p>\n<h3>ConfigMaps<\/h3>\n<p>\nHelm uses ConfigMaps as a data storage. When we discussed architecture, there was no database where information about releases, configurations, rollbacks, etc., was stored. ConfigMaps are used for this purpose.<\/p>\n<p>The main problem with ConfigMaps is well known\u2014they are inherently insecure as they <strong>cannot store sensitive data<\/strong>. This refers to everything that should not escape the service, such as passwords. The most native way for Helm now is to shift from using ConfigMaps to secrets.<\/p>\n<p>This is done very simply. You override the Tiller configuration and specify that the storage will be secrets. Then for each deployment, you will receive not a ConfigMap, but a secret.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/7fd12bfbed5c6c8111a5126c2ab9f853.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nYou might argue that secrets as a concept are strange and not very secure. However, it is essential to understand that it is the Kubernetes developers who handle this. Since version 1.10, which is quite a while ago, there has been the option, at least in public clouds, to connect the proper storage for secrets. The team is currently working on granting access to secrets even more effectively, to specific pods or other entities.<\/p>\n<blockquote><p>Storage Helm is better switched to secrets, and those should be secured centrally.<\/p><\/blockquote>\n<p>\nOf course, there will still be <strong>a data storage limit of 1 MB<\/strong>Helm bruker her etcd som et distribuert lager for ConfigMaps. De mente at dette var en passende databit for replikasjoner osv. Det er en interessant diskusjon om dette p\u00e5 Reddit, jeg anbefaler \u00e5 finne denne underholdende lesningen til helgen eller lese et sammendrag. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/issues\/1413\">here<\/a><\/noindex>.<\/p>\n<h3>Chart Repos<\/h3>\n<p>\nCharts er s\u00e6rlig s\u00e5rbare og kan bli en kilde til \u00abMan in the middle\u00bb, spesielt hvis standardl\u00f8sninger benyttes. Det refereres f\u00f8rst og fremst til de repositoriene som er tilgjengelige over HTTP.<\/p>\n<blockquote><p>Definitivt, man b\u00f8r tilby Helm Repo over HTTPS \u2014 det er det beste alternativet og koster ikke mye.<\/p><\/blockquote>\n<p>\nPay attention to <strong>mekanismen for signering av charts<\/strong>. Teknologien er ufattelig enkel. Det er det samme som brukes p\u00e5 GitHub, med vanlig PGP-maskineri med offentlige og private n\u00f8kler. Sett det opp, s\u00e5 vil du v\u00e6re trygg med de n\u00f8dvendige n\u00f8klene og signere alt, slik at det virkelig er ditt chart.<\/p>\n<p>I tillegg, <strong>Helm-klienten st\u00f8tter TLS<\/strong> (ikke i betydning HTTP fra serverens side, men gjensidig TLS). Du kan bruke server- og klientn\u00f8kler for \u00e5 kommunisere. Jeg m\u00e5 v\u00e6re \u00e6rlig, jeg bruker ikke denne mekanismen p\u00e5 grunn av min aversjon mot gjensidige sertifikater. I prinsippet, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/chartmuseum\">chartmuseum<\/a><\/noindex> \u2014 det prim\u00e6re verkt\u00f8yet for \u00e5 tilby Helm Repo for Helm 2 \u2014 st\u00f8tter ogs\u00e5 basic auth. Basic auth kan brukes hvis det er mer praktisk og sikkert.<\/p>\n<p>Det finnes ogs\u00e5 en plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hayorov\/helm-gcs\">helm-gcs<\/a><\/noindex>, som gj\u00f8r det mulig \u00e5 plassere Chart Repos i Google Cloud Storage. Dette er ganske praktisk, fungerer utmerket og er ganske sikkert fordi alle de beskrevne mekanismene blir h\u00e5ndtert.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/6a72bfd96c7eb0e2fdd7bcbf128e6433.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHvis man aktiverer HTTPS eller TLS, bruker mTLS, og legger til basic auth for \u00e5 redusere risikoene ytterligere, vil man f\u00e5 en sikker kommunikasjonskanal mellom Helm CLI og Chart Repo.<\/p>\n<h3>gRPC API<\/h3>\n<p>\nNeste steg er veldig viktig \u2014 sikre Tiller, som er plassert i klyngen og som, p\u00e5 den ene siden, er serveren, men p\u00e5 den andre siden ogs\u00e5 henvender seg til andre komponenter og pr\u00f8ver \u00e5 late som om den er noen andre.<\/p>\n<p>Som jeg allerede har nevnt, Tiller er en tjeneste som tilbyr gRPC; Helm-klienten henvender seg til den via gRPC. Som standard er TLS selvf\u00f8lgelig sl\u00e5tt av. Hvorfor dette er gjort er et diskusjonstema, jeg mener det forenkler oppsettet i starten.<\/p>\n<blockquote><p>For produksjon og til og med for staging anbefaler jeg \u00e5 aktivere TLS p\u00e5 gRPC.<\/p><\/blockquote>\n<p>\nEtter mitt syn, i motsetning til mTLS for diagrammer, er dette hensiktsmessig og veldig enkelt \u00e5 gj\u00f8re \u2014 generer PQI-infrastrukturen, opprett et sertifikat, start Tiller, og overf\u00f8r sertifikatet under initialiseringen. Etter dette kan du utf\u00f8re alle Helm-kommandoene ved \u00e5 presentere det genererte sertifikatet og den private n\u00f8kkelen.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/ed55b9a465ed1278b272c52c90b2b345.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDermed vil du beskytte deg mot alle foresp\u00f8rslene til Tiller utenfor klyngen.<\/p>\n<p>S\u00e5 vi har sikret tilkoblingskanalen til Tiller, allerede diskutert RBAC og justert rettighetene til Kubernetes apiserver, og redusert domenet som det kan samhandle med.<\/p>\n<h2>Sikret Helm<\/h2>\n<p>\nLa oss se p\u00e5 det endelige diagrammet. Dette er den samme arkitekturen med de samme pilene.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/6672e254ad93b917f57794e1619a572e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlle forbindelser kan n\u00e5 trygt tegnes i gr\u00f8nt:<\/p>\n<ul>\n<li>for Chart Repo bruker vi TLS eller mTLS og basisautentisering;<\/li>\n<li>mTLS for Tiller, som er konfigurert som en gRPC-tjeneste med TLS, ved bruk av sertifikater;<\/li>\n<li>i klyngen brukes en spesialtjenestekonto med Rolle og RolleBinding.\u00a0<\/li>\n<\/ul>\n<p>\nVi har merkbart sikret klyngen, men noen kloke personer har sagt:<\/p>\n<blockquote><p>\u00abDet eneste helt sikre l\u00f8sningen er en avstengt datamaskin som st\u00e5r i en betongboks, beskyttet av soldater\u00bb.<\/p><\/blockquote>\n<p>\nDet finnes ulike m\u00e5ter \u00e5 manipulere data og finne nye angrepsvektorer. Jeg er imidlertid sikker p\u00e5 at disse anbefalingene vil bidra til \u00e5 implementere et grunnleggende industrielt sikkerhetsstandard.<\/p>\n<h2>Bonus<\/h2>\n<p>\nDenne delen er ikke direkte relatert til sikkerhet, men vil ogs\u00e5 v\u00e6re nyttig. Jeg vil vise noen interessante ting som ikke mange vet om. For eksempel, hvordan man s\u00f8ker etter diagrammer \u2014 b\u00e5de offisielle og uoffisielle.<\/p>\n<p>I depotet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\">github.com\/helm\/charts<\/a><\/noindex> n\u00e5 er det omtrent 300 diagrammer og to str\u00f8mmer: stable og incubator. De som bidrar, vet hvor vanskelig det er \u00e5 g\u00e5 fra incubator til stable, og hvor lett det er \u00e5 falle ut av stable. Men dette er ikke det beste verkt\u00f8yet for \u00e5 s\u00f8ke etter diagrammer for Prometheus og alt annet du liker, av en enkel grunn \u2014 det er ikke en portal som gj\u00f8r det enkelt \u00e5 s\u00f8ke etter pakker.<\/p>\n<p>Men det finnes en tjeneste <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.helm.sh\/\">hub.helm.sh<\/a><\/noindex>, som gj\u00f8r det mye enklere \u00e5 finne diagrammer. Det viktigste er at det er mye flere eksterne depot tilgjengelig, med nesten 800 diagrammer. I tillegg kan du koble til ditt eget depot hvis du av en eller annen grunn ikke \u00f8nsker \u00e5 sende diagrammene dine til stable.<\/p>\n<p>Pr\u00f8v hub.helm.sh og la oss utvikle det sammen. Denne tjenesten er under Helm-prosjektet, og du kan bidra til UI-en hvis du er frontend-utvikler og \u00f8nsker \u00e5 forbedre utseendet.<\/p>\n<p>Jeg vil ogs\u00e5 p\u00e5peke <strong>Open Service Broker API-integrasjon<\/strong>. Det h\u00f8res tungvint og uforst\u00e5elig ut, men det l\u00f8ser problemer som alle st\u00e5r overfor. Jeg skal forklare det med et enkelt eksempel.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/3aeb7e0781e50a79b518f1056873f73a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet finnes et Kubernetes-kluster, hvor vi \u00f8nsker \u00e5 kj\u00f8re en klassisk applikasjon \u2014 WordPress. Vanligvis kreves det en database for full funksjonalitet. Det finnes mange forskjellige l\u00f8sninger; for eksempel kan man sette opp sin egen stateful-tjeneste. Dette er ikke s\u00e5 praktisk, men mange gj\u00f8r det.<\/p>\n<p>Andre, slik som vi i Chainstack, bruker administrerte databaser, som MySQL eller PostgreSQL, for serverne. Derfor befinner databasene v\u00e5re seg et eller annet sted i skyen.<\/p>\n<p>Men det oppst\u00e5r et problem: vi m\u00e5 koble tjenesten v\u00e5r til databasen, opprette en database-flavor, overf\u00f8re legitimasjon og p\u00e5 en eller annen m\u00e5te h\u00e5ndtere den. Alt dette gj\u00f8res vanligvis manuelt av en systemadministrator eller utvikler. Og det er ikke noe problem n\u00e5r applikasjonene er f\u00e5. N\u00e5r de er mange, trengs det en kombinasjon. Denne kombinasjonen eksisterer \u2014 det er Service Broker. Den lar deg bruke en spesialplugin til klusteret i offentlig sky og bestille ressurser fra leverand\u00f8ren gjennom Broker, som om det var et API. For dette kan man bruke native verkt\u00f8y fra Kubernetes.<\/p>\n<p>Det er veldig enkelt. Man kan for eksempel foresp\u00f8rre Managed MySQL i Azure med grunnleggende niv\u00e5 (dette kan tilpasses). Ved hjelp av Azure API-en vil databasen bli opprettet og klargjort for bruk. Du trenger ikke \u00e5 blande deg inn i det; det pluginet har ansvar for det. For eksempel vil OSBA (Azure-pluginet) returnere legitimasjon til tjenesten, og dette vil bli overf\u00f8rt til Helm. Du vil kunne bruke WordPress med sky-MySQL, helt uten \u00e5 h\u00e5ndtere administrerte databaser og ikke bekymre deg for stateful-tjenester internt.<\/p>\n<blockquote><p>Man kan si at Helm fungerer som limet som p\u00e5 den ene siden gj\u00f8r det mulig \u00e5 distribuere tjenester, og p\u00e5 den andre siden \u00e5 konsumere ressurser fra sky-leverand\u00f8rer.<\/p><\/blockquote>\n<p>\nMan kan skrive sin egen plugin og bruke hele denne historien on-premise. Da vil du bare ha din egen plugin til bedrifts-sky-leverand\u00f8ren. Jeg anbefaler \u00e5 pr\u00f8ve tiln\u00e6rmingen, spesielt hvis du har stor skala og \u00f8nsker \u00e5 raskt sette opp dev-, staging- eller hele infrastrukturen for en funksjon. Dette vil forenkle hverdagen for drifts- eller DevOps-teamet ditt.<\/p>\n<p>En annen oppdagelse som jeg allerede har nevnt \u2014 er <strong>pluginen helm-gcs<\/strong>, som lar deg bruke Google-buckets (objektlager) for \u00e5 lagre Helm-diagrammer.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/30888c4f9b5dba14b87ba1e29e0ebed7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDu trenger bare fire kommandoer for \u00e5 begynne \u00e5 bruke det:<\/p>\n<ol>\n<li>installer plugin-en;<\/li>\n<li>initier det;<\/li>\n<li>angi stien til bucketen som ligger i GCP;<\/li>\n<li>publisere diagrammer p\u00e5 vanlig m\u00e5te.<\/li>\n<\/ol>\n<p>\nDet fine med det er at den native metoden for GCP-godkjenning vil bli brukt. Du kan bruke en servicekonto, utviklerkonto \u2013 hva som helst. Dette er veldig praktisk og kostnadsfritt i drift. Hvis du, som jeg, fremmer en opsless-filosofi, vil dette v\u00e6re veldig praktisk, spesielt for sm\u00e5 team.<\/p>\n<h2>Alternativer<\/h2>\n<p>\nHelm er ikke den eneste l\u00f8sningen for tjenesteforvaltning. Det er mange sp\u00f8rsm\u00e5l om det, kanskje derfor kom den tredje versjonen s\u00e5 raskt. Selvf\u00f8lgelig finnes det alternativer.<\/p>\n<p>Dette kan v\u00e6re s\u00e5 vel spesialiserte l\u00f8sninger som Ksonnet eller Metaparticle. Du kan bruke dine klassiske infrastrukturverkt\u00f8y (Ansible, Terraform, Chef osv.) til de samme form\u00e5lene jeg nevnte.<\/p>\n<p>Til slutt er det l\u00f8sningen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\">Operator Framework<\/a><\/noindex>, hvis popularitet vokser.<\/p>\n<blockquote><p>Operator Framework er det viktigste alternativet til Helm som man b\u00f8r vurdere.<\/p><\/blockquote>\n<p>\nDet er mer nativt for CNCF og Kubernetes, <strong>men terskelen for innf\u00f8ring er mye h\u00f8yere<\/strong>, man m\u00e5 programmere mer og beskrive manifestene mindre.<\/p>\n<p>Det finnes forskjellige addons, som Draft, Scaffold. De gj\u00f8r livet mye lettere, for eksempel for utviklere forenkler de syklusen med \u00e5 sende og kj\u00f8re Helm for distribusjon av testmilj\u00f8er. Jeg vil kalle dem mulighetsutvidere.<\/p>\n<p>Her er en illustrativ grafikk om hvor alt er plassert.<\/p>\n<p><img decoding=\"async\" alt=\"Helm Security\" src=\"\/wp-content\/uploads\/2019\/08\/81a8236c975d5e1649acaaa7989c27ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e5 den horisontale aksen er ditt personlige kontrollniv\u00e5 over det som skjer, p\u00e5 den vertikale aksen er Kubernetes' native-niv\u00e5. Helm versjon 2 ligger et sted i midten. I versjon 3 er det ikke enormt, men kontrollen og det native-niv\u00e5et er forbedret. Ksonnet-l\u00f8sningene er faktisk fortsatt underlegen selv Helm 2. Men det er verdt \u00e5 se p\u00e5 dem for \u00e5 vite hva annet som finnes i denne verden. Selvf\u00f8lgelig vil konfigurasjonsmanageren din v\u00e6re under kontrollen din, men den er absolutt ikke nativ for Kubernetes.<\/p>\n<p>Operator Framework er helt nativ for Kubernetes og gj\u00f8r det mulig \u00e5 h\u00e5ndtere det mye mer elegant og grundig (men husk p\u00e5 inntjeningsniv\u00e5et). Dette er mer egnet for spesialiserte applikasjoner og forvaltning av dem, snarere enn en masseprodusent for innpakking av et stort antall applikasjoner ved hjelp av Helm.<\/p>\n<p>Utvidelsene forbedrer bare kontrollen litt, kompletterer arbeidsflyten eller kutter hj\u00f8rner p\u00e5 CI\/CD-pipeline.<\/p>\n<h2>Fremtiden til Helm<\/h2>\n<p>\nDen gode nyheten er at Helm 3 n\u00e5 er tilgjengelig. Alpha-versjonen av Helm 3.0.0-alpha.2 er allerede lansert, og du kan pr\u00f8ve den. Den er ganske stabil, men funksjonaliteten er fortsatt begrenset.<\/p>\n<p>Hvorfor trenger vi Helm 3? F\u00f8rst og fremst handler det om <strong>fjerning av Tiller<\/strong>, som en komponent. Dette er, som du allerede forst\u00e5r, et stort skritt fremover, fordi det forenkler sikkerhetsarkitekturen.<\/p>\n<p>Da Helm 2 ble utviklet, som var p\u00e5 tiden med Kubernetes 1.8 eller tidligere, var mange konsepter umodne. For eksempel implementeres n\u00e5 konseptet CRD aktivt, og Helm vil <strong>bruke CRD<\/strong>, for \u00e5 lagre strukturer. Det vil bli mulig \u00e5 bruke bare klienten og ikke ha en serverdel. Dermed kan du bruke native Kubernetes-kommandoer for \u00e5 jobbe med strukturer og ressurser. Dette er et stort skritt fremover.<\/p>\n<p>Det vil komme <strong>st\u00f8tte for native OCI-repositorier<\/strong> (Open Container Initiative). Dette er et stort initiativ, og Helm er f\u00f8rst og fremst interessert i \u00e5 plassere sine diagrammer. Det g\u00e5r s\u00e5 langt at for eksempel Docker Hub st\u00f8tter mange OCI-standarder. Jeg spekulerer ikke, men kanskje klassiske Docker-repositorie-leverand\u00f8rer vil begynne \u00e5 gi deg mulighet til \u00e5 plassere dine Helm-diagrammer.<\/p>\n<p>En kontroversiell sak for meg er <strong>st\u00f8tten for Lua<\/strong>, som templating-motor for skripting. Jeg er ikke s\u00e6rlig fan av Lua, men dette vil v\u00e6re et helt valgfritt alternativ. Jeg har sjekket dette tre ganger \u2014 bruken av Lua vil ikke v\u00e6re obligatorisk. Derfor, de som \u00f8nsker \u00e5 bruke Lua, kan gj\u00f8re det; de som liker Go \u2014 bli med i v\u00e5r store leir og bruk go-tmpl til dette.<\/p>\n<p>Endelig, det jeg virkelig har savnet, er <strong>fremkomsten av skjema og validering av datatyper<\/strong>. Det vil ikke lenger v\u00e6re problemer med int eller string, du trenger ikke \u00e5 sette null i doble anf\u00f8rselstegn. Det vil komme en JSON-skjema som lar deg eksplisitt beskrive dette for verdier.<\/p>\n<p>Det vil bli kraftig omarbeidet <strong>hendelsesstyrt modell<\/strong>. Den er allerede konseptuelt beskrevet. Sjekk Helm 3-tr\u00e5den, s\u00e5 vil du se hvor mye som har blitt lagt til av hendelser, hooks og annet som i stor grad forenkler og p\u00e5 den andre siden gir mer kontroll over distribusjonsprosesser og reaksjoner p\u00e5 dem.<\/p>\n<p>Helm 3 vil v\u00e6re enklere, tryggere og mer interessant ikke fordi vi ikke liker Helm 2, men fordi Kubernetes blir mer avansert. Dermed kan Helm benytte seg av Kubernetes' utviklinger og lage utmerkede administratorer for Kubernetes.<\/p>\n<blockquote><p>En annen god nyhet er at den <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\">DevOpsConf<\/a><\/noindex> Alexander Khayev vil fortelle <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/abstracts\/5564\">kan containere v\u00e6re sikre?<\/a><\/noindex> La oss minne om at konferansen for integrering av utviklings-, test- og driftprosesser finner sted i Moskva <strong>30. september og 1. oktober<\/strong>. Fram til 20. august kan du fortsatt <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=dc2019-moscow\">gi en presentasjon<\/a><\/noindex> og dele din erfaring med \u00e5 l\u00f8se <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/articles\/917\">et av mange<\/a><\/noindex> problemer med DevOps-tiln\u00e6rmingen.<\/p>\n<p>F\u00f8lg med p\u00e5 konferansens milep\u00e6ler og nyheter i <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/bN_0E1\">nyhetsbrevet<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/DevOpsConfChannel\">telegram-kanalen<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/462665\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji); \u0437\u0430\u043c\u043e\u043a \u2014 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c; \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u043a \u2014 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0436\u0435 \u0434\u0435\u043b\u0435, \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0436\u0435\u0447\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043f\u043e\u043b\u043e\u043d \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c Helm \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27661,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36918","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji);.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/bezopasnost-helm\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c Helm | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji);.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/bezopasnost-helm\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:14:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:14:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sikkerhet i Helm | ProHoster","description":"Essensen av historien om den mest popul\u00e6re pakkeh\u00e5ndtereren for Kubernetes kunne blitt illustrert med emoji: en boks - det er Helm (det mest passende som finnes i den siste Emoji-utgivelsen);.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/bezopasnost-helm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c Helm | ProHoster","og:description":"\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji);.","og:url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/bezopasnost-helm","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:14:43+00:00","article:modified_time":"2019-10-31T19:14:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36918","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 05:19:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:36:25","updated":"2026-01-22 05:19:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/36918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=36918"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/36918\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media\/27661"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=36918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=36918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=36918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}