准备部署 DevSecOps Apps Stack 解决方案
这种可部署架构旨在通过 IBM Cloud® 项目展示 Node 示例应用程序的全自动部署,为您在 IBM Cloud® 上部署自己的应用程序提供灵活、可定制的基础。 该架构默认部署一个示例应用程序,也可进行定制,以引入自己的应用程序。
利用这种架构,您可以确保部署的安全性,并对其进行定制,以满足您独特的业务需求和企业目标。
部署架构时,您可以
-
实现安全:架构通过部署 IBM Key Protect 和 IBM Secrets Manager 来确保安全。
-
实现合规性:通过实施一套 DevSecOps 持续集成 (CI)、持续部署 (CD) 和持续合规 (CC) 工具链,以及用于安全应用生命周期管理的 IBM Security and Compliance Center,确保合规性。
部署前
在部署 DevSecOps Solution for Apps Stack 之前,必须具备以下先决条件。
-
即用即付或订阅 IBM Cloud® 账户。
-
部署和管理账户资源所需的访问权限级别。
-
目标账户中具有足够权限的 IBM Cloud API 密钥。 请务必保存 API 密钥值,以便以后配置。
- 评估环境:如果您的环境用于评估,请在 IAM Identity Service****所有启用身份和访问的服务、Activity Tracker Event Routing 和所有账户管理服务。
- 生产环境:如果您的环境用于生产资源,请将访问权限限制为可部署架构目录条目的详细信息页面中“权限”选项卡所示的最低权限级别。
有关详细信息,请参阅 使用 Secrets Manager 中的 API 密钥授权项目部署架构。
-
可选:运行
ibmcloud plugin install project
命令安装 IBM Cloud® CLI 项目插件。 有关详细信息,请参阅 Project CLI 参考资料。 -
可选:熟悉 自定义选项。
您可能会在 IBM Cloud® 项目中看到新版本配置的通知。 您可以忽略这些信息,因为它们不会阻止您部署堆栈。 您无需采取任何具体行动。 这些通知是意料之中的,因为我们正在快速迭代底层组件的开发。 当新的堆栈版本出现时,底层组件的版本也会随之更新。
必需的输入变量
名称 | 描述 | Type | 缺省值 |
---|---|---|---|
region |
除 SCC 和 Event Notifications 外,所有资源都部署在该区域。 这些资源应单独设置,默认设置为 us-south。 | string |
us-south |
en-region |
提供事件通知实例的区域。 | string |
us-south |
scc-region |
配置 Security and Compliance Center 实例的区域。 | string |
us-south |
app_repo_existing_url |
通过提供 URL.NET Framework 2.0,您可以使用自己现有的应用程序资源库。 这将为您的应用程序库创建一个集成,而不是克隆默认示例。 存在于不同组织中的存储库需要使用 Git 令牌。 参见可选变量中的 app_repo_git_token_secret_name。 | string |
`` |
可选输入变量
名称 | 描述 | Type | 缺省值 |
---|---|---|---|
prefix |
在此变量中设置的值将作为创建的各种资源的前缀。 前缀和资源名称之间会自动插入一个连字符-作为分隔符。 | string |
devsecops |
resource_group_name |
创建所有资源的资源组名称。 | string |
devsecops |
bucket_name |
作为 DevSecOps 工具链的证据存储而创建的 Cloud Object Storage 桶的名称。 | string |
devsecops |
create_icr_namespace |
设为 true 可让 Terraform 创建注册表命名空间。 设置为 false 时,如果命名空间还不存在,CI 管道将创建该命名空间。 注意:如果使用 Terraform 销毁,ICR 命名空间和所有图像都将被移除。 | boolean |
true |
registry_namespace |
存储图像的注册表命名空间的名称。 | string |
devsecops |
create_cd_instance |
设为 true 可创建 Continuous Delivery 服务。 这是运行 DevSecOps 工具链管道和成功与 DevOps Insights 集成交互所必需的。 | boolean |
true |
pipeline_ibmcloud_api_key_secret_name |
Secrets Manager 中 IBM Cloud api 密钥的名称,用于运行管道。 | string |
ibmcloud-api-key |
ci_signing_key_secret_name |
签名密钥的名称(以 Secrets Manager 为单位),用于签名图像。 | string |
signing-key |
cd_code_signing_cert_secret_name |
Secrets Manager 中签名证书的名称,用于验证签名图像的完整性。 | string |
signing-certificate |
cos_api_key_secret_name |
Secrets Manager 中用于读取/写入证据桶的 Cloud Object Storage api 密钥名称。 | string |
cos-api-key |
sm_secret_group |
Secrets Manager 中创建的秘密组,其中包含 DevSecOps 工具链所需的秘密。 | string |
devsecops |
sm_service_plan |
Secrets Manager 的定价计划。 有试用版和标准版可供选择。 | string |
standard |
scc_service_plan |
Security and Compliance Center 的定价计划。 有试用版和标准版可供选择。 | string |
standard |
use_existing_resource_group |
设置为 true 将把 resource_group_name 视为现有资源组。 设置 false 将根据 resource_group_name 中的值配置新的资源组。 | string |
devsecops |
app_repo_branch |
这是默认示例应用程序使用的版本库分支。 或者,如果提供了 app_repo_existing_url,则分支必须反映该版本库的默认分支。 这些分支通常是主分支或主分支。 | string |
main |
app_repo_git_token_secret_name |
用于访问示例(或自带)应用程序存储库的 Git 令牌密文的密文提供者名称 | string |
`` |
project_names |
要添加 IBM Cloud Code Engine 的项目名称。 | array |
["CI_Project","CD_Project"] |
existing_secrets_manager_crn |
现有 Secrets Manager 实例的 CRN | string |
`` |
autostart |
设为 true 可自动运行 CI 管道。boolean |
false |
|
create_git_token |
设置为 true 时,将使用 repo_git_token_secret_name 中设置的名称和 repo_git_token_secret_value 中设置的值,在指定的 Secrets Manager 中创建 Git Token secret。 | boolean |
false |
repo_apply_settings_to_compliance_repos |
设置为 true 可将相同设置应用于所有默认合规性存储库。 设置为 false 可将这些设置仅应用于示例应用程序、管道配置和部署存储库。 |
boolean |
false |
repo_git_token_secret_name |
Secrets Manager 中 Git 令牌秘密的名称。 | string |
`` |
repo_git_token_secret_value |
Git 令牌密文的值,如果 create_git_token 设置为 true,则会创建该密文。 | string |
`` |
repo_group |
配置 Security and Compliance Center 实例的区域。 | string |
us-south |
repo_git_provider |
通过提供 URL.NET Framework 2.0,您可以使用自己现有的应用程序资源库。 这将为您的应用程序库创建一个集成,而不是克隆默认示例。 存在于不同组织中的存储库需要使用 Git 令牌。 参见可选变量中的 app_repo_git_token_secret_name。 | string |
us-south |
repo_title |
除 SCC 和 Event Notifications 外,所有资源都部署在该区域。 这些资源应单独设置,默认设置为 us-south。 | string |
us-south |
repo_root_url |
提供事件通知实例的区域。 | string |
us-south |
repo_blind_connection |
配置 Security and Compliance Center 实例的区域。 | string |
us-south |
repo_git_id |
通过提供 URL.NET Framework 2.0,您可以使用自己现有的应用程序资源库。 这将为您的应用程序库创建一个集成,而不是克隆默认示例。 存在于不同组织中的存储库需要使用 Git 令牌。 参见可选变量中的 app_repo_git_token_secret_name。 | string |
us-south |
evidence_repo_existing_url |
除 SCC 和 Event Notifications 外,所有资源都部署在该区域。 这些资源应单独设置,默认设置为 us-south。 | string |
us-south |
issues_repo_existing_url |
提供事件通知实例的区域。 | string |
us-south |
inventory_repo_existing_url |
配置 Security and Compliance Center 实例的区域。 | string |
us-south |
cd_deployment_repo_existing_url |
通过提供 URL.NET Framework 2.0,您可以使用自己现有的应用程序资源库。 这将为您的应用程序库创建一个集成,而不是克隆默认示例。 存在于不同组织中的存储库需要使用 Git 令牌。 参见可选变量中的 app_repo_git_token_secret_name。 | string |
us-south |
change_management_existing_url |
除 SCC 和 Event Notifications 外,所有资源都部署在该区域。 这些资源应单独设置,默认设置为 us-south。 | string |
us-south |
create_triggers |
提供事件通知实例的区域。 | string |
us-south |
create_git_triggers |
配置 Security and Compliance Center 实例的区域。 | string |
us-south |
compliance_pipeline_repo_use_group_settings |
通过提供 URL.NET Framework 2.0,您可以使用自己现有的应用程序资源库。 这将为您的应用程序库创建一个集成,而不是克隆默认示例。 存在于不同组织中的存储库需要使用 Git 令牌。 参见可选变量中的 app_repo_git_token_secret_name。 | string |
us-south |
compliance_pipeline_repo_git_provider |
除 SCC 和 Event Notifications 外,所有资源都部署在该区域。 这些资源应单独设置,默认设置为 us-south。 | string |
us-south |
compliance_pipeline_repo_git_id |
提供事件通知实例的区域。 | string |
us-south |
compliance_pipeline_existing_repo_url |
配置 Security and Compliance Center 实例的区域。 | string |
us-south |
add_pipeline_definitions |
通过提供 URL.NET Framework 2.0,您可以使用自己现有的应用程序资源库。 这将为您的应用程序库创建一个集成,而不是克隆默认示例。 存在于不同组织中的存储库需要使用 Git 令牌。 参见可选变量中的 app_repo_git_token_secret_name。 | string |
us-south |
create_privateworker_secret |
除 SCC 和 Event Notifications 外,所有资源都部署在该区域。 这些资源应单独设置,默认设置为 us-south。 | string |
us-south |
enable_privateworker |
提供事件通知实例的区域。 | string |
us-south |
privateworker_credentials_secret_name |
配置 Security and Compliance Center 实例的区域。 | string |
us-south |
privateworker_secret_value |
通过提供 URL.NET Framework 2.0,您可以使用自己现有的应用程序资源库。 这将为您的应用程序库创建一个集成,而不是克隆默认示例。 存在于不同组织中的存储库需要使用 Git 令牌。 参见可选变量中的 app_repo_git_token_secret_name。 | string |
us-south |
创建 IBM Cloud® API 密钥,并赋予其创建可部署架构的权限
创建 IBM Cloud® API 密钥
根据您的 IBM Cloud 账户类型,访问某些资源可能会受到限制。 根据您的账户计划限制,某些 DevSecOps 工具链需要的某些功能可能无法使用。 有关更多信息,请参阅 设置您的 IBM Cloud 帐户 和 升级您的帐户。
创建 IBM Cloud® 受信任配置文件,并赋予其创建可部署架构的权限
创建 IBM Cloud® 受信任档案