<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Appendices on</title><link>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/</link><description>Recent content in Appendices on</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/index.xml" rel="self" type="application/rss+xml"/><item><title>Integrating Cloud Protect with PPC (Protegrity Provisioned Cluster)</title><link>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/install_with_ppc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/install_with_ppc/</guid><description>&lt;p>

 




	






 






 &lt;p>This guide describes how to configure the Protegrity Policy Agent and Log Forwarder to connect to a Protegrity Provisioned Cluster (PPC), highlighting the differences from connecting to ESA.&lt;/p>
&lt;h2 id="key-differences-ppc-vs-esa">Key Differences: PPC vs ESA&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Feature&lt;/th>
 &lt;th>ESA 10.2&lt;/th>
 &lt;th>PPC (this guide)&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Datastore Key Fingerprint&lt;/td>
 &lt;td>Optional/Recommended&lt;/td>
 &lt;td>&lt;strong>Required&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>CA Certificate on Agent&lt;/td>
 &lt;td>Optional/Recommended&lt;/td>
 &lt;td>&lt;strong>Optional/Recommended&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>CA Certificate on Log Forwarder&lt;/td>
 &lt;td>Optional/Recommended&lt;/td>
 &lt;td>&lt;strong>Not supported&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Client Certificate Authentication from Log Forwarder&lt;/td>
 &lt;td>Optional/Recommended&lt;/td>
 &lt;td>&lt;strong>Not supported&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IP Address&lt;/td>
 &lt;td>ESA IP address&lt;/td>
 &lt;td>&lt;strong>PPC address&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;ul>
&lt;li>Access to PPC and required credentials.&lt;/li>
&lt;li>Tools: &lt;code>curl&lt;/code>, &lt;code>kubectl&lt;/code> installed.&lt;/li>
&lt;/ul>
&lt;h2 id="policy-agent-setup-with-ppc">Policy Agent Setup with PPC&lt;/h2>


&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>

 When connecting to PPC, the Policy Agent &lt;strong>requires&lt;/strong> the &lt;code>PTY_DATASTORE_KEY fingerprint&lt;/code>. For ESA 10.2, the fingerprint is optional but recommended. See &lt;a href="https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/installation/agent/">Policy Agent Installation&lt;/a> for general setup steps.

&lt;/div>

&lt;p>Follow these instructions as a guide for understanding specific inputs for Policy Agent integrating with PPC:&lt;/p></description></item><item><title>Configuring Regular Expression to Extract Policy Username</title><link>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/usename_regex_configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/usename_regex_configuration/</guid><description>&lt;h2 id="configuring-regular-expression-to-extract-policy-username">Configuring Regular Expression to Extract Policy Username&lt;/h2>
&lt;p>Cloud Protect Function exposes USERNAME_REGEX configuration to allow extraction of policy username from user in the request.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>USERNAME_REGEX Function Environment configuration&lt;/strong>&lt;/p>
&lt;p>The USERNAME_REGEX environment variable can be set to contain regular expression with one capturing group. This group is used to extract the username. Examples below show different regular expression values and the resulting policy user.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;table>&lt;thead>&lt;tr>&lt;th>
&lt;p>USERNAME_REGEX&lt;/p>
&lt;/th>&lt;th>
&lt;p>User in the request&lt;/p></description></item><item><title>Sample Snowflake External Functions for Protegrity Integration</title><link>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/ssf_app_sample_sf_external_fn_a/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/ssf_app_sample_sf_external_fn_a/</guid><description>&lt;h2 id="appendix-a-sample-snowflake-external-function">Appendix A. Sample Snowflake External Function&lt;/h2>
&lt;table>&lt;tbody>&lt;tr>&lt;td colspan="3">
&lt;p>&lt;strong>Method: Tokenization&lt;/strong>&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td colspan="3">
&lt;p>&lt;strong>Type: ALPHA&lt;/strong>&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td colspan="3">
&lt;p> &lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td>
&lt;p>&lt;strong>Snowflake Data Types&lt;/strong>&lt;/p>
&lt;/td>&lt;td>
&lt;p>&lt;strong>Snowflake Max Size&lt;/strong>&lt;/p>
&lt;/td>&lt;td>
&lt;p>&lt;strong>Protegrity Max Size&lt;/strong>&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td>
&lt;p>VARCHAR&lt;/p>
&lt;/td>&lt;td rowspan="4">
&lt;p>16M (16,777,216 bytes)&lt;/p>
&lt;/td>&lt;td rowspan="4">
&lt;p>4K (4,096 bytes)&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td>
&lt;p>CHAR&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td>
&lt;p>STRING&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td>
&lt;p>TEXT&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td colspan="3">
&lt;p> &lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td colspan="3">
&lt;p>&lt;strong>External Function Sample Definitions:&lt;/strong>&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td colspan="3">
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">CREATE&lt;/span> &lt;span style="color:#000">SECURE&lt;/span> &lt;span style="color:#000">EXTERNAL&lt;/span> &lt;span style="color:#000">FUNCTION&lt;/span> &lt;span style="color:#000">PTY_PROTECT_ALPHA&lt;/span> &lt;span style="color:#000;font-weight:bold">(&lt;/span> &lt;span style="color:#000">val&lt;/span> &lt;span style="color:#000">varchar&lt;/span> &lt;span style="color:#000;font-weight:bold">)&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">RETURNS&lt;/span> &lt;span style="color:#000">varchar&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">NULL&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">IMMUTABLE&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">COMMENT&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#4e9a06">&amp;#39;Protects using an ALPHA data element&amp;#39;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">API_INTEGRATION&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#000">REPLACE_WITH_YOUR_API_INTEGRATION_ID&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">HEADERS&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">(&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#4e9a06">&amp;#39;X-Protegrity-HCoP-Rules&amp;#39;&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#4e9a06">&amp;#39;{&amp;#34;jsonpaths&amp;#34;: [{&amp;#34;op_type&amp;#34;:&amp;#34;PROTECT&amp;#34;,&amp;#34;data_element&amp;#34;:&amp;#34;TOK_ALPHA&amp;#34;}]}&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">CONTEXT_HEADERS&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#000;font-weight:bold">(&lt;/span> &lt;span style="color:#000">current_user&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span> &lt;span style="color:#000">current_timestamp&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span> &lt;span style="color:#000">current_account&lt;/span> &lt;span style="color:#000;font-weight:bold">)&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">AS&lt;/span> &lt;span style="color:#4e9a06">&amp;#39;&amp;lt;API Gateway URL&amp;gt;/api/Protect&amp;#39;&lt;/span>&lt;span style="color:#000;font-weight:bold">;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/td>&lt;/tr>&lt;tr>&lt;td colspan="3">
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">CREATE&lt;/span> &lt;span style="color:#000">SECURE&lt;/span> &lt;span style="color:#000">EXTERNAL&lt;/span> &lt;span style="color:#000">FUNCTION&lt;/span> &lt;span style="color:#000">PTY_UNPROTECT_ALPHA&lt;/span> &lt;span style="color:#000;font-weight:bold">(&lt;/span> &lt;span style="color:#000">val&lt;/span> &lt;span style="color:#000">varchar&lt;/span> &lt;span style="color:#000;font-weight:bold">)&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">RETURNS&lt;/span> &lt;span style="color:#000">varchar&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">NULL&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">IMMUTABLE&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">COMMENT&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#4e9a06">&amp;#39;Unprotects using an ALPHA data element&amp;#39;&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">API_INTEGRATION&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#000">REPLACE_WITH_YOUR_API_INTEGRATION_ID&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">HEADERS&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">(&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#4e9a06">&amp;#39;X-Protegrity-HCoP-Rules&amp;#39;&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#4e9a06">&amp;#39;{&amp;#34;jsonpaths&amp;#34;:[{&amp;#34;op_type&amp;#34;:&amp;#34;UNPROTECT&amp;#34;,&amp;#34;data_element&amp;#34;:&amp;#34;TOK_ALPHA&amp;#34;}]}&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">)&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">CONTEXT_HEADERS&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#000;font-weight:bold">(&lt;/span> &lt;span style="color:#000">current_user&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span> &lt;span style="color:#000">current_timestamp&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span> &lt;span style="color:#000">current_account&lt;/span> &lt;span style="color:#000;font-weight:bold">)&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">AS&lt;/span> &lt;span style="color:#4e9a06">&amp;#39;&amp;lt;API Gateway URL&amp;gt;/api/Protect&amp;#39;&lt;/span>&lt;span style="color:#000;font-weight:bold">;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/td>&lt;/tr>&lt;tr>&lt;td colspan="3">
&lt;p> &lt;/p></description></item><item><title>ARM Template Installation - Required Permissions</title><link>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/arm_template_installation_permission_req/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/arm_template_installation_permission_req/</guid><description>&lt;h2 id="arm-template-installation---required-permissions">ARM Template Installation - Required Permissions&lt;/h2>
&lt;p>Permissions below are required to install Protegrity service using ARM template.&lt;/p>
&lt;p>All permissions in the table must be granted with the Resource group scope.&lt;/p>
&lt;table id="permissions-table">&lt;thead>&lt;tr>&lt;th>
&lt;p>Permissions&lt;/p>
&lt;/th>&lt;th>
&lt;p>Description&lt;/p>
&lt;/th>&lt;th>
&lt;p>Built-In Azure Role&lt;/p>
&lt;/th>&lt;/tr>&lt;/thead>&lt;tbody>&lt;tr>&lt;td>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.Insights/components/read
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.OperationalInsights/workspaces/read
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/td>&lt;td>
&lt;p>Read access to monitoring data and settings&lt;/p>
&lt;/td>&lt;td>
&lt;p>Monitoring Reader&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.Insights/components/write
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.OperationalInsights/workspaces/write
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/td>&lt;td>
&lt;p>Write and manage access to monitoring data and settings&lt;/p>
&lt;/td>&lt;td>
&lt;p>Monitoring Contributor&lt;/p>
&lt;/td>&lt;/tr>&lt;tr>&lt;td>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.Web/serverFarms/write
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.Web/sites/write
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.Web/sites/host/listkeys/action
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.Web/serverFarms/join/action
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Microsoft.Web/register/action
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/td>&lt;td>
&lt;p>Write and manage access to web apps&lt;/p></description></item><item><title>Associating ESA Data Store With Cloud Protect Agent</title><link>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/agent_ip_address_config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/cloud-protect/4.0.0/docs/azure/snowflake/appendix/agent_ip_address_config/</guid><description>&lt;h2 id="associating-esa-data-store-with-cloud-protect-agent">Associating ESA Data Store With Cloud Protect Agent&lt;/h2>
&lt;p>ESA controls which policy is deployed to protector using concept of data store. A data store may contain a list of IP addresses identifying servers allowed to pull the policy associated with that specific data store. Data store may also be defined as default data store, which allows any server to pull the policy, provided it does not belong to any other data stores. Node registration occurs when the policy server (in this case the policy agent) makes a policy request to ESA, where the agent&amp;rsquo;s IP address is identified by ESA.&lt;/p></description></item></channel></rss>