You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<b><u>Warning:</u> If you have a existing Policies, Initiatives and Assignments in your environment, do not forget to change the "brownfield" variable in the pipeline to true.<br/><br/><u>Why?</u> This solution uses the desired state strategy. It will remove any custom Policies, Initiatives or Policy Assignments not duplicated in the definition files. The Build-AzPoliciesInitiativesAssignmentsPlan.ps1 script's switch parameter SuppressDeletes changes this behavior. Set the "brownfield" variable in the pipeline to true; it will set the switch parameter preventing deletions of existing Policies, Initiatives and Policy Assignments while transitioning to Enterprise Policy as Code.</b>
36
+
<b><u>Warning:</u> If you have a existing Policies, Initiatives and Assignments in your environment, you have not transferred to EPAC, do not forget to change the "brownfield" variable in the pipeline to true.<br/><br/><u>Why?</u> This solution uses the desired state strategy. It will remove any custom Policies, Initiatives or Policy Assignments not duplicated in the definition files. The Build-AzPoliciesInitiativesAssignmentsPlan.ps1 script's switch parameter SuppressDeletes changes this behavior. Set the "brownfield" variable in the pipeline to true; it will set the switch parameter preventing deletions of existing Policies, Initiatives and Policy Assignments. This allows for a gradual transition from your existing Policy management to Enterprise Policy as Code.</b>
37
37
</p><br/>
38
38
39
39
## Security & Compliance for Cloud Infrastructure
@@ -69,10 +69,10 @@ Git lacks a capability to ignore files/directories during a PR only. This repo h
69
69
- You may add additional folders, such as a folder for your own operational scripts.
70
70
- Syncing from GitHub repo.
71
71
- Fetch changes from GitHub to `MyForkRepo`.
72
-
- Execute `Sync-Repo.ps1` to copy files from `MyForkRepo` to `MyWorkingRepo` feature branch.
72
+
- Execute [`Sync-Repo.ps1`](#sync-repops1) to copy files from `MyForkRepo` to `MyWorkingRepo` feature branch.
73
73
- PR `MyWorkingRepo` feature branch.
74
74
- Contribute to GitHub
75
-
- Execute `Sync-Repo.ps1` to copy files from `MyWorkingRepo` to `MyForkRepo` feature branch
75
+
- Execute [`Sync-Repo.ps1`](#sync-repops1) to copy files from `MyWorkingRepo` to `MyForkRepo` feature branch
76
76
- PR `MyForkRepo` feature branch.
77
77
- PR changes in your fork (`MyForkRepo`) to GitHub.
78
78
- GitHub maintainers will review PR.
@@ -173,19 +173,26 @@ Explanations
173
173
-`cloud` is used to select clouds (e.g., `AzureCloud`, `AzureUSGovernment`, `AzureGermanCloud`, ...).
174
174
-`tenantId` is the GUID of your Azure AD tenant
175
175
-`defaultSubscriptionId` is required to resolve Azure scopes correctly.
176
-
-`rootScope` defines the location of your custom Policy and Initiative definitions. It also denotes the highest scope for an assignment. The roles for the CI/CD SPNs must assigned here.
176
+
-`rootScope` defines the location of your custom Policy and Initiative definitions. It also denotes the highest scope for an assignment. The roles for the CI/CD SPNs must be assigned here.
177
177
178
178
We explain the `managedIdentityLocations` and `globalNotScopes` elements in `global-settings.jsonc`[here](Definitions/README.md).
179
179
180
+
<pstyle="background-color:Yellow;color:Black;border:5pxsolidRed;padding-left: 10px;padding-right: 10px;padding-top: 10px;padding-bottom: 10px;"><b><u>Note:</u> If the default output for az cli is configured wrong then you will encounter an unexpected error from ConvertFrom-Json in Invoke-AzCli. The initial default in az cli out-of-box is correct. You can set it back to the correct default with "az config set core.output=json"
181
+
</b></p><br/>
182
+
183
+
```ps1
184
+
az config set core.output=json
185
+
```
186
+
180
187
<br/>
181
188
182
189
### Azure DevOps CI/CD Pipeline
183
190
184
191
Setup your pipeline based on the provided starter kit pipeline. The yml file contains commented out sections to run in a IaaS Azure DevOps server (it requires a different approach to artifact storage) and for 2 additional tenants. Uncomment or delete the commented sections to fit your environment.
<b><u>Warning:</u>If you have a existing Policies, Initiatives and Policy Assignments in your environment, do not forget to change the "brownfield" variable in the pipeline to true.</b>
188
-
</p><br/>
194
+
<b><u>Warning:</u> If you have a existing Policies, Initiatives and Policy Assignments in your environment you have not transferred to EPAC, do not forget to change the "brownfield" variable in the pipeline to true.
195
+
</b></p><br/>
189
196
190
197
Pipelines can customized to fit your needs:
191
198
@@ -200,10 +207,14 @@ Pipelines can customized to fit your needs:
200
207
201
208
### Edit and create Policies, Initiatives and Assignments
202
209
203
-
Using the sttarter kit edit the directories in the `Definitions` folder
210
+
Using the starter kit edit the directories in the `Definitions` folder. To simplify entering parameters, you can use the [Initiative documenting feature](Definitions/DocumentationSpecs/README.md#documenting-assignments-and-initiatives) which creates Markdown, CSV and a Json parameter file. You need to specify your initiatives to be documented (folder [`Definitions\DocumentationSpecs`](Definitions/DocumentationSpecs/README.md#specifying-initiative-documentation)) and execute script [`./Scripts/Operations/Build-PolicyAssignmentDocumentation.ps1`](Scripts/Operations/README.md#build-policyassignmentdocumentationps1)
204
211
205
212
<br/>
206
213
214
+
### Document your Assignments
215
+
216
+
This solution can generate [documentation in markdown and csv formats](Definitions/DocumentationSpecs/README.md).
0 commit comments