Azure devops 在azure devOps中部署项目期间编辑sql文件以保护凭据

Azure devops 在azure devOps中部署项目期间编辑sql文件以保护凭据,azure-devops,continuous-integration,continuous-deployment,snowflake-cloud-data-platform,Azure Devops,Continuous Integration,Continuous Deployment,Snowflake Cloud Data Platform,我正在为我的仓库snowflake使用一个用于部署模式的。我已经成功地完成了表、视图和过程。目前我面临一个问题,我必须以同样的方式部署雪花阶段。但当您在sql文件中定义它时,需要url和azure saas令牌,如下所示: CREATE or replace STAGE myStage URL = 'azure://xxxxxxxxx.blob.core.windows.net/' CREDENTIALS = ( AZURE_SAS_TOKEN = 'xxxxxxxxxxxxxxxxxxxx'

我正在为我的仓库snowflake使用一个用于部署模式的。我已经成功地完成了表、视图和过程。目前我面临一个问题,我必须以同样的方式部署雪花阶段。但当您在sql文件中定义它时,需要url和azure saas令牌,如下所示:

CREATE or replace STAGE myStage
URL = 'azure://xxxxxxxxx.blob.core.windows.net/'
CREDENTIALS = ( AZURE_SAS_TOKEN = 'xxxxxxxxxxxxxxxxxxxx' )
file_format = myFileFormat;

因为不鼓励在其他人将在版本控制和访问中发布的文件中使用您的凭据。azure devOps中是否有一种方法/任务可以让我只在repo中传递模板SQL文件,并在编译和执行(可能通过azure key vault)之前更改它,然后更改回模板?因此,这些凭证和令牌始终保持安全

您是否考虑过使用存储集成?如果使用存储集成凭据并将其授予Blob存储,则可以创建阶段对象,而无需传递任何凭据


对于此问题,您可以使用无凭据阶段来保护您的云存储,而无需共享机密

此处同意Mike,一种新的对象类型,允许雪花管理员在雪花和云提供商之间创建信任策略。当Snowflake连接到组织的云存储时,云提供商通过此信任策略验证和授权访问

存储集成和无凭据的外部阶段将以安全、可管理的方式连接到存储的能力交给了管理员。此功能现在在Snowflake中普遍可用


有关详细信息,请参阅此。此外,您还可以通过azure key vault,key vault为访问和存储机密提供了一个安全的场所。

这样,我也必须通过ci/cd进程部署存储集成,这将在我的sql文件中使用azure租户id,并进一步向其他人公开此信息。你认为,公开azure_租户_id安全吗?好吧,根据安全模型的复杂性,你可以预先创建一个集成对象,然后在您从ci/cd流程创建的所有阶段定义中使用该集成对象。在阅读了您共享的关于存储集成的文档和博客后,我同意了这一点。存储集成看起来很有希望,但我正在使用ci/cd管道和开源工具来完成所有这些。因此,我还必须在此过程中部署存储集成,在文档中提到的存储集成中,我必须在创建azure_租户_id。这也会暴露给其他人。公开azure\u租户\u id是否安全?