{"id":853,"date":"2024-05-02T13:16:56","date_gmt":"2024-05-02T13:16:56","guid":{"rendered":"https:\/\/automatethemundane.com\/index.php\/2024\/03\/27\/power-pipelines-and-enhanced-alm-part-6-pipeline-and-environment-security\/"},"modified":"2024-05-02T13:16:57","modified_gmt":"2024-05-02T13:16:57","slug":"power-pipelines-and-enhanced-alm-part-6-pipeline-and-environment-security","status":"publish","type":"post","link":"https:\/\/automatethemundane.com\/index.php\/2024\/05\/02\/power-pipelines-and-enhanced-alm-part-6-pipeline-and-environment-security\/","title":{"rendered":"Power Pipelines and Enhanced ALM Part 6 &#8211; Pipeline and Environment Security"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Access Control<\/h2>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\">Before we get into the specific security roles, we need to define the Access Control to each Environment. The below diagram is an example for how I have fashioned it for my company. I am using O365 groups for ease of access and for future auditing, <\/p>\n\n\n<h2 class=\"wp-block-heading\">Creating Teams in an Environment<\/h2>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-1024x611.png\" alt=\"\"\/><\/figure>\n\n\n<h2 class=\"wp-block-heading\">Development Security Roles<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Design<\/h3>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\">The Development Environment utilizes the same O365 group for the Environment Maker role and any custom security role needed in the Environment. The System Administrator is aligned to a O365 Group as well. This was done for simplicity on our side, but could be very easily swapped to an Security Group if needed. <\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-1-1024x609.png\" alt=\"\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Configuration<\/h3>\n\n\n<ol class=\"wp-block-list\">\n<li>From the Power Platform Admin Center, Select Environments <\/li>\n\n\n\n<li>Select Development<\/li>\n\n\n\n<li>Select Teams from the Access Menu\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-2.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Select Create Team\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-3-1024x165.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Create the Admin Team\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-4.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Give it the System Administrator role\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-5.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Select Create team again\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-6.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Create the team to align it to the developers team and give it the Environment Maker Role and the System Customizer Role.<\/li>\n\n\n\n<li>If you have any custom security roles, add them at this time. <\/li>\n\n\n\n<li>Select Save.<\/li>\n<\/ol>\n\n\n<h2 class=\"wp-block-heading\">Test<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Design<\/h3>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-7-1024x610.png\" alt=\"\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Configuration<\/h3>\n\n\n<ol class=\"wp-block-list\">\n<li>From the Power Platform Admin Center, Select Environments <\/li>\n\n\n\n<li>Select Test<\/li>\n\n\n\n<li>Select Teams from the Access Menu<\/li>\n\n\n\n<li>Select Create Team<\/li>\n\n\n\n<li>Create the Admin Team<\/li>\n\n\n\n<li>Give it the System Administrator role<\/li>\n\n\n\n<li>Select Create team again<\/li>\n\n\n\n<li>Create the team to align it to the developers team and give it the Environment Maker Role and the Systems Customizer Role<\/li>\n\n\n\n<li>If you have any custom security roles, add them at this time. <\/li>\n<\/ol>\n\n\n<h2 class=\"wp-block-heading\">Production<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Design<\/h3>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-8-1024x609.png\" alt=\"\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Configuration<\/h3>\n\n\n<ol class=\"wp-block-list\">\n<li>From the Power Platform Admin Center, Select Environments <\/li>\n\n\n\n<li>Select Test<\/li>\n\n\n\n<li>Select Teams from the Access Menu<\/li>\n\n\n\n<li>Select Create Team<\/li>\n\n\n\n<li>Create the Admin Team<\/li>\n\n\n\n<li>Give it the System Administrator role<\/li>\n\n\n\n<li>Select Create team again<\/li>\n\n\n\n<li>Create the team to align it to the developers team and give it the Environment Maker Role and the Systems Customizer Role<\/li>\n\n\n\n<li>If you have any custom security roles, add them at this time. <\/li>\n<\/ol>\n\n\n<h2 class=\"wp-block-heading\">Orchestrator<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Design<\/h3>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-9-1024x609.png\" alt=\"\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Configuration<\/h3>\n\n\n<ol class=\"wp-block-list\">\n<li>From the Power Platform Admin Center, Select Environments <\/li>\n\n\n\n<li>Select Orchestrator<\/li>\n\n\n\n<li>Select Teams from the Access Menu<\/li>\n\n\n\n<li>Select Create Team<\/li>\n\n\n\n<li>Create the Admin Team<\/li>\n\n\n\n<li>Give it the System Administrator role and the Deployment Pipeline Admin Role<\/li>\n\n\n\n<li>Select Create team again<\/li>\n\n\n\n<li>Create the team to align it to the developers team and give it the Deployment Pipeline User Role<\/li>\n\n\n\n<li>If you have any custom security roles, add them at this time. <\/li>\n<\/ol>\n\n\n<h3 class=\"wp-block-heading\">Sharing Pipeline<\/h3>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\">With all the security roles assigned we now need to ensure that the pipeline has been shared with our developers. <\/p>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\">Navigate to the Deployment Pipeline Configuration MDA. <\/p>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\">Select the Pipeline then select Share<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-10-1024x789.png\" alt=\"\"\/><\/figure>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\">I have shared my pipeline with all members of the environment and granted them only read access. I did this because all members of the environment are part of the development team, and therefore no additional security is required.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-11-1024x801.png\" alt=\"\"\/><\/figure>\n\n\n<h2 class=\"wp-block-heading\">Security role to add the data to the PM app<\/h2>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\">The last thing to do is to create two security roles within the development environment to provide CRUD to the project management application. <\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>From the Power Platform Admin Center Navigate to the Development Environment <\/li>\n\n\n\n<li>Select Security Roles\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-12.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Select the Basic User Role then Copy\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-13.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Name the Copied Security Role Power Platform Admins<\/li>\n\n\n\n<li>Copy the Basic User Role Again and Name it Power Platform Developers<\/li>\n\n\n\n<li>Navigate to the Power Platform Admins Security Role <\/li>\n\n\n\n<li>Select Show only unassigned tables then navigate the to Custom Tables drop down\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-14-1024x527.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Find the Power Platform Projects and the Power Platform Project Approvers tables and give the admins full CRUD rights to them\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-15-1024x65.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Select save then open up the Power Platform Developers Security role <\/li>\n\n\n\n<li>Select Show only unassigned tables then navigate the to Custom Tables drop down<\/li>\n\n\n\n<li>Find the Power Platform Projects and the Power Platform Project Approvers tables<\/li>\n\n\n\n<li>Give read only to the Approvers table<\/li>\n\n\n\n<li>Give Contributor to the Projects table\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-16-1024x57.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Save the role then navigate back to the solution in Development<\/li>\n\n\n\n<li>Select Add Existing Security Role, then add both roles to the solution\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-17.png\" alt=\"\"\/><\/figure>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-18-1024x304.png\" alt=\"\"\/><\/figure>\n<\/li>\n\n\n\n<li>Now as the solution is pushed through the pipeline you have the ability to add the security roles to whatever group needs it. Using Production as an example we have aligned the roles to the Admin and the developers teams. \n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/untitled-19-1024x609.png\" alt=\"\"\/><\/figure>\n<\/li>\n<\/ol>\n\n","protected":false},"excerpt":{"rendered":"<p>Access Control Before we get into the specific security roles, we need to define the Access Control to each Environment. The below diagram is an example for how I have fashioned it for my company. I am using O365 groups for ease of access and for future auditing, Creating Teams in an Environment Development Security [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":852,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,43,42,37],"tags":[],"class_list":["post-853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dataverse","category-environments","category-power-pipelines","category-security","entry","has-media"],"jetpack_featured_media_url":"https:\/\/automatethemundane.com\/wp-content\/uploads\/2024\/05\/photo-1582139329536-e7284fece509-scaled.jpg","_links":{"self":[{"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/posts\/853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/comments?post=853"}],"version-history":[{"count":1,"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/posts\/853\/revisions"}],"predecessor-version":[{"id":854,"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/posts\/853\/revisions\/854"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/media\/852"}],"wp:attachment":[{"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/media?parent=853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/categories?post=853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/automatethemundane.com\/index.php\/wp-json\/wp\/v2\/tags?post=853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}