(pipelines): Confirm permissions broadening before SelfMutate action
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 83
Description
As a security enhancement, give users the option to include a CodePipeline approval step prior to letting the pipeline mutate itself (and changing its security context).
Essentially, the mechanics should work exactly like the existing [confirm-permissions-broadening](https://docs.aws.amazon.com/cdk/api/latest/docs/pipelines-readme.html#confirm-permissions-broadening) approval gate.
The difference is rather than checking for target environment security changes, the new option would check for changes in the pipeline's security context (pipeline roles, security groups, etc.).
### Use Case
This feature would enhance security, by ensuring any change in the pipeline's security context must be approved by the right set of people.
### Proposed Solution
If possible, I would suggest exposing the UpdatePipeline stage (`Stage` and `StageDeployment` instances). This way, we could do:
```ts
pipeline.updatePipelineStageDeployment.addPre(
new ConfirmPermissionsBroadening('Check', { stage: pipeline.updatePipelineStage })
);
```
* [ ] :wave: I may be able to implement this feature request
* [ ] :warning: This feature might incur a breaking change
---
This is a :rocket: Feature Request
Contributor guide
Research direction
Start by reading the existing ConfirmPermissionsBroadening mechanism and the proposed updatePipelineStageDeployment, Stage, and StageDeployment entry points. Determine how a pre-approval gate would identify changes to the pipeline's security context; done means users can opt into approval before SelfMutate changes that context, with behavior matching the existing approval gate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- ci-cd, cloud, devops, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100