Preparing to deploy the DevSecOps Solution for Apps Stack
The deployable architecture is designed to showcase a fully automated deployment of a sample node application through IBM Cloud® Projects. It provides a flexible and customizable foundation for your own application deployments on IBM Cloud. The architecture deploys a sample application by default or you can customize to bring your own application.
By using this architecture, you can customize deployments to meet your unique business needs and enterprise goals. You can ensure the following when you deploy the architecture.
-
Implement security: The architecture helps ensure security by deploying IBM® Key Protect and IBM Cloud® Secrets Manager.
-
Achieve Regulatory Compliance: Ensures regulatory compliance by implementing a set of DevSecOps Continuous Integration (CI), Continuous Deployment (CD), and Continuous Compliance (CC) toolchains, along with IBM Cloud® Security and Compliance Center for secure application lifecycle management.
Before you deploy
The following prerequisites must be completed before you deploy the DevSecOps Solution for Apps Stack.
-
A Pay-As-You-Go or Subscription IBM Cloud® account.
Don't have one? Create one. Have a trial or Lite account? Upgrade your account.
-
The required level of access to deploy and manage resources in the account.
-
An IBM Cloud API Key in the target account with the sufficient permissions. Be sure to save the API key value for a later configuration.
-
Evaluation environments: Evaluates your environment is used for evaluating, grant an Administrator role on the IAM Identity Service, All Identity and Access enabled services, Activity Tracker Event Routing and All Account Management services.
-
Production environments: Evaluates your environment is used for production resources, restrict access to the minimum permissions level as indicated in the Permissions tab of the details page of the deployable architecture catalog entry.
For more information, see Using an API key with Secrets Manager to authorize a project to deploy an architecture.
-
Optional: Install the IBM Cloud CLI project plug-in by running the
ibmcloud plugin install project
command. For more information, see the Project CLI reference. -
Optional: Familiarize yourself with the Customization options.
You might see notifications in IBM Cloud projects that new versions of a configuration are available. You can ignore these messages because they do not prevent you from deploying the stack. No specific action is required from you. These notifications are expected, as we are rapidly iterating on the development of the underlying components. As new stack versions become available, the versions of the underlying components are also updated.
Deployments
The DevSecOps Solution for Apps Stack is highly configurable and allows for the reuse of existing services. By default, it deploys the DevSecOps CI, CD, and CC toolchains and all the required IBM Cloud services to support the operations of these toolchains.
Required permissions
The following tables outline the permissions required for an administrator
to successfully run the DevSecOps Solution for Apps Stack.
-
The most permissive set of permissions allows for the creation of a resource group as well as service IDs for pipeline operations.
-
These permissions can be reduced by scoping the access to an existing resource group in which to deploy the resources.
-
The suggested configuration of the DevSecOps Solution stack is for the creation of service IDs to run the pipelines and an access group for adding developers, or users.
-
By default the DevSecOps Solution for Apps Stack creates the service IDs. It is the requirement to provide a Git personal access token as a service ID is unable to access the repositories. Configuring the repository tool integrations with a Git personal access token is recommended configuration.
-
An added benefit of using the service ID is that Secrets Manager can rotate the service API keys secrets that are associated with the service IDs automatically.
-
This rotation period is set to 90 days by default. Alternatively, instead of using a service API key that is linked to a service ID, a standard API key can be created for running the pipelines. The access for this key should be scoped by using an access group.
The API key is used for running the pipelines that can be created either as a service API key or a standard API key. The API key that is created for accessing the Cloud Object Storage bucket is a service API key only. Auto rotation of the standard API setup is not supported.
-
Permissions for creating service IDs are higher due to the need to create service authorizations. The tables have columns for
Role (Service IDs)
andRole (Standard api key)
that highlights the different access requirements for setting up service IDs as opposed to create a standard API key.
Administrator role for full deployment
Following are the access permissions that an administrator needs to create all the resources.
Services | Resources | Role (Service IDs) | Role (Standard api key) |
---|---|---|---|
Toolchain |
All |
Administrator |
Editor |
Continuous Delivery |
All |
Administrator |
Editor |
Container Registry |
All |
Administrator |
Editor |
Secrets Manager |
All |
Manager , Administrator |
Manager , Administrator |
Cloud Object Storage |
All |
Manager ,Administrator |
Manager ,Administrator |
Code Engine or Kubernetes Service |
All |
Administrator |
Editor |
Event Notifications |
All |
Administrator |
Editor |
User Managment |
All |
Administrator |
Editor |
IAM Access Groups Service |
All |
Administrator |
Editor |
IAM Identity Service |
All |
Administrator |
Administrator |
Security and Compliance Center |
All |
Manager , Administrator |
Manager , Editor |
Key Protect |
All |
Manager , Editor |
Manager , Editor |
All Identity and Access enabled services |
All |
Reader |
Reader |
Resource Group |
All |
Administrator |
Editor |
Administrator role for deployment using an existing resource group
Following are the access permissions that are required for the resources with an existing resource group.
The name of the resource group for the purposes of the example is named my-resource-group
Services | Resources | Role (Service IDs) | Role (Standard api key) |
---|---|---|---|
Toolchain |
scoped tomy-resource-group resource group |
Administrator |
Editor |
Continuous Delivery |
scoped tomy-resource-group resource group |
Administrator |
Editor |
Container Registry |
All |
Administrator |
Manager |
Secrets Manager |
scoped tomy-resource-group resource group |
Manager , Administrator |
Manager , Administrator |
Cloud Object Storage |
scoped tomy-resource-group resource group |
Manager ,Administrator |
Manager ,Administrator |
Code Engine or Kubernetes Service |
scoped tomy-resource-group resource group |
Administrator |
Editor |
Event Notifications |
scoped tomy-resource-group resource group |
Administrator |
Editor |
User Managment |
All |
Administrator |
Editor |
IAM Access Groups Service |
All |
Administrator |
Editor |
IAM Identity Service |
All |
Administrator |
|
Security and Compliance Center |
scoped tomy-resource-group resource group |
Manager , Administrator |
Manager , Editor |
Key Protect |
scoped tomy-resource-group resource group |
Manager , Editor |
Manager , Editor |
Resource Group |
scoped tomy-resource-group resource group |
Administrator |
Editor |
What's Next?
Now that you successfully completed the prerequisties to deploy the DevSecOps Solution for Apps Stack, you can now Deploy the DevSecOps Solution for Apps Stack.