{"id":73977,"date":"2018-08-31T07:00:28","date_gmt":"2018-08-31T14:00:28","guid":{"rendered":""},"modified":"2025-06-30T02:51:06","modified_gmt":"2025-06-30T09:51:06","slug":"securing-kubernetes-workloads-hybrid-cloud-aporeto","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/","title":{"rendered":"Securing Kubernetes workloads in hybrid settings with Aporeto"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\" id=\"centralized-visibility-and-security-for-applications-distributed-on-azure-kubernetes-service-aks-and-private-clouds\">Centralized visibility and security for applications distributed on Azure Kubernetes Service (AKS) and private clouds<\/h4>\n\n\n\n<p>Azure Kubernetes Service (AKS) makes it simple to deploy a managed Kubernetes cluster in Azure. &nbsp;AKS reduces the complexity and operational overhead of managing Kubernetes by offloading much of that responsibility to Azure and handling critical tasks like health monitoring and maintenance.&nbsp; However, your operational needs may require you to deploy your Kubernetes cluster in a hybrid setting.&nbsp; For instance, your data services may be running in your private cloud while application logic services could be running in AKS.<\/p>\n\n\n\n<p>Without the proper toolset and configuration, maintaining visibility and security for your distributed environment can be hard to configure and maintain.&nbsp; In this blog, we focus on providing centralized visibility and monitoring for these types of distributed workloads in a manner that is easy to deploy and manage.&nbsp; By following step 5 in the blog below, you will learn how to easily enforce network and service layer access policies in your AKS cluster with Aporeto.&nbsp; You may extend these policies in a hybrid environment without any network configuration or code modification.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"about-aporeto\">About Aporeto<\/h4>\n\n\n\n<p>Aporeto is a Zero Trust security solution for microservices, containers and cloud.&nbsp; Fundamental to Aporeto\u2019s approach is the principle that everything in an application is accessible to everyone and could be compromised at any time.&nbsp; Aporeto uses vulnerability data, identity context, threat monitoring and behavior analysis to build and enforce authentication, authorization and encryption policies for applications.&nbsp; With Aporeto, enterprises implement a uniform security policy decoupled from the underlying infrastructure, enabling workload isolation, API access control and application identity management across public, private or hybrid cloud.<\/p>\n\n\n\n<p>Because Aporeto transparently binds to application components to provide them with identity, the result is security independent from infrastructure and network and reduction of complexity at any scale on any cloud.<\/p>\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-1024x463.webp\" alt=\"Aporeto Graphic\" class=\"wp-image-73976 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-1024x463.webp 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-300x136.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-768x347.webp 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-1536x694.webp 1536w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-330x149.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-800x362.webp 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-400x181.webp 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.webp 1600w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic-1024x463.webp\"><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"how-aporeto-works\">How&nbsp;Aporeto works<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pick an application and visualize it;<\/li>\n\n\n\n<li>Generate and simulate security policy;<\/li>\n\n\n\n<li>Enforce the security policy.<\/li>\n<\/ul>\n\n\n\n<p>You can visualize the application of your choice by deploying Aporeto as an AKS DaemonSet (see #A in diagram above).&nbsp; If you control the virtual machines on which your application component run, you may also deploy Aporeto as a Docker container or a userland process (see #B in diagram above).<\/p>\n\n\n\n<p>Aporeto auto-generates application security policy by ingesting Kubernetes Network Policies and RBAC.&nbsp; You also have the option of leveraging your application dependency graph that Aporeto creates to describe the application\u2019s behavioral intent as policies.&nbsp; In every case, you may audit and edit auto-generated policies and inject human wisdom when necessary.<\/p>\n\n\n\n<p>Once you have policies, you may simulate their enforcement at runtime to evaluate the effects of your security policies without interrupting operations. When satisfied that your security policies are solid, you may lockdown your application and protected it with a Zero Trust approach.<\/p>\n\n\n\n<p>Because Aporeto untethers application security from the network and infrastructure, one key benefit of Aporeto\u2019s approach for protecting your containers, microservices and cloud applications is that you can have a consistent security approach even in a hybrid or multi-cloud setting.&nbsp; As you gain experience with Aporeto in a single cluster setting, you will quickly realize how easy it is to have a consistent security posture in multi-cluster and multi-cloud settings without any infrastructure or operational complexity.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"five-steps-to-enforce-network-and-service-layer-access-policies-in-aks-clusters\">Five Steps to Enforce Network and Service Layer Access Policies in AKS Clusters<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"step-1-prepare-environment\">Step 1: Prepare environment<\/h5>\n\n\n\n<p>You will need the following binaries installed in your path.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>az (see\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/install-azure-cli?view=azure-cli-latest\">https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/install-azure-cli?view=azure-cli-latest<\/a>)<\/li>\n\n\n\n<li>kubectl (see\u00a0<a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/<\/a>)<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"step-2-setup-aporeto\">Step 2: Setup Aporeto<\/h5>\n\n\n\n<p>Using a browser login&nbsp;select the desired namespace where the cluster will be placed. The select and expand \u201cSystem\u201d and then select \u201cKubernetes Clusters\u201d. Click on the \u201c+\u201d icon (top right). Give the cluster the name \u201caks1\u201d and leave all defaults as they are. Click on create. This will create the cluster and cause a file with the name aks1.tar.gz (assuming you named the cluster aks1) to be downloaded to your browser download directory. Take note of this file as we will need it later.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"step-3-create-aks-kubernetes-cluster-on-aks\">Step 3: Create AKS (Kubernetes Cluster on AKS)<\/h5>\n\n\n\n<p>If you have not already done so, log into Azure with the following Powershell or Bash commands:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\naz login\n<\/pre><\/div>\n\n\n<p>Then create a working directory with the following Powershell or Bash commands:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nmkdir -p aks; cd aks\n<\/pre><\/div>\n\n\n<p>Move the file downloaded in the previous step into the working directory.<\/p>\n\n\n\n<p>Create the Kubernetes cluster on AKS with the following Powershell or Bash commands.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\naz group create --name aporeto_lab --location eastus\naz aks create --resource-group aporeto_lab --name aks1 --node-count 2 --generate-ssh-keys\naz aks get-credentials --resource-group aporeto_lab --name aks1 -f kube.cfg\n<\/pre><\/div>\n\n\n<p>Set the kubectl config file in the environment.<\/p>\n\n\n\n<p><em>With PowerShell<\/em><\/p>\n\n\n\n<p>$loc = Get-Location Set-Variable -Name &#8220;KUBECONFIG&#8221; -Value &#8220;$loc\/kube.cfg&#8221;<\/p>\n\n\n\n<p><em>With Bash<\/em><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nexport KUBECONFIG=$PWD\/kube.cfg\n<\/pre><\/div>\n\n\n<p>and then verify that the nodes are operational with the following Powershell or Bash commands:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nkubectl --kubeconfig kube.cfg get nodes\n<\/pre><\/div>\n\n\n<p>you should see something like this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n->kubectl get nodes\nNAME                       STATUS    ROLES     AGE       VERSION\naks-nodepool1-82983338-0   Ready     agent     3m        v1.9.6\naks-nodepool1-82983338-1   Ready     agent     3m        v1.9.6\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\" id=\"step-4-join-the-aks-cluster-to-aporeto\">Step 4: Join the AKS Cluster to Aporeto<\/h5>\n\n\n\n<p>Extract the contents of the file aks1.tar.gz and create the kubernetes resources with the bash commands (or Powershell equivalent. This may require a utility such as 7zip).<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nmkdir -p kube_aporeto\ntar xfv aks1.tar.gz -C kube_aporeto\nkubectl create -f kube_aporeto\n<\/pre><\/div>\n\n\n<p>then check the status with the command:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nkubectl get pods -n kube-system\n<\/pre><\/div>\n\n\n<p>you should see something like:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n->kubectl get pods -n kube-system\nNAME                                    READY     STATUS    RESTARTS   AGE\naporeto-enforcer-fkf46                  1\/1       Running   0          23s\naporeto-enforcer-v4k5r                  1\/1       Running   0          23s\naporeto-kubesquall-h4m5d                1\/1       Running   0          21s\nazureproxy-79c5db744-t2654              1\/1       Running   2          4m\nheapster-55f855b47-drbb2                2\/2       Running   0          3m\nkube-dns-v20-7c556f89c5-mcg6z           3\/3       Running   0          4m\nkube-dns-v20-7c556f89c5-xhts7           3\/3       Running   0          4m\nkube-proxy-h5rqq                        1\/1       Running   0          4m\nkube-proxy-s7rkq                        1\/1       Running   0          4m\nkube-svc-redirect-92tvv                 1\/1       Running   0          4m\nkube-svc-redirect-h2dmp                 1\/1       Running   0          4m\nkubernetes-dashboard-546f987686-7gzln   1\/1       Running   2          4m\ntunnelfront-66fd996c74-dlpdm            1\/1       Running   0          4m\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\" id=\"step-5-roll-up-your-sleeves-and-dig-in-with-a-demo-app\">Step 5: Roll up your sleeves and dig in with a demo app<\/h5>\n\n\n\n<p>Clone the github repo&nbsp;<a href=\"https:\/\/github.com\/aporeto-inc\/apowine.git\">https:\/\/github.com\/aporeto-inc\/apowine.git<\/a>&nbsp;and then follow the instructions in the README.md file.&nbsp; By following this tutorial, you will learn how to enforce network and service layer access policies in your AKS cluster.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"enjoy-your-aks-cluster-with-aporeto-security\">Enjoy your AKS Cluster with Aporeto Security!<\/h4>\n\n\n\n<p>Now that you have connected your AKS Kubernetes cluster to Aporeto, you can visualize it in real time and on historical bases using the Aporeto UI.&nbsp; You can also connect your private cloud workload to your Aporeto account and view your distributed application\u2019s end-to-end operations centrally.<\/p>\n\n\n\n<p>You can find instructions for connecting non-AKS workloads to Aporeto by perusing the document (click on \u201cSwitch to Accounts\u201d (top right corner user icon, immediate right of the \u201c?\u201d mark icon). As always, you can request support directly in Aporeto\u2019s Console or via&nbsp;<a href=\"https:\/\/www.aporeto.com\/support\/\">this link<\/a>.<\/p>\n\n\n\n<p>Aporeto\u2019s powerful security capabilities unlock the following use cases, among others:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Network segmentation and workload isolation, reducing compliance scope<\/li>\n\n\n\n<li>Protection against malicious application discovery<\/li>\n\n\n\n<li>Transparent encryption without code or network modification<\/li>\n\n\n\n<li>Uniform API access control policy across services in public or private cloud<\/li>\n\n\n\n<li>Continuous vulnerability analysis of container images<\/li>\n\n\n\n<li>Runtime threat detection and protection based on behavioral analysis<\/li>\n<\/ul>\n\n\n\n<p>To learn more, please visit&nbsp;<a href=\"https:\/\/www.aporeto.com\/demo\/\">https:\/\/www.aporeto.com\/demo\/<\/a><\/p>\n\n\n\n<p>Enjoy!<\/p>\n\n\n\n<p>The Aporeto Team<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"questions-or-feedback-let-us-know-in-the-comments-below\"><em>Questions or feedback? Let us know in the comments below.<\/em><\/h5>\n","protected":false},"excerpt":{"rendered":"<p>Centralized visibility and security for applications distributed on Azure Kubernetes Service (AKS) and private clouds Azure Kubernetes Service (AKS) makes it simple to deploy a managed Kubernetes cluster in Azure.<\/p>\n","protected":false},"author":5562,"featured_media":73976,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[308,158,166],"content-type":[],"topic":[2241,2242],"programming-languages":[],"coauthors":[2319],"class_list":["post-73977","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-azure-kubernetes-service","tag-kubernetes","tag-azure","topic-cloud","topic-containers","review-flag-1593580428-734","review-flag-1593580415-931","review-flag-1593580419-521","review-flag-1593580771-946","review-flag-1-1593580432-963","review-flag-2-1593580437-411","review-flag-3-1593580442-169","review-flag-4-1593580448-609","review-flag-5-1593580453-725","review-flag-6-1593580457-852","review-flag-9-1593580473-997","review-flag-alway-1593580310-39"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Securing Kubernetes workloads in hybrid settings with Aporeto<\/title>\n<meta name=\"description\" content=\"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Securing Kubernetes workloads in hybrid settings with Aporeto\" \/>\n<meta property=\"og:description\" content=\"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-31T14:00:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-30T09:51:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"723\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"The Aporeto Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/open.microsoft.com\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic_twitter.png\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"The Aporeto Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/the-aporeto-team\/\",\"@type\":\"Person\",\"@name\":\"The Aporeto Team\"}],\"headline\":\"Securing Kubernetes workloads in hybrid settings with Aporeto\",\"datePublished\":\"2018-08-31T14:00:28+00:00\",\"dateModified\":\"2025-06-30T09:51:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/\"},\"wordCount\":1093,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png\",\"keywords\":[\"Azure Kubernetes Service\",\"Kubernetes\",\"Microsoft Azure\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/\",\"name\":\"Securing Kubernetes workloads in hybrid settings with Aporeto\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png\",\"datePublished\":\"2018-08-31T14:00:28+00:00\",\"dateModified\":\"2025-06-30T09:51:06+00:00\",\"description\":\"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png\",\"width\":1600,\"height\":723,\"caption\":\"a screenshot of a cell phone\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Securing Kubernetes workloads in hybrid settings with Aporeto\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Securing Kubernetes workloads in hybrid settings with Aporeto","description":"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/","og_locale":"en_US","og_type":"article","og_title":"Securing Kubernetes workloads in hybrid settings with Aporeto","og_description":"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2018-08-31T14:00:28+00:00","article_modified_time":"2025-06-30T09:51:06+00:00","og_image":[{"width":1600,"height":723,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png","type":"image\/png"}],"author":"The Aporeto Team","twitter_card":"summary_large_image","twitter_description":"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.","twitter_image":"https:\/\/open.microsoft.com\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic_twitter.png","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"The Aporeto Team","Est. reading time":"5 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/the-aporeto-team\/","@type":"Person","@name":"The Aporeto Team"}],"headline":"Securing Kubernetes workloads in hybrid settings with Aporeto","datePublished":"2018-08-31T14:00:28+00:00","dateModified":"2025-06-30T09:51:06+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/"},"wordCount":1093,"commentCount":0,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png","keywords":["Azure Kubernetes Service","Kubernetes","Microsoft Azure"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/","url":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/","name":"Securing Kubernetes workloads in hybrid settings with Aporeto","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png","datePublished":"2018-08-31T14:00:28+00:00","dateModified":"2025-06-30T09:51:06+00:00","description":"Tutorial by Aporeto: learn how to implement centralized visibility and security for applications distributed on AKS and private clouds.","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2018\/08\/Aporeto_Graphic.png","width":1600,"height":723,"caption":"a screenshot of a cell phone"},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2018\/08\/31\/securing-kubernetes-workloads-hybrid-cloud-aporeto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Securing Kubernetes workloads in hybrid settings with Aporeto"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/73977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=73977"}],"version-history":[{"count":3,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/73977\/revisions"}],"predecessor-version":[{"id":97886,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/73977\/revisions\/97886"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/73976"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=73977"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=73977"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=73977"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=73977"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=73977"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=73977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}