Tuesday, July 20, 2021

 

Proper authorization of services onboarded for deployment.

Context:

The installer platform for services in a cloud, builds them out one after another and adds permissions required for those services so that they are ready. One of the most common permissions granted are those for deployment and storage. As the permissions are granted and the service enabled, an approval request is generated to allow the Service Admin for those services to register the new deployment of their service instance. This addition is then blessed with the help of a Security configuration dashboard to allow the new instance to be recognized, discovered, and used. This article investigates the work items needed to help with automation so that the deployment can scale to all the services.

Requirement:

The tasks begin with a script to add permissions via role assignments where pre-existing roles are defined to secure new instances so that they may proceed with deployment and storage tasks. In addition to the role-based access controls, whitelisting of appropriate folders might be required from the operational side to permit authorized services selectively.

The whitelists and the role-based assignments might both be necessary since they complement each other in the current state of deployment logic and only the operator can take steps to permit service on a case-by-case basis. Usually new regions onboard services but the operator might decide to allow one to work until another one is ready, so whitelisting provides that granularity.

The action items are listed as follows:

1.      Add the storage permission to the instance via role-based assignment.

2.      Add the deployment permission to the instance via role-based assignment.

3.      Whitelist the new instance in the root folders.

4.      Generate an approval request for the service administration.

Even with the approval service integration, it might require manual operation to complete the approval but the request for the approval can now be automated. If a link is generated that can automatically allow the deployment to proceed with the click of the link, it must have sufficient and irrefutable proof that it was indeed issued by the sender. A JWT token might be helpful in this regard.

Observations:

The following are not in scope for this automation proposal:

1.      Any telemetry associated with those that use the current automation

2.      Any telemetry associated with those that will use the proposed automation proposal.

3.      A mechanism to pass the identifier for the new instance to the platform that drives the buildout of services.

4.      Changes to individual buildouts for deployment of services.

Tradeoffs:

This change is a suitable candidate for taking it on the platform side because it is not specific to any one buildout. The other option is to have this whitelist+role-assignment+approval request logic to be taken on the service buildout side but that will only be on a participation basis. Without the telemetry or enforcement mechanisms, it's hard to say whether this will be beneficial and cost-effective. Also, it is possible to one-point maintenance on the platform side.

Conclusion:

This change can be made by taking the mentioned work items on the platform side with the addition of a workflow or sub-workflows for whitelist+role-assignment+approval request raising steps.

No comments:

Post a Comment