<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Separate multi-tenant log data with management zones in Container platforms</title>
    <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/219537#M1795</link>
    <description>&lt;P&gt;We've made a feature request and we are investigating some new possibilities:&lt;BR /&gt;&lt;A href="https://community.dynatrace.com/t5/Product-ideas/opt-in-logging-using-kubernetes-labels/idi-p/219533" target="_blank"&gt;https://community.dynatrace.com/t5/Product-ideas/opt-in-logging-using-kubernetes-labels/idi-p/219533&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 02 Aug 2023 09:18:06 GMT</pubDate>
    <dc:creator>PeterR</dc:creator>
    <dc:date>2023-08-02T09:18:06Z</dc:date>
    <item>
      <title>Separate multi-tenant log data with management zones</title>
      <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/218201#M1755</link>
      <description>&lt;DIV&gt;&lt;STRONG&gt;Separate log data with management zones&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Currently we separate tenants on our kubernetes platform using management zones.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Each tenant can have multiple namespaces and are prefixes with the tenant name.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;For example tenant1-namespace1, tenant1-namespace2, tenant2-namespace1.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;A tenant represents a proces group that is tied to a management zone, policy and one or more synced (SSO) SCIM Active Directory groups.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;We're using Container groups (Process group naming) to make process group tenant1 with all workloads (tenant1-namespace1, tenant1-namespace2)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Each tenant (dt.entity.process_group_instance) has their own process group (tenant1) and their own management zone (tenant1). &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This works perfectly.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Now we also want to isolate the log data between tenants. So each tenant should only see their own logs.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;The can share data (like logs and dashboards), but primarily they should only see the logs of their own workload and the underlying platform.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;The problem is that it looks like the logviewer doesn't seem to be able to filter on management zones or on dt.entity.process_group_instance or any other field &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;and separate them between tenants/users&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;So the tenant sees all logs of all other tenants on the whole platform, or no logs at all.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;How can we tackle this? &lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Other platforms support this.&amp;nbsp;&lt;SPAN&gt;The method of log ingestion is API, Fluentd or Oneagent itself but this is not really relevant in this case.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;We have plenty of ways to isolate the tenant using fields like dt.entity.process_group_instance or labels in Kubernetes or the payload itself.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;Our approach:&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;U&gt;We now have the following policy for logging on each tenant that looks like this:&lt;/U&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:buckets:read;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:system:read,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;storage:events:read,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;storage:logs:read,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;storage:metrics:read,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;storage:entities:read,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;storage:bizevents:read,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;storage:spans:read;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW environment:roles:viewer WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW environment:roles:logviewer WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;U&gt;What we want is something like this, but that doesn't seem to work:&lt;/U&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:system:read WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:events:read WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:buckets:read WHERE storage:table-name = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:metrics:read WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:entities:read WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:bizevents:read WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW storage:spans:read WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ALLOW environment:roles:viewer WHERE environment:management-zone = "tenant1-mgmtzone";&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;Links&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Logs and events, advantaged mode using Grail&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;A href="https://www.dynatrace.com/support/help/observe-and-explore/logs/log-management-and-analytics/lma-analysis/logs-and-events" target="_blank" rel="noopener"&gt;https://www.dynatrace.com/support/help/observe-and-explore/logs/log-management-and-analytics/lma-analysis/logs-and-events&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 19 Apr 2024 11:12:23 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/218201#M1755</guid>
      <dc:creator>PeterR</dc:creator>
      <dc:date>2024-04-19T11:12:23Z</dc:date>
    </item>
    <item>
      <title>Re: Separate multi-tenant log data with management zones</title>
      <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/218408#M1767</link>
      <description>&lt;P&gt;Hi, its more about data ownership. That the people in one management zone can only read their own data (logdata) regardless of the form of the data. In our case this is json and syslog compatible logging, but that is only important for processing.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jul 2023 15:57:29 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/218408#M1767</guid>
      <dc:creator>PeterR</dc:creator>
      <dc:date>2023-07-18T15:57:29Z</dc:date>
    </item>
    <item>
      <title>Re: Separate multi-tenant log data with management zones</title>
      <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/219537#M1795</link>
      <description>&lt;P&gt;We've made a feature request and we are investigating some new possibilities:&lt;BR /&gt;&lt;A href="https://community.dynatrace.com/t5/Product-ideas/opt-in-logging-using-kubernetes-labels/idi-p/219533" target="_blank"&gt;https://community.dynatrace.com/t5/Product-ideas/opt-in-logging-using-kubernetes-labels/idi-p/219533&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Aug 2023 09:18:06 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/219537#M1795</guid>
      <dc:creator>PeterR</dc:creator>
      <dc:date>2023-08-02T09:18:06Z</dc:date>
    </item>
    <item>
      <title>Re: Separate multi-tenant log data with management zones</title>
      <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/220194#M1804</link>
      <description>&lt;P&gt;Hello PeterR,&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Is this something you are looking for?&amp;nbsp;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="213213123.PNG" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/13474i478A8213DD732855/image-size/large?v=v2&amp;amp;px=999" role="button" title="213213123.PNG" alt="213213123.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jul 2024 09:34:23 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/220194#M1804</guid>
      <dc:creator>Vakho</dc:creator>
      <dc:date>2024-07-29T09:34:23Z</dc:date>
    </item>
    <item>
      <title>Re: Separate multi-tenant log data with management zones</title>
      <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/220239#M1806</link>
      <description>&lt;P&gt;Hi, unfortunately no. In Kubernetes, tenants are separated by data ownership on a application level like namespaces, labels and annotations. Not underlying hosts. Pods and containers share underlying hosts. It's an abstraction layer so to speak. But thanks for your reply.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Aug 2023 08:18:58 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/220239#M1806</guid>
      <dc:creator>PeterR</dc:creator>
      <dc:date>2023-08-09T08:18:58Z</dc:date>
    </item>
    <item>
      <title>Re: Separate multi-tenant log data with management zones</title>
      <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/248245#M2415</link>
      <description>&lt;P&gt;Hello all.&lt;/P&gt;&lt;P&gt;I think this should be a new idea. Filter logs based on Management Zone.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Jun 2024 09:00:43 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/248245#M2415</guid>
      <dc:creator>Theodore_x86</dc:creator>
      <dc:date>2024-06-13T09:00:43Z</dc:date>
    </item>
    <item>
      <title>Re: Separate multi-tenant log data with management zones</title>
      <link>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/252099#M2520</link>
      <description>&lt;P&gt;Hi, We have the following workaround to achieve this.&lt;BR /&gt;It took a long time to figure this out.&lt;BR /&gt;For the record: We use Capsule in Kubernetes to separate teams&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;Step 1:&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Process groups are one of the&lt;STRONG&gt; few elements that supports filtering on Annotation or label&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Create a process group based on annotation/or label.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Example:&lt;/DIV&gt;
&lt;DIV&gt;Process group Rule name:&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Tenant:YOURTEAM&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Process group name format&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {ProcessGroup:DetectedName} Tenant:YOURTEAM&lt;/DIV&gt;
&lt;DIV&gt;Process group Rule:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Process groups on Kubernetes namespace where capsule.clastix.io/tenant equals 'YOURTEAM'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Step 2:&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Create a security context that matches this process group to tag the logs&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Example:&lt;/DIV&gt;
&lt;DIV&gt;Rule name:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;YOURTEAM-context&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Matcher:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;matchesPhrase(dt.process.name, "*Tenant:YOURTEAM")&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Value:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;YOURTEAM&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Step 3:&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Optional:&lt;/DIV&gt;
&lt;DIV&gt;Make a bucket assignment rules to save the DEBUG logs 7 days and all others for 30 days&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Rule-name:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;YOURTEAM-log-storage-7-rule&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Matcher DQL:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;matchesPhrase(dt.kubernetes.cluster.name, "YOURCLUSTER") AND ( matchesValue(loglevel, "DEBUG") OR matchesValue(loglevel, "NONE"))&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Bucket:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;YOUR_TEAM-bucket-log-storage-7&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Rule-name:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;YOURTEAM-log-storage-30-rule&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Matcher DQL:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;matchesPhrase(dt.kubernetes.cluster.name, "YOURCLUSTER") AND ( matchesValue(loglevel, "EMERGENCY") OR matchesValue(loglevel, "ERROR") OR matchesValue(loglevel, "ALERT") OR matchesValue(loglevel, "CRITICAL") OR matchesValue(loglevel, "SEVERE") OR matchesValue(loglevel, "WARN") OR matchesValue(loglevel, "NOTICE") OR matchesValue(loglevel, "INFO"))&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Bucket:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;YOUR_TEAM-bucket-log-storage-30&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Step 4 Testing with DQL&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Now you can query your logs with the following DQL!!! Each log line will have dt.process.name with the name of &amp;lt;process-group&amp;gt;-&lt;SPAN&gt;Tenant:YOURTEAM&lt;/SPAN&gt;.&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;fetch logs //, scanLimitGBytes: 500, samplingRatio: 1000
| sort timestamp desc
| filter matchesValue(dt.security_context, "YOURTEAM")
| filter matchesValue(loglevel, "INFO")&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Step 5 Opt-in logs based on annotation&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Because you have process groups you can now create a Settings/Log Monitoring/Log ingest rule&lt;/DIV&gt;
&lt;DIV&gt;that can import logs based on Kubernetes annotations/labels in combination with namespace wildcards!&lt;/DIV&gt;
&lt;DIV&gt;Create the following rule:&lt;/DIV&gt;
&lt;DIV&gt;Rule name:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; YOURTEAM&lt;/DIV&gt;
&lt;DIV&gt;Condition:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; Condition attribute:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; K8S namespace name is any of:&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; Value:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; YOURTEAM-*&lt;/DIV&gt;
&lt;DIV&gt;Condition:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; Matcher attribute: Process group&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; Value: *Tenant:YOURTEAM&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Step 6 IAM policy&amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;Each team needs to have the following IAM policy, named YOURTEAM-policy. Note that you only need 2 buckets. Security contexts will do the multi-tenancy (YOURTEAM splitting)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Each team needs to have the following IAM policy, named YOURTEAM-policy
ALLOW environment:roles:viewer WHERE environment:management-zone = "YOURTEAM";
ALLOW storage:buckets:read WHERE storage:bucket-name = "YOUR_ORGANISATION_log-storage-7";
ALLOW storage:buckets:read WHERE storage:bucket-name = "YOUR_ORGANISATION_log-storage-30";
ALLOW storage:metrics:read WHERE storage:k8s.namespace.name STARTSWITH "YOURTEAM";
ALLOW storage:logs:read WHERE storage:dt.security_context = "YOURTEAM";
ALLOW platform-management:tenants:write;
ALLOW storage:buckets:read WHERE storage:bucket-name = "default_logs";
ALLOW storage:buckets:read WHERE storage:table-name = "metrics";
ALLOW app-engine:apps:run, app-engine:functions:run;
ALLOW automation:workflows:read, automation:rules:read, automation:calendars:read;
ALLOW document:documents:read, document:documents:write, document:documents:delete, document:environment-shares:read, document:environment-shares:write;
ALLOW document:environment-shares:claim, document:environment-shares:delete, document:direct-shares:read, document:direct-shares:write, document:direct-shares:delete;
ALLOW state:app-states:read, state:app-states:write, state:app-states:delete, state:user-app-states:read;
ALLOW state:user-app-states:write,state:user-app-states:delete, app-settings:objects:read;
ALLOW hub:catalog:read;
ALLOW environment:roles:manage-settings WHERE environment:management-zone = "YOURTEAM";
ALLOW environment:roles:logviewer WHERE environment:management-zone = "YOURTEAM";
ALLOW storage:entities:read;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Step 7 Terraform everything&lt;/STRONG&gt;&lt;BR /&gt;Optional but recommended!! Export these settings for YOURTEAM to terraform code with terraform --export (See Dynatrace docs) and create this for 50+ teams to realize full multitenancy for Kubernetes&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Sep 2024 13:57:10 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Container-platforms/Separate-multi-tenant-log-data-with-management-zones/m-p/252099#M2520</guid>
      <dc:creator>PeterR</dc:creator>
      <dc:date>2024-09-27T13:57:10Z</dc:date>
    </item>
  </channel>
</rss>

