<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Kapil Arora on Medium]]></title>
        <description><![CDATA[Stories by Kapil Arora on Medium]]></description>
        <link>https://medium.com/@kaparora?source=rss-e25bca52f896------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*rKjMUTiAZoyOZAowUJG9MA.jpeg</url>
            <title>Stories by Kapil Arora on Medium</title>
            <link>https://medium.com/@kaparora?source=rss-e25bca52f896------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 26 May 2026 22:36:52 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@kaparora/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Automatic Dynamic Secrets Retrieval in Microsoft Azure VMs with HashiCorp Vault]]></title>
            <link>https://medium.com/hashicorp-engineering/automatic-dynamic-secrets-retrieval-in-microsoft-azure-vms-with-hashicorp-vault-46af556e7cac?source=rss-e25bca52f896------2</link>
            <guid isPermaLink="false">https://medium.com/p/46af556e7cac</guid>
            <category><![CDATA[microsoft-azure]]></category>
            <category><![CDATA[cloud-security]]></category>
            <category><![CDATA[hashicorp-vault]]></category>
            <category><![CDATA[management-secrets]]></category>
            <category><![CDATA[azure]]></category>
            <dc:creator><![CDATA[Kapil Arora]]></dc:creator>
            <pubDate>Thu, 06 Aug 2020 09:16:00 GMT</pubDate>
            <atom:updated>2020-08-06T09:16:00.961Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/810/1*c3cN3LugJ02hrh0CK6HitA.png" /></figure><blockquote>If you already know HashiCorp Vault and Microsoft Azure well and you have some Terraform experience and would like to jump to the code directly, be my guest :) Here is the <a href="https://github.com/kaparora/vault-azure-python-mysql-webapp">GitHub Repo</a>.</blockquote><h3>Introduction</h3><p>Applications running inside Azure VMs need access to various secrets. e.g. API keys, database credentials, certificates, cloud credentials etc. Although traditionally secrets are provided manually in application configuration or environment variables, many new cloud applications store these secrets in Azure KeyVault.</p><p>There are many advantages of using Azure KeyVault, e.g.</p><ul><li>Secrets are decoupled from the application</li><li>Secrets can be managed and revoked centrally and with APIs</li><li>Secrets are saved more securely and can be accessed programmatically</li><li>Secret sprawl can be avoided</li><li>Access keys can be rotated</li></ul><p>Even though Azure KeyVault solves many problems for you, there are still multiple challenges that you need to address to secure your application and automate secret access and retrieval. These are some of the additional challenges you may consider:</p><ul><li>How do you authenticate and provide secrets to applications that don’t use Azure AD?</li><li>How do you integrate legacy applications without code change?</li><li>How do you make your application cloud agnostic?</li><li>How do you rotate database credentials?</li><li>How do you provide credentials in other data-centers and clouds?</li></ul><p>In this blog post we will learn how you can use HashiCorp Vault and Vault Agent to dynamically fetch secrets and configure your application inside an Azure VM without any code change using system managed machine identity, Azure auto-auth and templating powered by Vault Agent. Vault ensures tighter security, end to end automation, and avoids <a href="https://www.hashicorp.com/resources/what-is-secret-sprawl-why-is-it-harmful/">credential sprawl</a>.</p><h3>HashiCorp Vault</h3><p>HashiCorp Vault is an API-driven, cloud-agnostic, secrets management platform. It allows you to safely store and manage sensitive data in hybrid and multi-cloud environments. You can use Vault to generate dynamic short-lived credentials, and encrypt application data on the fly.</p><p>Vault is currently <a href="https://www.hashicorp.com/resources/how-abn-amro-implementing-devsecops-multi-cloud-environment/">trusted</a> <a href="https://monzo.com/blog/we-secured-thousands-of-cassandra-clients-to-keep-monzos-data-safe">by many</a> <a href="https://www.hashicorp.com/resources/hashicorp-executive-summit-financial-services/">established</a> <a href="https://www.hashicorp.com/resources/managing-pci-compliant-architectures-at-scale-with-terraform-and-vault/">financial</a> <a href="https://www.hashicorp.com/resources/managing-pci-compliant-architectures-at-scale-with-terraform-and-vault/">institutions</a> and <a href="https://www.hashicorp.com/resources/adobe-100-trillion-transactions-hashicorp-vault/">large enterprise</a> <a href="https://www.hashicorp.com/resources/running-vault-at-adobe-large-scale/">organizations</a> <a href="https://www.hashicorp.com/resources/how-cisco-operationalizes-vault-multi-platform-enterprise-offering">across the world</a>. You can learn more about it <a href="https://www.vaultproject.io/">here</a>.</p><h3>Vault and Azure Active Directory Identity Management</h3><p>Today we will focus on Vault’s ability to integrate with Azure Active Directory and managed identities and also use this authentication method to access dynamic short-lived secrets for a MySQL database.</p><p>Vault supports a long list of authentication methods apart from Azure Active Directory showcased here and dynamic credentials for a lot many systems and databases apart from the MySQL database used in this blog.</p><p>Hence, this workflow and pattern can be applied to multiple environments with different authentication methods, databases, systems and clouds.</p><h4>Vault Server Installation</h4><p>Vault can be downloaded <a href="https://www.vaultproject.io/downloads">here</a>. Even though Vault can easily be started in Dev mode, for today’s exercise I recommend running it as a service in your Azure VM or VM Scale Sets. I used the following script as part of my <a href="https://github.com/kaparora/vault-azure-python-mysql-webapp">Terraform code</a> to deploy Vault in an Azure VM. The only thing you need to change where required, is the correct URL for downloading Vault and the Azure credentials.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8366e2e367b8da3eb8f3de0a274d3689/href">https://medium.com/media/8366e2e367b8da3eb8f3de0a274d3689/href</a></iframe><p>You can find general Vault installation documentation <a href="https://www.vaultproject.io/docs/install">here</a>.</p><p>For production installations please refer to the <a href="https://learn.hashicorp.com/vault?track=operations#operations">Vault operations</a> section of the Vault learn website.</p><h3>Vault Agent</h3><p><a href="https://www.vaultproject.io/docs/agent">Vault Agent</a> is a client daemon that provides the following features:</p><ul><li><a href="https://www.vaultproject.io/docs/agent/autoauth">Auto-Auth</a> — Automatically authenticate to Vault and manage the token renewal process for locally-retrieved dynamic secrets.</li><li><a href="https://www.vaultproject.io/docs/agent/caching">Caching</a> — Allows client-side caching of responses containing newly created tokens and responses containing leased secrets generated off of these newly created tokens.</li><li><a href="https://www.vaultproject.io/docs/agent/template">Templating</a> — Allows rendering of user supplied templates by Vault Agent, using the token generated by the Auto-Auth step.</li></ul><p>In our setup we will run the Vault Agent inside an Azure VM, use Azure auto-auth method with managed identities to authenticate, and use templating to configure an application with dynamic secrets.</p><h3>Setup</h3><p>Assuming that HashiCorp Vault is already installed, MySQL database and Application VM are already provisioned in your Azure environment, this scenario can be setup as follows:</p><h4>Vault Setup</h4><ol><li>Enable the database secrets engine.</li><li>Configure database secrets engine with MySQL credentials.</li><li>Create a role for the dynamic database credentials with a TTL and user creation statement.</li><li>Define a policy to allow access to the database credentials.</li><li>Enable the Azure auth method.</li><li>Configure the Azure auth method.</li><li>Create an Azure auth role and assign policy created in step 4 and bind it to your subscription and resource group.</li></ol><h4>Azure VM Setup</h4><ol><li>Create Vault Agent configuration.</li><li>Define application configuration template for rendering.</li><li>Install Vault Agent.</li></ol><p>Once both Vault and Vault Agent are setup Vault Agent will automatically fetch the database credentials and render the application configuration based on the template.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uGvUA_xsjzlG0Dk2BtDhZw.gif" /></figure><h3>Vault Setup</h3><p>Let’s take a look at the Vault configuration in more detail.</p><h4>Dynamic Database Credentials for MySQL</h4><ol><li>Enable the database secret engine.</li><li>Configure it with MySQL details and credentials and associate Vault role definitions.</li><li>Rotate root password, this ensures no human or machine has seen the root credentials and Vault is managing credential creation for MySQL now.</li><li>Create roles with creation statement and required TTL.</li><li>Use Vault read command to test if the setup and connection with MySQL is successful.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8821324af9e16663c10b49e35d61edd8/href">https://medium.com/media/8821324af9e16663c10b49e35d61edd8/href</a></iframe><h4>Vault ACL Policy</h4><p>Create a Vault ACL policy that allows access to the MySQL database credentials.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c47a3e975ccd64f8d235ecb2033899ee/href">https://medium.com/media/c47a3e975ccd64f8d235ecb2033899ee/href</a></iframe><h4>Azure Auth Method Setup</h4><ol><li>Enable Vault Azure auth method.</li><li>Configure Azure auth method with your service principal Azure credentials.</li><li>Create a role, associate the policy we create in the previous step to allow access to MySQL database credentials and bind the role to your subscription and resource group.</li></ol><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/1bd91c4aad077a339e62c17d6706fb13/href">https://medium.com/media/1bd91c4aad077a339e62c17d6706fb13/href</a></iframe><h3>Azure VM Setup</h3><p>Let’s take a look at the Azure VM configuration in more detail.</p><p>First of all you have to make sure you have configured your Azure VM to use <a href="https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/qs-configure-cli-windows-vm">system-assigned managed identities</a>.</p><p>Vault binary to run the Agent can be downloaded from <a href="https://releases.hashicorp.com/vault/">here</a>.</p><p>Define a template for your application’s configuration, e.g.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f0ca8f1b9db5fadd52ce64582c7ed77c/href">https://medium.com/media/f0ca8f1b9db5fadd52ce64582c7ed77c/href</a></iframe><p>Create the Vault Agent configuration with Azure auto_auth method, specifying the Azure auth role that we created earlier, path to the template file and destination path where the file should be saved for the application after it is rendered. It is also possible to provide a sink file to write the Vault token in case the application needs to use the token to make Vault API calls.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8f96e103b12754691530ed6f7b6b1eed/href">https://medium.com/media/8f96e103b12754691530ed6f7b6b1eed/href</a></iframe><p>Here is some sample code to configure and start Vault Agent as a service :</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b0a41ae9e9aa110921d5c406a664e02f/href">https://medium.com/media/b0a41ae9e9aa110921d5c406a664e02f/href</a></iframe><p>Once the Vault Agent is successfully configured and started you will see that your application configuration is rendered in the template destination location specified in the Vault Agent configuration.</p><p>That’s it. Now Vault will dynamically update your configuration whenever there is a change in the database credentials.</p><p>This one-time configuration allows you to avoid sprawl or leakage of credentials and use Azure system-assigned managed identities for authentication.</p><h3>Vault Agent Templating</h3><p>As you can see in this example, <a href="https://www.vaultproject.io/docs/agent">Vault Agent</a> can be used to render templates with credentials or any kind of secrets including dynamic credentials for systems like databases.</p><p>This is a simple yet very powerful tool to help you automate secret retrieval and configure applications in run time without any manual intervention.</p><h3>Demo</h3><p>As stated in the beginning of the blog post, if you would like to test or demo this functionality I have created a Terraform project on GitHub. This will build your environment from scratch and will deploy the following:</p><ol><li>Azure MySQL database</li><li>Azure VM with Vault Server installation and setup</li><li>Azure VM with Vault Agent install, setup and a python webapp</li></ol><p>Here is the link to the GitHub repository:</p><p><a href="https://github.com/kaparora/vault-azure-python-mysql-webapp">https://github.com/kaparora/vault-azure-python-mysql-webapp</a></p><h3>Summary</h3><p>With HashiCorp Vault and Vault Agent you can fully automate the configuration of your applications running inside an Azure VM with dynamic secrets and database credentials using system-assigned managed identities for Azure VMs. This enables you to secure your applications and truly implement DevSecOps.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=46af556e7cac" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hashicorp-engineering/automatic-dynamic-secrets-retrieval-in-microsoft-azure-vms-with-hashicorp-vault-46af556e7cac">Automatic Dynamic Secrets Retrieval in Microsoft Azure VMs with HashiCorp Vault</a> was originally published in <a href="https://medium.com/hashicorp-engineering">HashiCorp Solutions Engineering Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is Health?]]></title>
            <link>https://medium.com/@kaparora/what-is-health-d944f7767d31?source=rss-e25bca52f896------2</link>
            <guid isPermaLink="false">https://medium.com/p/d944f7767d31</guid>
            <category><![CDATA[wellbeing]]></category>
            <category><![CDATA[ayurveda]]></category>
            <category><![CDATA[health]]></category>
            <category><![CDATA[dosha]]></category>
            <dc:creator><![CDATA[Kapil Arora]]></dc:creator>
            <pubDate>Sun, 26 Apr 2020 17:37:40 GMT</pubDate>
            <atom:updated>2020-04-26T17:53:43.460Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CrhoDMb1e2an-djw3co70w.png" /><figcaption>- Sushruta Samhita</figcaption></figure><p>In this post I would like to share some of my notes on <em>“what is health?”</em> as per <em>Ayurveda</em> from an introductory <em>Ayurveda</em> class I attended in Rishikesh, India last year. The information may not be 100% accurate but will give you a good idea and basic understanding.</p><h3>What is Ayurveda?</h3><p><em>Ayu</em> means Life and <em>Veda</em> means Knowledge.</p><p><em>Ayurveda</em> is the knowledge/science of Life. Origins of <em>Ayurveda</em> are found in <em>Samkhya</em> philosophy from ancient India ~700–500 BCE and it focuses on the physical aspects of the human body.</p><p>It is a medical science (today called as alternate) which also teaches us about the body, what kind of food we should eat, how can we cope in different environments, etc. e.g. <em>Ayurveda</em> recommends avoiding citrus fruits and dark leafy vegetables in the rainy season.</p><p>As per <em>Ayurveda</em> life is a symbiosis of the following:</p><ul><li>Body</li><li>Senses</li><li>Mind, and</li><li>Soul</li></ul><h3>Definition of health</h3><p><em>Ayurveda</em> defines health as follows:</p><blockquote><strong>“sama dosha sama agnischa sama dhatu mala kriyaaha| Prasanna atma indriya manaha swastha iti abhidheeyate” </strong>— Sushruta Samhita</blockquote><p>which means:</p><p><strong><em>Health is when you have balanced biological energies, balanced digestive fire , nourished tissues, regular elimination of urine, sweat and stool, a happy soul, elated senses and a cheerful mind.</em></strong></p><p>There it is, that’s how you define good health. Let me share with you a little bit in more detail from the class.</p><h3>Doshas</h3><p><em>Ayurveda</em> defines 3 <em>doshas</em> or biological energies. They say if you understand these three, you can understand <em>Ayurveda</em>.</p><p><em>Doshas</em> are components which perform physiological functions inside the body.</p><h4><strong>Vatta:</strong></h4><p>Represented by space and air elements, <em>vatta</em> is resposible for movements in the body. e.g blood, stool, urine movements</p><h4><strong>Pitta</strong></h4><p>Represented by fire and water elements, <em>pitta</em> is responsible for digestion and maintaining the body temperature.</p><h4>Kapha</h4><p>Represented by water and earth, <em>kapha</em> is responsible for structure, growth and development of the body.</p><blockquote>A healthy person has all these energies in a harmonious balance.</blockquote><p><em>Vatta</em>, <em>pitta</em> and <em>kapha</em> are not anatomically present. These are energies which take shelters in tissues and waste materials and their imbalance can causes physical disorder.</p><p>Our teacher explained in detail about these qualities and also told us that everyone has one or the other quality that is more dominant. By finding out the dominant quality you can explain certain behaviors and health conditions. E.g. <em>vatta</em> people cannot tolerate cold and often have cold feet and hands, <em>kapha</em> people can easily skip breakfast and survive on 2 meals, etc.</p><p>As per <em>Ayurveda</em>, diseases don’t just show up. They are developed over time due to an imbalance in the <em>doshas</em>.</p><p>Also, you can fix problems by compensating for a <em>dosha</em> which is high e.g. Having dry skin is a sign of high <em>pitta</em> which can be solved by applying oil to the skin or adding it to the diet. Oil belongs to the <em>kapha</em> <em>dosha</em> and balances the excess of <em>pitta</em>.</p><p>Of course all this goes much deeper and has a lot of theory to learn and understand. But I hope this gives you some idea about the <em>doshas</em> on a very high level.</p><h3>Dhatu</h3><p><em>Ayurveda</em> defines 6 main <em>dhatus</em> or bodily tissues, namely:</p><ol><li>Plasma / Limph</li><li>Blood</li><li>Muscle</li><li>Bone</li><li>Bone-marrow</li><li>Reproductive tissues e.g. semen</li></ol><p>On the other side in Modern science we classify tissues into 4 types, namely</p><ol><li>Nervous (brain, spinal chord, nerves)</li><li>Muscle (cardiac, smooth and skeletal)</li><li>Epithelial (Lining of hollow organs and skin)</li><li>Connective (fat, bone, tendon)</li></ol><blockquote>A healthy persons tissues are well nourished.</blockquote><p>That was pretty straight forward.</p><h3>Mala</h3><p><em>The food that we intake is divided into 2 main parts</em></p><ol><li><em>Nutrients</em></li><li><em>Stool, urine (and sweat)</em></li></ol><p>Production of blood is the responsibility of bone marrow, spleen and liver. This blood carries nutrients which are distributed to every part of the body by the heart.</p><p>What remains after the nutrients are extracted from the food is released by the body in the form of stool and urine.</p><blockquote>These wastes must not stay in the body for long periods and must be eliminated regularly.</blockquote><p><strong><em>Essentially the physical body is just formed of the above three that we discussed. Dhatu, doshas and mala. The biological tissues, biological energies and the waste.</em></strong></p><h3>Mind</h3><p>As per <em>Ayurveda</em> our mind has 3 qualities, namely:</p><h4>Sattva</h4><p>the quality of pure consciousness, purity.</p><h4>Rajas</h4><p>The quality of intelligence and leadership.</p><h4>Tamas</h4><p>The quality of ignorance and negativity.</p><p>Every mind has all these qualities and we need all of them to function and make decisions.</p><p>Increase in <em>sattva</em> does not create imbalance for the mind but an increase in <em>rajas</em> or <em>tamas</em> does.</p><p>You might be wondering why would an increase in intelligence be a problem? me too :)</p><p>The teacher told us that too much intelligence can create ego and lead to destruction.</p><p>Too much increase in <em>tamas</em> is of course not good as it makes you ignorant, lazy and dull and sometimes mental disorders.</p><p>Any food we consume can also be classified into <em>sattvic</em>, <em>rajasic</em> and <em>tamasic</em>.</p><p>If you eat a lot of <em>tamasic</em> food, you may suffer from lethargy, get tired easily, feel low, dull or depressed etc.. These foods are essentially heavy for the body. e.g. stale food, alcohol, fried food, processed foods etc.</p><p>If you eat too much<em> rajasic</em> food, you may feel more energetic, active, dominant etc. These foods are essentially stimulating e.g. spices, coffee, tea, chocolates, chillies, etc.</p><p><em>Sattvic</em> food is light on the body and eating more <em>sattvic</em> food doesn’t create any imbalance as stated earlier. These foods are essentially light for the body. e.g. organic rice, milk, sprouts, fresh vegetables and fruits etc.</p><p>People who are on a spiritual path are recommended to <em>be on a sattvic</em> diet.</p><pre>Note: The examples I have given above may be inaccurate. e.g. I have seen many people say that garlic and alcohol are rajasic.</pre><h3>Conclusion</h3><p>I think <em>Ayurveda</em> picks up the most important aspects of a healthy human being which not only include physical aspects like healthy and nourished tissues and organs but also mental aspects. It emphasizes greatly on balance and identifying imbalance as the cause of disease. Hence, an approach to fix the imbalance is used instead of fixing the symptoms of the disease.</p><p>Ayurveda also claims that food we eat has great effect on our mind and behavior.</p><p>Again I would like to state at the end what health is as per Ayurveda:</p><ul><li>Balanced biological energies <em>(sama dosha)</em></li><li>Balanced digestive fire <em>(sama agni)</em></li><li>Nourished tissues<em>( sama dhatu )</em></li><li>Regular elimination of stool, sweat and urine<em>( mala kriyaaha )</em></li><li>A happy soul<em>( prasanna atma )</em></li><li>Elated senses( indriya )</li><li>Cheerful mind( manaha )</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d944f7767d31" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Most important yoga basics]]></title>
            <link>https://medium.com/@kaparora/most-important-yoga-basics-fe9d6e7b3f7a?source=rss-e25bca52f896------2</link>
            <guid isPermaLink="false">https://medium.com/p/fe9d6e7b3f7a</guid>
            <category><![CDATA[mindfulness]]></category>
            <category><![CDATA[basic-yoga]]></category>
            <category><![CDATA[wellness]]></category>
            <category><![CDATA[yoga]]></category>
            <category><![CDATA[yogajourney]]></category>
            <dc:creator><![CDATA[Kapil Arora]]></dc:creator>
            <pubDate>Sun, 26 Apr 2020 14:12:09 GMT</pubDate>
            <atom:updated>2020-04-26T14:12:09.932Z</atom:updated>
            <content:encoded><![CDATA[<h4><strong><em>स्थिरसुखमासनम् ॥४६॥</em></strong></h4><p><em>An asana is what is steady and pleasant. — Yoga Sutras II.46</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-MFfAa2q98H11CPw" /><figcaption>Chakrasana (The wheel)</figcaption></figure><p>For anyone who is new to yoga, I have compiled a few important foundational concepts from my own experience. If you have never done yoga and are planning to give it a try, this should help you understand what yoga is all about. This may also be helpful for you, if your only experience is a few yoga classes in a nearby studio or gym.<br>It is important to understand, that yoga is an enormous field of study and we are focussing mainly on the physical aspect, which we call the Asana practice. A yoga practice even if it is just the Asana practice is never merely a physical exercise. It is a lot more, and realizing this may take some time for you, which is totally fine.<br>The greatest thing about yoga is that it is inclusive. Yoga is for everyone and yoga has a lot to offer. It doesn’t matter if you are young or old, under or overweight, fair or dark, small or big, mentally or physically challenged, gay or straight, poor or rich, absolutely anybody can adopt yoga in their life.</p><h3>Breathing</h3><p>No Breath, No Life.</p><p>Breathing is the most important part of a yoga practice and apparently Life as well. Breath is equivalent to <strong>‘prana’</strong>, the life energy. So the first thing you need to learn is how to breathe. Every movement that we do in yoga is combined with an inhale or exhale.</p><blockquote><em>The most basic thing to learn and also very difficult to master is to align breath with movement.</em></blockquote><p>For a beginner I would suggest spending time on focussing on your breathing. Make it a habit to bring your attention back to breathing in your day to day life. e.g. take a few deep breaths often during your work hours. Make it a habit to observe the quality of your breathing while brushing, cooking, before sleep, while watching TV etc. as often as you can. Make sure you always breathe through your nose.<br>During your own yoga practice, start with deep breathing and focus on it. Bring your attention back if you lose it. Starting with movements where you can easily align with breathing also helps and sets you up for the session.</p><h3>Tight Muscles</h3><p>If you have a desk job like me and and you are not a dancer or a gymnast, it is very likely that you have tight muscles, specially the hamstrings, shoulders, neck and also a bunch of muscles in the hip region.<br>Even if you are very active and do regular weight training or cardiovascular exercises you may face this tightness in the muscles. Unless, you spend some time stretching your muscles. The modern fitness routines focus on strengthening the muscles with repeated compression but many times they ignore that stretching and extending the muscles is equally important.</p><p>First of all, recognize that you have tight muscles and start working on them. It takes time to build muscle flexibility and I am talking about months and years. <strong>You will need patience</strong>.<br>The good part is, that doing regular yoga practice will help you build this flexibility and slowly open up your hips, shoulders, neck and hamstring muscles.</p><blockquote><em>If you feel restricted in certain asanas like forward bending or twisting positions, don’t force yourself.<br>Accept your body and touch your boundaries every day. Slowly you will make it.</em></blockquote><h3>Anatomy</h3><p>We are all made different.</p><p>Some of us are more flexible than others. Some have longer or shorter legs, some have a long neck, some have short arms, some have uneven limbs, some have scoliosis, some have different bone structure and the list is long. The point I want to make is that many times due to different bone structures or body types you may not be able to do things the same way as most people. This should not put you down.</p><blockquote><em>Yoga is not about coming in a perfect position which is aesthetically appealing. It is a journey where you learn more about yourself and your body.</em></blockquote><p>Focus on the essence of the Asana rather than coming into an elegant perfect position. It is ok to bend your knees in Downward facing dog as an example, as long as you are trying to make one straight line from your hands to your hips.</p><h3>The Spine and Core</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*N5Gw6emDSamDvrPf" /><figcaption>Urdhva mukha shvanasana (The upward facing dog)</figcaption></figure><p>The Spine is one of the most important part of our body.</p><p>A healthy strong and flexible spine is more important than anything that you might be aiming today as your health goal.</p><p>Core is the center of strength in the body. In yoga, we focus on our core and derive strength from it for most asanas.</p><blockquote><em>Working on both the spine and core can help you fix your posture and body alignment.<br>Moreover, most advanced yoga positions can be more easily performed if you have a strong core and a flexible spine.</em></blockquote><p>As a beginner it is important to understand this fundamental and spend a lot of time on building core strength and spinal flexibility before you start trying advanced yoga positions.</p><p>Also, stop leaning on your desk.</p><h3>Inner practice</h3><p>Guided by a teacher in a group, a YouTube video or a personal practice alone, it doesn’t matter. Yoga is an internal practice. The teacher is a voice, a guide for you but the journey is your own. When you are practicing yoga try to be present. Your thoughts will wander, but bring them back. Use your breath, focus on it.</p><blockquote><em>Breath is your ultimate guide and source of all your energy and strength.</em></blockquote><h3>Surrender</h3><p>This may not apply to you or maybe it does to everyone.</p><blockquote><em>“Surrender yourself. Let go”.</em></blockquote><p>Many of you may not understand this, but I will still try to explain it.</p><blockquote><em>Let’s do a small exercise:<br>Right now, at this very moment, observe your shoulders, your neck, your eyes, your face and maybe slowly your entire body.<br>Are you straining any muscles that you don’t really need to? Were you aware you are engaging these muscles?</em></blockquote><p>Let go, release those muscles.</p><p>In your yoga practice, if you observe, you will also see that many times you are engaging muscles that you really don’t need to and good teachers always guide you to release them. Take the opportunity in resting positions like child’s pose and Shavasana(Corpse pose) to really let go and release all tension. Try to slowly develop this feeling of surrender. This not only applies to your muscles but your mind.<br>Yoga will slowly teach you to release and let go your emotions, feelings and thoughts that you are holding on to for no reason.</p><blockquote><em>Yoga will teach you to live in the present.</em></blockquote><h3>Pain</h3><p>Ideally there should never be any pain during your yoga practice. I think we all can differentiate pain from discomfort and sore muscles.</p><blockquote><em>In your practice, if at anytime you feel pain, come out of the position.</em></blockquote><p>I hope this will help you build a better yoga practice for yourself.<br>All the best in your yoga journey.</p><p>Namaste 🙏</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fe9d6e7b3f7a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I found yoga]]></title>
            <link>https://medium.com/@kaparora/how-i-found-yoga-ba20b2d299a9?source=rss-e25bca52f896------2</link>
            <guid isPermaLink="false">https://medium.com/p/ba20b2d299a9</guid>
            <category><![CDATA[mindfulness]]></category>
            <category><![CDATA[yogajourney]]></category>
            <category><![CDATA[wellbeing]]></category>
            <category><![CDATA[yoga-life]]></category>
            <category><![CDATA[yoga]]></category>
            <dc:creator><![CDATA[Kapil Arora]]></dc:creator>
            <pubDate>Sun, 26 Apr 2020 14:01:44 GMT</pubDate>
            <atom:updated>2020-04-26T14:37:13.785Z</atom:updated>
            <content:encoded><![CDATA[<h4>अथ योगानुशासनम्॥१॥</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Lm8ixHHX2fSB1IhzWriFmQ.jpeg" /></figure><h3>The Beginning</h3><p>I took my first real Yoga class (by <a href="https://jasminjaremkow.com/">Jasmin</a> at <a href="https://www.bodyandsoul.de/">Body + Soul</a>) in May this year. Thanks to my partner, who inspired me to try it out. To be honest, it was not the right choice as the language of instruction was German and it was a Jivamukti medium/advanced class. Even though the conditions were not optimal for a beginner, it did give me a taste of it. Soon after, I took a few English classes (by <a href="https://www.flowithjodie.com/">Jodie</a> and <a href="https://daisychainyoga.com/">Daisy</a> at <a href="https://ronis-yogastudio.de/">Roni’s yoga studio</a>) and started enjoying them so much that I started skipping my functional training classes to do Yoga. Today, it has come to it that I only do Yoga as a fitness activity (Not saying that this is the right choice though 😊).</p><p>Taking a few Yoga sessions in a studio nearby was enough to get me started and interested. I wanted to learn more and I did ask myself “why didn’t I do this earlier?”.</p><h3>The Key Elements</h3><p>There was something about Yoga that pulled me towards it. I came back happy and energized from my classes and went back for more. It made me feel more connected to myself and others. I felt there is a dimension of my existence that I have been totally ignoring until today.</p><p>Working together with breathing, focus, balance and strength can do wonders for your mind and body.</p><p>In the class you not only work with your body but also with your inner strength.</p><p>Yoga works not only on your body, but your mind and if you go deeper, your soul.</p><p>I started believing, Yoga can change my life.</p><h3>The Challenge</h3><p>Yoga can be challenging especially if you start with drop-in classes, when you don’t even know the name of the Asanas (Postures). There are a lot of basics, theory and technical details to know and learn. Detailed instructions from a good teacher are nice but still not enough to practice and do well in my opinion.</p><p>I struggled and I was also not sure if I am doing things correctly.</p><p>I started watching yotube videos from <a href="https://timsenesiyoga.com/">Tim Senesi</a>(Recomended!!) and also started referring to ‘Light on Yoga by BKS Iyengar’ for information on postures and alignment. Soon I realized that there is so much to learn and I have not even scratched the surface.</p><p>I can say without any doubt that in the beginning, most of my basic postures were not even close to how they should be. I was not breathing correctly or let’s say, I didn’t know how to breath. I was not standing correctly and I was not engaging the right muscles. I didn’t even know what it really means to engage the core.</p><h3>Lucky trip to Bali</h3><p>I traveled to Bali in the mid of June and luckily attended a yoga class (by <a href="https://yogasaraswati.com/instructors/raldo/">Raldo</a> at <a href="https://yogasaraswati.com/">Yoga Saraswati</a> in Ubud. I really enjoyed his class and after chatting with him I discovered that he recently completed his yoga training in Rishikesh.</p><p>I think it was June 21, International yoga day when I first started to think about doing the yoga teacher training myself.</p><h3>Hungry to learn</h3><p>After my vacation in Bali I was hungry to learn more, and attending a drop-in session 2–3 times a week was not enough to make any real progress. I was always unsure of what I was doing in the class (and rightly so). I convinced myself that I need a push, an intensive training, to really get started. The idea of going to a school and learning all about yoga, all day, was a very attractive idea to me and I started looking at my options.</p><h3>Yoga Teacher training in Rishikesh</h3><p>Looking for a yoga teacher training online is a difficult task. There are hundreds of schools in Rishikesh and they all claim to be the best HAHA! . I eventually decided to go to the same school as Raldo to be on the safe side. Thanks to my teammates and my Manager to approve my 5 weeks vacation, I spent the whole of August learning yoga in India at <a href="https://www.rishikeshyttc.com/">Rishikesh YTTC</a>.</p><h3>I am Grateful</h3><p>I learned a lot in Rishikesh and I will write soon about my experience there.</p><p>Hailing from the yoga motherland, I wish I got real yoga training in my childhood. I believe yoga is more important than a lot of subjects that I studied in my school.</p><p>I am grateful to all the yoga teachers and ambassadors for spreading yoga to each and every corner of this World.</p><blockquote><em>“The tree is still spreading. The winds of yoga are blowing everywhere.” -B.K.S Iyengar</em></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ba20b2d299a9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Advanced Data Protection with HashiCorp Vault]]></title>
            <link>https://medium.com/hashicorp-engineering/advanced-data-protection-with-hashicorp-vault-96839b6b22af?source=rss-e25bca52f896------2</link>
            <guid isPermaLink="false">https://medium.com/p/96839b6b22af</guid>
            <category><![CDATA[transform-secret-engine]]></category>
            <category><![CDATA[hashicorp-vault]]></category>
            <category><![CDATA[fpe]]></category>
            <category><![CDATA[cryptography]]></category>
            <category><![CDATA[encryption]]></category>
            <dc:creator><![CDATA[Kapil Arora]]></dc:creator>
            <pubDate>Tue, 21 Apr 2020 23:45:30 GMT</pubDate>
            <atom:updated>2020-04-24T10:47:24.350Z</atom:updated>
            <content:encoded><![CDATA[<p>(Thanks to <a href="https://medium.com/u/83657b54e5aa">Nico</a>, <a href="https://medium.com/u/342ea3e76228">Sebastien Braun</a> and <a href="https://medium.com/u/1d005141dfbb">Tim Arenz</a> for their valuable inputs and feedback on this blog post)</p><h3>Introduction</h3><p>Organizations store sensitive, personal and valuable data, which must be protected. Leakage of such data can lead to financial loss, reputation risk, legal ramifications and more.</p><p>Moreover, organizations must comply with data protection standards and regulations like the PCI DSS, GDPR, HIPAA, etc.</p><p>In this blog you will learn what measures organizations take to protect their data, how they implement them, understand their challenges and find out how <a href="https://www.hashicorp.com/products/vault/">HashiCorp Vault</a> helps organizations solve these challenges.</p><h3>Data Protection Measures and Implementation</h3><h4>Encryption at Rest</h4><p>Transparent Data Encryption (TDE) and Full Disk Encryption (FDE)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/652/1*iZEXUeWpcPQGyW0GihrEpQ.png" /></figure><p>Most organizations implement some sort of encryption at rest. Information is encrypted at the block level in the filesystem or physical storage medium. This type of encryption does protect you from physical theft but does not protect you if access to a database or database host is compromised, as an example.</p><h4>Encryption in Transit</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/724/1*HSeYqQYvxqcpufrV37FbiQ.png" /></figure><p>Information is encrypted in-flight and decrypted by software when required. Information is persisted in an encrypted manner. This type of encryption works well against threats such as SQL injection. Even if the data is compromised, it is encrypted and not useful.</p><h4>Tokenization</h4><p>Ultra-sensitive information, such as credit card numbers are commonly protected using tokenization where sensitive data is substituted by non-sensitive data called the token.</p><h4>Format Preserving Encryption &amp; Data Masking</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/724/1*Apgru8c8lGzGna27HIfCgg.png" /></figure><p>Information is obfuscated in such a way that it is compliant with data constraints in systems of record and decoded as needed.</p><p>Data masking is another way to obfuscate information. In this case though, the data is masked and cannot be decoded once it’s encoded.</p><h4>Hardware Security Module (HSM)</h4><p>Many organizations use FIPS 140–2-certified Hardware Security Modules or HSMs to ensure that critical security parameters are protected in a compliant manner.</p><h3>Data Protection Challenges</h3><p>Data in most applications must be encrypted, but deploying cryptography and key management infrastructure is expensive, hard to develop against, and not cloud or multi data-center friendly.</p><h4>Increasing Costs</h4><p>Procuring and deploying new key management infrastructure, HSMs and support can be expensive.</p><blockquote>Vault can help reduce <strong>hardware costs </strong>related to multiple key management infrastructure solutions, HSMs, <strong>licensing</strong> and <strong>support.</strong></blockquote><h4>Reduced Productivity</h4><p>With multiple workflows/APIs to learn cryptographic standards across an organization and different projects and restricted access to HSMs.</p><blockquote>With Vault, you can create <strong>consistent workflows </strong>and cryptographic <strong>standards</strong> across your organization.</blockquote><h4>Increasing Risk</h4><p>With multiple attack surfaces to intercept and steal sensitive data.</p><blockquote>Vault enables you to encrypt sensitive data using <strong>centrally managed, audited </strong>and secured encryption keys. But more importantly all of this can be achieved through <strong>a single workflow and APIs.</strong></blockquote><h3>Data Protection Perspectives</h3><p>We have different personas and decision makers responsible for data protection rollout and implementation in every organization and they all have different goals and expectations.</p><h4>CISO and the security teams</h4><p>A CISO and the security teams must ensure that the organization and the applications are <strong>compliant</strong> and <strong>audited</strong>. They are responsible for security after all and hence, they want to <strong>reduce risk</strong> by having more <strong>control</strong> and <strong>transparency</strong>.</p><h4>CTO and IT Managers</h4><p>The CTO and IT Managers are more focused on the <strong>cost</strong> and <strong>productivity</strong> of the implementation. They must ensure that they use and build <strong>standards</strong> and those are <strong>consistent</strong> across the organization. They are also responsible for <strong>time to market.</strong> Hence, it is also in their interest to <strong>enable</strong> their <strong>developers</strong> by offering them the right tools and processes.</p><h4>Developers</h4><p>Developers love and expect <strong>APIs</strong>, <strong>ease of use</strong> and <strong>simplicity</strong>.</p><h3>Vault and Data Protection</h3><h4>Encryption as a Service</h4><p>Vault’s <a href="https://www.vaultproject.io/docs/secrets/transit"><strong>transit secrets engine</strong></a> provides <em>Encryption as a Service </em>(<em>EaaS</em>). Vault manages the keys, but the client decides where to store the encrypted data. Applications use Vault APIs to encrypt and decrypt values.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*x-oLZmghIvLwLL4RQsXILA.png" /><figcaption>Transit secret engine encrypt operation</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/688/1*L50QgQKsImoXzasL4eA-eQ.png" /><figcaption>Transit secret engine decrypt operation</figcaption></figure><p>Here is some sample code to enable and use the transit secret engine:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/9c96132ae8c774c6fa8a24bf5283fc31/href">https://medium.com/media/9c96132ae8c774c6fa8a24bf5283fc31/href</a></iframe><h4>Format-Preserving Encryption</h4><p>Vault’s <a href="https://www.vaultproject.io/docs/secrets/transform"><strong>transform</strong> <strong>secrets engine</strong></a> provides AES FF3–1 <em>Format-Preserving Encryption (FPE)</em>. Vault manages keys and the client decides format &amp; storage for data. Applications can encode and decode values using the Vault API.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/687/1*kl0LhHMQ2qQyzLFozq1avA.png" /><figcaption>Transform secret engine FPE encode operation</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/687/1*x8Gp2mmg5NhrXYI-zsDDbQ.png" /><figcaption>Transform secret engine FPE decode operation</figcaption></figure><p>Here is some sample code to enable and use the transform secret engine with FPE:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/cfa8a8fee105adf0909c827dc5ec5315/href">https://medium.com/media/cfa8a8fee105adf0909c827dc5ec5315/href</a></iframe><h4><strong>Data Masking</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/687/1*pmqqZ2FQqTiMtVVwFLM9-w.png" /><figcaption>Transform secret engine data masking encode operation</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/417/1*kYK1UKxzA5kJZSvREM2U3A.png" /><figcaption>Decoding a masked value is not possible</figcaption></figure><p>The <a href="https://www.hashicorp.com/blog/transform-secrets-engine/"><strong>Transform secrets engine</strong></a> provides <em>Data Masking</em>. Vault basically searches and replaces PII data that you pattern match for (Credit Card, SSN, Passport, etc). Applications can encode or mask the values using the Vault API. Decoding is not possible with data masking.</p><p>Here is some sample code to enable and use the Transform secret engine with data masking:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/0887ae05704a11ea02f000e1e528e1c8/href">https://medium.com/media/0887ae05704a11ea02f000e1e528e1c8/href</a></iframe><h4>KMIP and HSM Integration</h4><p>You can also use Vault with traditional application and storage systems using KMIP and integrate with HSMs to maintain compliance.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/409/1*BcWWpyAc_v5srqtcaYEq0A.png" /></figure><p><strong>KMIP</strong></p><p><a href="https://www.vaultproject.io/docs/secrets/kmip">Vault supports Key Management Interoperability Protocol</a> and can present itself as a KMIP Server to systems e.g. <a href="https://medium.com/hashicorp-engineering/hashicorp-vault-as-an-external-key-manager-for-netapp-encryption-7794297f6df1?source=friends_link&amp;sk=dd876527421a19f8639c8db9567cba70">NetApp</a>, <a href="https://medium.com/hashicorp-engineering/securing-vmware-data-an-hashicorp-vault-kmip-story-3183d5cfeb53">VMware</a>, MySQL etc.</p><p><strong>HSM</strong></p><p><a href="https://www.vaultproject.io/docs/enterprise/hsm">Vault supports integration with any HSM</a> that supports PKCS #11.</p><p><strong>Multi-tenancy</strong></p><p>Vault offers namespaces and can also instantiate multiple KMIP Servers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/439/1*gh4ZTPRdQ7EJye2XwTwtSQ.png" /></figure><p><strong>Full Disk Encryption (FDE)</strong></p><p>Storage systems that support the KMIP protocol can retrieve keys stored in Vault and serve them to encrypted disk for access.</p><p><strong>Transparent Data Encryption (TDE)</strong></p><p>KMIP capable database applications can retrieve keys stored in Vault and serve them encrypted data.</p><p><strong>NetApp &amp; VMware</strong></p><p>If you are interested in the integration with NetApp or VMware, checkout these blog posts:</p><ol><li><a href="https://medium.com/hashicorp-engineering/hashicorp-vault-as-an-external-key-manager-for-netapp-encryption-7794297f6df1?source=friends_link&amp;sk=dd876527421a19f8639c8db9567cba70">HashiCorp Vault as an External Key Manager for NetApp Encryption</a></li><li><a href="https://medium.com/hashicorp-engineering/securing-vmware-data-an-hashicorp-vault-kmip-story-3183d5cfeb53?source=friends_link&amp;sk=006f7bf9d9aed996fc344f9ed8da6d24">Securing VMWare Data: A HashiCorp Vault KMIP Story</a></li></ol><h3>Summary</h3><ol><li>Vault provides the <strong>foundation</strong> for <strong>cloud security.</strong></li><li>Vault offers advanced data protection features like <strong>EaaS</strong>, <strong>FPE</strong> &amp; <strong>Data-masking</strong> along with <strong>KMIP</strong> &amp; <strong>HSM</strong> integration.</li><li>Vault increases <strong>agility</strong> for deploying <strong>new</strong> and <strong>isolated</strong> <strong>cryptography</strong> and at the same time <strong>reduces cost and risk</strong>.</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=96839b6b22af" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hashicorp-engineering/advanced-data-protection-with-hashicorp-vault-96839b6b22af">Advanced Data Protection with HashiCorp Vault</a> was originally published in <a href="https://medium.com/hashicorp-engineering">HashiCorp Solutions Engineering Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[HashiCorp Vault as an External Key Manager for NetApp Encryption]]></title>
            <link>https://medium.com/hashicorp-engineering/hashicorp-vault-as-an-external-key-manager-for-netapp-encryption-7794297f6df1?source=rss-e25bca52f896------2</link>
            <guid isPermaLink="false">https://medium.com/p/7794297f6df1</guid>
            <category><![CDATA[netapp-encryption]]></category>
            <category><![CDATA[netapp]]></category>
            <category><![CDATA[vault]]></category>
            <category><![CDATA[kmip]]></category>
            <category><![CDATA[hashicorp-vault]]></category>
            <dc:creator><![CDATA[Kapil Arora]]></dc:creator>
            <pubDate>Thu, 05 Mar 2020 00:30:12 GMT</pubDate>
            <atom:updated>2020-03-07T04:15:14.485Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/827/1*nR-C0_7qXb7CrGLHEJXMaQ.png" /></figure><h3>Introduction</h3><p>All traditional solutions for a KMIP based external key manager are either hardware-based, costly, inflexible, or not scalable. HashiCorp’s <a href="https://www.hashicorp.com/products/vault">Vault Enterprise</a> on the other hand can be used as a flexible, very cost-effective, and scalable external key manager solution. It is certified by NetApp, supports the <a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=kmip">OASIS KMIP</a> protocol, and integrates with any <a href="https://en.wikipedia.org/wiki/PKCS_11">PKCS #11</a> compliant HSM.</p><h3>NetApp Encryption</h3><p>NetApp offers state of the art secure data management, file-shares, backup, recovery, replication and disaster recovery solutions to a large number of enterprises all around the globe. The <a href="https://www.netapp.com/us/products/data-management-software/ontap.aspx">NetApp ONTAP</a> system, which is one of the most popular storage operating system in the world, offers FIPS compliant encryption technology that also supports the OASIS KMIP protocol.</p><p><a href="https://www.netapp.com/us/products/storage-security-systems/netapp-storage-encryption.aspx">NetApp Storage Encryption</a> (NSE) is NetApp’s implementation of Full Disk Encryption while <a href="https://www.netapp.com/us/media/ds-3899.pdf">NetApp Volume Encryption</a> (NVE) and <a href="https://www.netapp.com/us/media/ds-3899.pdf">NetApp Aggregate Encryption</a> (NAE) are software-based, data-at-rest encryption solutions, available in NetApp ONTAP based systems. Although NetApp does offer an onboard key manager, most enterprises must use an external key manager for compliance reasons as the keys must be stored outside of the storage system.</p><h3>Vault as an External Key Manager for NetApp</h3><p><a href="https://www.hashicorp.com/products/vault/">HashiCorp Vault</a> is the de-facto standard for managing secrets in <strong>multi-cloud</strong> and hybrid <strong>enterprise</strong> environments. It is a simple, modern, scalable and highly automatable solution for management of all kinds of sensitive and secret data including passwords, keys, certificates, and encryption keys. One of the latest enterprise capabilities of Vault is a <a href="https://learn.hashicorp.com/vault/secrets-management/kmip-engine">KMIP Secrets Engine</a> which is the best solution for external key manager requirements for enterprise storage systems like NetApp ONTAP. Moreover, Vault can be <a href="https://www.vaultproject.io/docs/enterprise/hsm/">integrated with an HSM</a> for master key wrapping and auto unsealing.</p><blockquote><strong>Note:</strong> the KMIP and HSM features are Vault Enterprise features.</blockquote><p><strong>Certified:</strong> Vault is validated, supported and certified for use by NetApp. Vault complies with the <a href="http://docs.oasis-open.org/kmip/spec/v1.4/kmip-spec-v1.4.html"><strong>OASIS KMIP</strong></a> standard.</p><p><strong>Secure Multi-tenancy:</strong> Isolate different tenant environments for security and compliance. Different teams and departments can work independently of each other and have access to only their own keys and systems.</p><p><strong>HSM Support:</strong> Vault supports integration with any HSM that supports <strong>PKCS #11</strong>. Most hardware-based KMIP Servers only support specific HSMs.</p><p><strong>Flexibility:</strong> Most key managers are hardware devices and difficult to procure, manage and maintain. Vault gives you more flexibility as it is distributed as a binary and can be deployed on multiple Platforms.</p><p><strong>Cost and Efficiency:</strong> One deployment of Vault can create <strong>multiple independent KMIP servers</strong>. Save time and cost as you don’t need to buy and manage hardware devices for each department.</p><p><strong>Management:</strong> Vault is easy to manage and use, as it offers Web UI, CLI, and <strong>HTTP API</strong> interfaces.</p><p><strong>High Availability:</strong> Built-in High Availability using Consul as the storage back-end. Using Consul also provides automated registration, tagging, and health checks for Vault services within Consul.</p><p><strong>Disaster Recovery:</strong> Built-in multi-datacenter replication for horizontal scalability and disaster recovery use-cases.</p><p><strong>Audit Logging:</strong> With Vault’s audit log, monitoring secret access across multiple environments and clouds is easy and automated.</p><p><strong>Future-proof:</strong> Vault comes power packed with multiple <strong>integrations</strong> like <strong>AWS</strong>, <strong>Azure</strong>, <strong>GCP</strong>, <strong>Kubernetes</strong>, Databases, and more. One Central service for secret and certificate management, cryptographic and <strong>advanced data protection</strong> needs.</p><h3>Deployment</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_f9kIr2cwc-E5gWtZ8NmPw.png" /></figure><p>Vault is deployed in a High Availability configuration on physical/virtualized cloud/on-premise environments. In an Enterprise setup, Vault uses Consul as a Storage Backend. Apart from Storage, Consul also offers automated registration, tagging and health checks for Vault services. One Vault instance acts as the Active server while the rest run as Performance Standbys in this enterprise setup. A Load Balancer is used to distribute traffic among the Vault nodes. In the case of integration with NetApp, Vault acts as one or more independent KMIP Servers. NetApp systems talk to Vault using the KMIP protocol.</p><p>A KMIP server can be set up on Vault in 3 steps as shown below:</p><ol><li><strong>Enable and configure the KMIP secrets engine</strong></li></ol><pre>$ vault secrets enable kmip<br>$ vault write kmip/config listen_addrs=0.0.0.0:5696</pre><p><strong>2. Configure KMIP scope, permissions, to be used by the NetApp system</strong></p><pre>$ vault write -f kmip/scope/scope1<br>$ vault write kmip/scope/scope1/role/role1 operation_all=true</pre><p><strong>3. Generate a Certificate for authentication against KMIP server</strong></p><pre>$ vault write -f -field=certificate \<br>   kmip/scope/scope1/role/role1/credential/generate &gt; kmip-cert.pem  </pre><pre>$ cat kmip-cert.pem</pre><p><strong>That’s it</strong>! Once KMIP is enabled and setup you can continue the setup on the NetApp system.</p><blockquote><strong>Note:</strong> all NetApp sample commands below are based on ONTAP version 9.6. For other versions and detailed information <a href="https://docs.netapp.com/ontap-9/topic/com.netapp.doc.pow-nve/home.html">click here</a>)</blockquote><ol><li><strong>Installing certificates on the NetApp system</strong></li></ol><p>Install the SSL KMIP client certificates for the cluster:</p><pre>cluster1::&gt; security certificate install -vserver cluster1 -type client -subtype kmip-cert</pre><p>You are prompted to enter the SSL KMIP public and private certificates.</p><p>Install the SSL public certificate for the root certificate authority (CA) of the KMIP server:</p><pre>cluster1::&gt; security certificate install -vserver cluster1 -type server-ca -subtype kmip-cert</pre><p><strong>2. Configure key manager connectivity on the NetApp System</strong></p><p>Use A, B, or C below depending on your encryption requirements.</p><p>A. Enable external key manager for hardware based encryption:</p><pre>clusterl::&gt; security key-manager external enable -key-servers ks1.local:15696,10.0.0.10,[fd20:8b1e:b255:814e:32bd:f35c:832c:5a09]:1234 -client-cert AdminVserverClientCert -server-ca-certs AdminVserverServerCaCert</pre><p>B. Enable external key manager for cluster-wide software based encryption:</p><pre>clusterl::&gt; security key-manager external enable -vserver cluster1 -key-servers ks1.local:15696,10.0.0.10,[fd20:8b1e:b255:814e:32bd:f35c:832c:5a09]:1234 -client-cert AdminVserverClientCert -server-ca-certs AdminVserverServerCaCert</pre><p>C. Enable external key manager for SVM scoped software based encryption:</p><pre>svm1l::&gt; security key-manager external enable -vserver svm1 -key-servers keyserver.svm1.com -client-cert SVM1ClientCert -server-ca-certs SVM1ServerCaCert</pre><p><strong>Verify that all configured KMIP servers are connected</strong></p><pre>&gt;security key-manager external show-status</pre><p><strong>Enabling encryption on aggregates and volumes</strong></p><ol><li>Create an aggregate with encryption enabled, NAE:</li></ol><pre>&gt;storage aggregate create -aggregate aggregate_name -node node_name -encrypt-with-aggr-key true</pre><p>Volumes created on NAE enabled aggregates will be encrypted by default:</p><pre>&gt;volume create -vserver SVM_name -volume volume_name -aggregate aggregate_name</pre><p>2. Create a volume with encryption enabled, NVE:</p><pre>&gt;volume create -vserver SVM_name -volume volume_name -aggregate aggregate_name -encrypt true</pre><h4><strong>HSM integration</strong></h4><p>Vault can be integrated with an HSM device (with PKCS #11 support) if required for master key wrapping and Vault unsealing. More details can be found <a href="https://www.vaultproject.io/docs/enterprise/hsm/">here</a>.</p><h3>Summary</h3><p>When using HashiCorp Vault Enterprise as an external key manager for NetApp Encryption, organizations can save money, time, and resources. Vault is fully software-based and scalable and offers multiple integrations including for public clouds. It offers great automation capabilities which reduce risks.</p><h3>Resources and links</h3><ol><li><a href="https://www.netapp.com/us/products/storage-security-systems/netapp-storage-encryption.aspx"><em>NetApp Storage Encryption</em></a></li><li><a href="https://www.netapp.com/us/media/ds-3899.pdf"><em>NetApp Volume Encryption and NetApp Aggregate Encryption</em></a></li><li><a href="https://www.hashicorp.com/products/vault/"><em>HashiCorp Vault landing page</em></a></li><li><a href="https://learn.hashicorp.com/vault/secrets-management/kmip-engine"><em>Vault KMIP secrets engine</em></a></li><li><a href="https://www.vaultproject.io/docs/enterprise/hsm/"><em>Vault and HSM Integration</em></a></li><li><a href="https://learn.hashicorp.com/vault/operations/ops-reference-architecture"><em>Vault Reference Architecture</em></a></li><li><a href="https://www.hashicorp.com/products/vault/pricing/"><em>Vault Enterprise Offerings and OSS Comparison</em></a></li><li><a href="https://www.hashicorp.com/resources/unlocking-the-cloud-operating-model-security?utm_source=vaultsubnav"><em>White-paper on Unlocking the Cloud Operating Model: Security</em></a></li><li><a href="https://docs.netapp.com/ontap-9/index.jsp?topic=%2Fcom.netapp.doc.pow-nve%2FGUID-DD718B42-038D-4009-84FF-20BBD6530BC2.html"><em>NetApp ONTAP External Key Manager Configuration Guide</em></a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7794297f6df1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hashicorp-engineering/hashicorp-vault-as-an-external-key-manager-for-netapp-encryption-7794297f6df1">HashiCorp Vault as an External Key Manager for NetApp Encryption</a> was originally published in <a href="https://medium.com/hashicorp-engineering">HashiCorp Solutions Engineering Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>