{"id":1545,"date":"2023-09-01T07:50:07","date_gmt":"2023-09-01T07:50:07","guid":{"rendered":"https:\/\/imesh.ai\/blog\/?p=1545"},"modified":"2023-09-05T05:16:56","modified_gmt":"2023-09-05T05:16:56","slug":"implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio","status":"publish","type":"post","link":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/","title":{"rendered":"Implementing stronger RBAC and Multitenancy in Kubernetes using Istio"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Background of multi tenancy&nbsp;<\/h2>\n\n\n\n<p>DevOps and solution architects often implement RBAC and multitenancy in their Kubernetes infrastructure to achieve isolation of workspace and allow authorized persons to access resources with least privilege resources.&nbsp;<\/p>\n\n\n\n<p>The implementation of RBAC and multitenancy can be very simple or complicated, and this depends of the following parameters:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Application- microservice based architecture<\/li>\n\n\n\n<li>Deployment speed &amp; frequency- High or low<\/li>\n\n\n\n<li>Architecture- Multi-cloud cloud\/Hybrid cloud\/ On-prem&nbsp;<\/li>\n\n\n\n<li>Environment- Dev\/stage\/prod<\/li>\n\n\n\n<li>Teams\/Groups- Developers, DevOps, SREs, Marketing\/Pre-sales<\/li>\n\n\n\n<li>Users- application developer, full stack developer, web-API engineer<\/li>\n\n\n\n<li>Budget in hand<\/li>\n\n\n\n<li>Goal- Simple administration vs granular security&nbsp;<\/li>\n\n\n\n<li>Geography team- Multi-geo<\/li>\n<\/ol>\n\n\n\n<p>In this article we will discuss how to implement RBAC and multitenancy (simple or complicated) in Kubernetes using open source <a href=\"https:\/\/imesh.ai\/blog\/what-is-istio\/\">Istio service mesh<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enabling RBAC for K8s service accounts and users using K8s resources<\/h2>\n\n\n\n<p>We have discussed at length about <a href=\"https:\/\/imesh.ai\/blog\/what-is-kubernetes-rbac-and-why-do-you-need-it\/\">how to enable Kubernetes RBAC<\/a> using various resources such as- <strong><em>Role<\/em><\/strong><em>, <\/em><strong><em>ClusterRole<\/em><\/strong><em>, <\/em><strong><em>RoleBinding<\/em><\/strong><em>, <\/em><strong><em>ClusterRoleBinding<\/em><\/strong>. The idea of using all the Kubernetes RBAC resources is to create various actions that can be taken on namespaces or resources and then allocate (or bind) the actions to users and service accounts. To restrict IPs i.e. ingress and egress traffic, network policy resources (refer the image below) in Kubernetes can be used.\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>apiVersion: networking.k8s.io\/v1\r\nkind: NetworkPolicy\r\nmetadata:\r\n  name: banking-network-policy\r\n  namespace: dev-namespace\r\nspec:\r\n  podSelector:\r\n    matchLabels:\r\n      role: db\r\n  policyTypes:\r\n    - Ingress\r\n    - Egress\r\n  ingress:\r\n    - from:\r\n        - ipBlock:\r\n            cidr: 172.17.0.0\/16\r\n            except:\r\n              - 172.17.1.0\/24\r\n  egress:\r\n    - to:\r\n        - ipBlock:\r\n            cidr: 10.0.0.0\/24\r\n      ports:\r\n        - protocol: TCP\r\n          port: 5978<\/code><\/pre>\n\n\n\n<p>However, there can be certain limitations of using K8s RBAC.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Limitations of using Kubernetes RBAC for workloads and services<\/h3>\n\n\n\n<p>You see, the Kubernetes RBAC is good for implementing users&#8217; access to certain resources by applying checks on API servers. It is very good when you want to allow developers to perform experiments on a cluster or a namespace or testers to deploy services and test in testing workspaces.&nbsp;<\/p>\n\n\n\n<p>But what about authorization of workloads or services? How to implement granular controls to workload authorization in production environments. Some of the limitations are:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>K8s RBAC is challenging to implement for granular usage. Imagine you want to restrict accounts to use few resources in an endpoint (a service in a namespace) or want to control REST operations on the pods, K8s RBAC will not be sufficient in this case.&nbsp;<\/li>\n\n\n\n<li>Difficult to create RBAC policies in Roles and RoleBinding. For e.g. in a large organization there can be multiple clusters and namespaces. There can be 100+ services running in all these namespaces and is handled by various application teams. And many of these services need to talk to each other. DevOps may end up creating too many Roles, RoleBinding, ClusterRoles, and ClusterRoleBinding objects.&nbsp;<\/li>\n\n\n\n<li>Similarly in large set up updating and deleting an RBAC policy in the Kubernetes resource can also be daunting.&nbsp;<\/li>\n\n\n\n<li>For ingress and egress traffic (or east-west and north-south traffic) one has to create additional Network policies along with Kubernetes RBAC.&nbsp;<\/li>\n<\/ol>\n\n\n\n<p>To make the RBAC implementation simple, Istio can be used.&nbsp;<\/p>\n\n\n\n<p>Note: It is not <strong>Kubernetes RBAC vs Istio<\/strong>, but <strong>Kubernetes RBAC and Istio<\/strong> for better manageability and implementation of RBAC and multitenancy for users and production workloads.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Achieving RBAC multitenancy with Istio<\/h2>\n\n\n\n<p>In case you are using Istio for simplifying your network, security or observability you can use Istio service mesh for implementing RBAC and multitenancy in your Kuberntes workloads and for your teams.&nbsp;<\/p>\n\n\n\n<p>Note: The approach of Kubernetes RBAC is user-first i.e. defining what user can do what operations. But Istio uses the resource-first approach i.e. it dictates who can do what on a particular service (and its resources). The advantage of Istio\u2019s approach is manageability of the RBAC and multitenancy rules (we will see later in this article) with its <a href=\"https:\/\/istio.io\/latest\/docs\/reference\/config\/security\/authorization-policy\/\">Authorization policy<\/a>.<\/p>\n\n\n\n<p>There can be multiple easy-to-complicated scenarios where Istio can be used to implement RBAC:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Single cluster-multiple namespace<\/li>\n\n\n\n<li>Multicluster-multiple namespaces<\/li>\n\n\n\n<li>Multicloud- multiple cluster (multiple namespace)<\/li>\n<\/ol>\n\n\n\n<p>We will look into each scenario and understand how Istio can be used for RBAC and multi-tenancy.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario1: RBAC for single cluster-multiple namespace using Istio<\/h3>\n\n\n\n<p>Let us take an example where there are multiple namespaces for various non-prod environments which have to be shared among developers and Devops. In the image below, we have dev-namspace and staging-namepsace where a banking application with multiple services are deployed. And each namespace will be allowed the editing rights to certain team members. The banking application contains 3 services- profile, transactions and account-summary- they talk to each other and share data.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1501\" height=\"676\" src=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio.png\" alt=\"RBAC for single cluster-multiple namespace using Istio\" class=\"wp-image-1546\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio.png 1501w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio-300x135.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio-1024x461.png 1024w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio-768x346.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio-400x180.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio-800x360.png 800w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-single-cluster-multiple-namespace-using-Istio-1160x522.png 1160w\" sizes=\"(max-width: 1501px) 100vw, 1501px\" \/><\/figure>\n<\/div>\n\n\n<p>One can achieve isolation of workspace and allow least privilege access to team members using Kubernetes RBAC- i.e. through defining Role and RoleBinding, and workloads authorization can be implemented using Istio Authorization policy ( sample below):<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>apiVersion: security.istio.io\/v1beta1\r\nkind: AuthorizationPolicy\r\nmetadata:\r\n  name: restrict-access-policy  namespace: stage-ns\r\nspec:\r\n  selector:\r\n    matchLabels:\r\n      app: account-summary\r\n  action: ALLOW\r\n  rules:\r\n  - from:\r\n    - source:\r\n        principals: &#91;\"cluster.local\/ns\/stage-ns\/sa\/profile\",\"cluster.local\/ns\/stage-ns\/sa\/transaction\" ]\r\n    - source:\r\n        namespaces: &#91;\"dev-namespace\"]\r\n    to:\r\n    - operation:\r\n        methods: &#91;\"GET\",\"PUT\",\"POST\"]<\/code><\/pre>\n\n\n\n<p>The best part is that as the network and security is abstracted from the application using Istio service mesh, it is easy to implement and modify authorization policies or rules. The above Authorization policy in Istio is implemented to side-car proxies which will validate any REST API request to any workloads.&nbsp;<\/p>\n\n\n\n<p>In case you have an end-point for a microservices and there are many resources to be used; for e.g. <strong>account-summary <\/strong>microservice has 2 resources i.e. <strong>current-year <\/strong>and <strong>previous-year <\/strong>for getting the account summary for current year or\u00a0 previous year. In that case, you can use path (or URI) in the Istio Authorization policy. Check the sample Istio Authorization policy below.\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>apiVersion: security.istio.io\/v1beta1\nkind: AuthorizationPolicy\nmetadata:\n\u00a0 name: account-summary\n\u00a0 namespace: staging-ns\nspec:\n\u00a0 action: ALLOW\n\u00a0 rules:\n\u00a0 - from:\n\u00a0 \u00a0 - source:\n\u00a0 \u00a0 \u00a0 \u00a0 principals: &#91;\"cluster.local\/ns\/stage-ns\/sa\/profile\"]\n\u00a0 \u00a0 - source:\n\u00a0 \u00a0 \u00a0 \u00a0 namespaces: &#91;\"staging-ns\"]\n\u00a0 \u00a0 to:\n\u00a0 \u00a0 - operation:\n\u00a0 \u00a0 \u00a0 \u00a0 methods: &#91;\"GET\"]\n\u00a0 \u00a0 \u00a0 \u00a0 paths: &#91;\"\/previous-year\", \"\/current-year\"]<\/code><\/pre>\n\n\n\n<p>Note, this is just a few use-cases, you can apply any RBAC use-cases to services using Istio. The Istio Authorization policy provides various actions such as ALLOW,&nbsp; DENY, CUSTOM that can be applied to any workloads for the REST calls. Read more about <a href=\"https:\/\/istio.io\/latest\/docs\/reference\/config\/security\/authorization-policy\/\">Istio Authorization policy<\/a>.<\/p>\n\n\n\n<p>You can also watch the video on how to set up RBAC and multitenancy using Istio service mesh.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Multitenancy and RBAC with Istio | Kubernetes | Multicluster setup | Demo | IMESH\" width=\"1130\" height=\"636\" src=\"https:\/\/www.youtube.com\/embed\/OwNfdYeTe-o?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario2: RBAC for multiple cluster with multiple namespace using Istio<\/h3>\n\n\n\n<p>Let&#8217;s say there is another scenario where the production clusters are different from the development or staging clusters. In those cases too Istio can be used for practicing RBAC. However, it depends on the implementation of the Istio. For e.g. if you have resource constraints you can configure one Istio control plane in one cluster and then manage all the workloads in all the cluster using the Istio control plane. You can use an east-west gateway to <a href=\"https:\/\/imesh.ai\/blog\/how-to-implement-istio-in-multicloud-and-multicluster\/\">implement multiple cloud Istio<\/a>.<\/p>\n\n\n\n<p>For user management you can use Kubernetes RBAC, and for workload authorization you can use Istio Authorization policy.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"447\" src=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio-1024x447.png\" alt=\"RBAC for multiple cluster with multiple namespace using Istio\" class=\"wp-image-1547\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio-1024x447.png 1024w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio-300x131.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio-768x336.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio-400x175.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio-800x350.png 800w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio-1160x507.png 1160w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-multiple-cluster-with-multiple-namespace-using-Istio.png 1474w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario3- RBAC for Multicloud and multi cluster application using Istio<\/h3>\n\n\n\n<p>Similarly there can be an application whose services are stored in multiple clusters for high-availability. In the image below, a passive version of the transaction service is deployed into multiple clouds (another Kubernetes cluster) to ensure HA.&nbsp; Again RBAC can be implemented using Istio authorization policy. But it depends on the budget and level of logical partitioning and control one wants to achieve. Either one or multiple Istio can be implemented to control all the Kubernetes cluster across multiple clouds and RBAC and multi tenancy can be implemented accordingly.&nbsp;<\/p>\n\n\n\n<p>Note: For large teams with different projects or products, separate Istio can be implemented and let there be separate owners for each Istio infra. In this way there will be siloes authorization policies based on the product requirements.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"364\" src=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio-1024x364.png\" alt=\"RBAC for Multicloud and multi cluster application using Istio\" class=\"wp-image-1548\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio-1024x364.png 1024w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio-300x107.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio-768x273.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio-400x142.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio-800x285.png 800w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio-1160x413.png 1160w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/RBAC-for-Multicloud-and-multi-cluster-application-using-Istio.png 1242w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Background of multi tenancy&nbsp; DevOps and solution architects often implement RBAC and<span class=\"excerpt-more\"><\/span><\/p>\n","protected":false},"author":4,"featured_media":1549,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[53,57,68,67,69],"class_list":["post-1545","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-security","tag-istio","tag-kubernetes","tag-multitenancy","tag-rbac","tag-security"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Implementing RBAC &amp; Multitenancy in Kubernetes using Istio<\/title>\n<meta name=\"description\" content=\"Learn how to use Istio service mesh on top of K8s auth to implement stronger RBAC and multi-tenancy for Kubernetes workloads.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Implementing RBAC &amp; Multitenancy in Kubernetes using Istio\" \/>\n<meta property=\"og:description\" content=\"Learn how to use Istio service mesh on top of K8s auth to implement stronger RBAC and multi-tenancy for Kubernetes workloads.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/\" \/>\n<meta property=\"og:site_name\" content=\"IMESH\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-01T07:50:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-05T05:16:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Debasree Panda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Debasree Panda\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/\"},\"author\":{\"name\":\"Debasree Panda\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/b881b4a1c269b625dc91af0896f8036f\"},\"headline\":\"Implementing stronger RBAC and Multitenancy in Kubernetes using Istio\",\"datePublished\":\"2023-09-01T07:50:07+00:00\",\"dateModified\":\"2023-09-05T05:16:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/\"},\"wordCount\":1210,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png\",\"keywords\":[\"istio\",\"kubernetes\",\"multitenancy\",\"RBAC\",\"security\"],\"articleSection\":[\"Security\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/\",\"url\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/\",\"name\":\"Implementing RBAC & Multitenancy in Kubernetes using Istio\",\"isPartOf\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png\",\"datePublished\":\"2023-09-01T07:50:07+00:00\",\"dateModified\":\"2023-09-05T05:16:56+00:00\",\"description\":\"Learn how to use Istio service mesh on top of K8s auth to implement stronger RBAC and multi-tenancy for Kubernetes workloads.\",\"breadcrumb\":{\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage\",\"url\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png\",\"contentUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png\",\"width\":1280,\"height\":720,\"caption\":\"Implementing stronger RBAC and Multitenancy in Kubernetes using Istio\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/imesh.ai\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Implementing stronger RBAC and Multitenancy in Kubernetes using Istio\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/imesh.ai\/blog\/#website\",\"url\":\"https:\/\/imesh.ai\/blog\/\",\"name\":\"IMESH Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/imesh.ai\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/imesh.ai\/blog\/#organization\",\"name\":\"IMESH\",\"url\":\"https:\/\/imesh.ai\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg\",\"contentUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg\",\"width\":2560,\"height\":1665,\"caption\":\"IMESH\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/imeshai\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/b881b4a1c269b625dc91af0896f8036f\",\"name\":\"Debasree Panda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1e02eb18435bad3283b1f03e1bf22de74113e9760ab00e90c41e539df347cd3d?s=96&d=wp_user_avatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1e02eb18435bad3283b1f03e1bf22de74113e9760ab00e90c41e539df347cd3d?s=96&d=wp_user_avatar&r=g\",\"caption\":\"Debasree Panda\"},\"description\":\"Debasree is the CEO of IMESH. He understands customer pain points in cloud and microservice architecture. Previously, he led product marketing and market research teams at Digitate and OpsMx, where he had created a multi-million dollar sales pipeline. He has helped open-source solution providers- Tetrate, OtterTune, and Devtron- design GTM from scratch and achieve product-led growth. He firmly believes serendipity happens to diligent and righteous people.\",\"sameAs\":[\"https:\/\/imesh.ai\"],\"url\":\"https:\/\/imesh.ai\/blog\/author\/debasreeimesh-ai\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Implementing RBAC & Multitenancy in Kubernetes using Istio","description":"Learn how to use Istio service mesh on top of K8s auth to implement stronger RBAC and multi-tenancy for Kubernetes workloads.","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:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/","og_locale":"en_US","og_type":"article","og_title":"Implementing RBAC & Multitenancy in Kubernetes using Istio","og_description":"Learn how to use Istio service mesh on top of K8s auth to implement stronger RBAC and multi-tenancy for Kubernetes workloads.","og_url":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/","og_site_name":"IMESH","article_published_time":"2023-09-01T07:50:07+00:00","article_modified_time":"2023-09-05T05:16:56+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png","type":"image\/png"}],"author":"Debasree Panda","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Debasree Panda","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#article","isPartOf":{"@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/"},"author":{"name":"Debasree Panda","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/b881b4a1c269b625dc91af0896f8036f"},"headline":"Implementing stronger RBAC and Multitenancy in Kubernetes using Istio","datePublished":"2023-09-01T07:50:07+00:00","dateModified":"2023-09-05T05:16:56+00:00","mainEntityOfPage":{"@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/"},"wordCount":1210,"commentCount":0,"publisher":{"@id":"https:\/\/imesh.ai\/blog\/#organization"},"image":{"@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage"},"thumbnailUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png","keywords":["istio","kubernetes","multitenancy","RBAC","security"],"articleSection":["Security"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/","url":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/","name":"Implementing RBAC & Multitenancy in Kubernetes using Istio","isPartOf":{"@id":"https:\/\/imesh.ai\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage"},"image":{"@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage"},"thumbnailUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png","datePublished":"2023-09-01T07:50:07+00:00","dateModified":"2023-09-05T05:16:56+00:00","description":"Learn how to use Istio service mesh on top of K8s auth to implement stronger RBAC and multi-tenancy for Kubernetes workloads.","breadcrumb":{"@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#primaryimage","url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png","contentUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png","width":1280,"height":720,"caption":"Implementing stronger RBAC and Multitenancy in Kubernetes using Istio"},{"@type":"BreadcrumbList","@id":"https:\/\/imesh.ai\/blog\/implementing-stronger-rbac-and-multitenancy-in-kubernetes-using-istio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/imesh.ai\/blog\/"},{"@type":"ListItem","position":2,"name":"Implementing stronger RBAC and Multitenancy in Kubernetes using Istio"}]},{"@type":"WebSite","@id":"https:\/\/imesh.ai\/blog\/#website","url":"https:\/\/imesh.ai\/blog\/","name":"IMESH Blog","description":"","publisher":{"@id":"https:\/\/imesh.ai\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imesh.ai\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imesh.ai\/blog\/#organization","name":"IMESH","url":"https:\/\/imesh.ai\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg","contentUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg","width":2560,"height":1665,"caption":"IMESH"},"image":{"@id":"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/imeshai"]},{"@type":"Person","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/b881b4a1c269b625dc91af0896f8036f","name":"Debasree Panda","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1e02eb18435bad3283b1f03e1bf22de74113e9760ab00e90c41e539df347cd3d?s=96&d=wp_user_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1e02eb18435bad3283b1f03e1bf22de74113e9760ab00e90c41e539df347cd3d?s=96&d=wp_user_avatar&r=g","caption":"Debasree Panda"},"description":"Debasree is the CEO of IMESH. He understands customer pain points in cloud and microservice architecture. Previously, he led product marketing and market research teams at Digitate and OpsMx, where he had created a multi-million dollar sales pipeline. He has helped open-source solution providers- Tetrate, OtterTune, and Devtron- design GTM from scratch and achieve product-led growth. He firmly believes serendipity happens to diligent and righteous people.","sameAs":["https:\/\/imesh.ai"],"url":"https:\/\/imesh.ai\/blog\/author\/debasreeimesh-ai\/"}]}},"jetpack_featured_media_url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/09\/Implementing-stronger-RBAC-and-Multitenancy-in-Kubernetes-using-Istio.png","_links":{"self":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/comments?post=1545"}],"version-history":[{"count":1,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1545\/revisions"}],"predecessor-version":[{"id":1550,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1545\/revisions\/1550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/media\/1549"}],"wp:attachment":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/media?parent=1545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/categories?post=1545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/tags?post=1545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}