Google cloud platform 在Pulumi中,当定义GCP CloudBuild触发器时,我应该使用什么作为托管机密的kmsKeyName?

Google cloud platform 在Pulumi中,当定义GCP CloudBuild触发器时,我应该使用什么作为托管机密的kmsKeyName?,google-cloud-platform,pulumi,Google Cloud Platform,Pulumi,我的目标是使用Pulumi创建GCP CloudBuild触发器。我正在使用Typescript客户端 当创建谷歌管理的秘密(与客户管理的秘密相反)时,我不使用KMS。 我应该在所需的(!)变量build.secrets[0].kmsKeyName中放入什么?在使用KMS时,这是微不足道的,但我发现在使用Google托管的机密运行触发器时,没有“默认”或“全局”KMS名称。我可以用一个“假”KMS名称创建触发器,但它没有运行,抱怨: 未能触发生成:generic::invalid_参数:无效生成

我的目标是使用Pulumi创建GCP CloudBuild触发器。我正在使用Typescript客户端

当创建谷歌管理的秘密(与客户管理的秘密相反)时,我不使用KMS。 我应该在所需的(!)变量build.secrets[0].kmsKeyName中放入什么?在使用KMS时,这是微不足道的,但我发现在使用Google托管的机密运行触发器时,没有“默认”或“全局”KMS名称。我可以用一个“假”KMS名称创建触发器,但它没有运行,抱怨:
未能触发生成:generic::invalid_参数:无效生成:无效机密:kmsKeyName”?在此处放置什么?“不是有效的KMS密钥资源

提前感谢您的建议

从“@pulumi/gcp”导入*作为gcp;
const ghToken=new gcp.secretmanager.Secret(“gh令牌”{
秘密:“gh代币”,
复制:{
自动:对,
},
})
const ghTokenSecretVersion=new gcp.secretmanager.SecretVersion(“秘密版本”{
秘密:ghToken.id,
秘密数据:“秘密令牌”,
});
const cloudBuild=new gcp.cloudBuild.Trigger(“触发器名称”{
github:{
所有者:“组织”,
名称:“回购协议名称”,
推送:{
分支:“^main$”
}
},
建造:{
替换:{
“\u服务\u名称”:“服务名称”,
“_DEPLOY_REGION”:“DEPLOY REGION”,
“\u GCR\u主机名”:“GCR.io”,
},
步骤:[
{
id:“构建”,
名称:“gcr.io/cloud builders/docker”,
入口点:“猛击”,
args:[
“-c”,
`docker构建--无缓存
-t$\u GCR\u主机名/$PROJECT\u ID/$REPO\u名称/$\u服务名称:$COMMIT\u SHA
--生成参数GH_令牌=$$GH_令牌
.
-f Dockerfile
`,
],
秘密:[“GH_代币”],
},
],
标签:[“我的标签”],
秘密:[
{
kmsKeyName:“在这里放什么?”,
秘密:{
“GH_令牌”:ghTokenSecretVersion.secretData
}
}
]
},
})

我不认为您可以通过Pulumi将
SecretManager
秘密用于云构建。我通过创建kms密钥并使用
gcp.kms.Ciphertext
加密我的数据来解决这个问题。下面是它的样子:

从“@pulumi/gcp”导入*作为gcp;
从“@pulumi/pulumi”导入*作为pulumi;
export const keyRing=新的gcp.kms.keyRing(“keyRing”{
地点:“全球”,
},{protect:true});
export const secretsEncryptionKey=new gcp.kms.CryptoKey(“秘密密钥”{
keyRing:keyRing.id,
旋转周期:“100000秒”,
},{protect:true});
const config=new pulumi.config();
export const githubTokenCiphertext=new gcp.kms.SecretCiphertext(“github令牌”{
加密密钥:secretsEncryptionKey.id,
明文:config.requireCret(“github令牌”),
});
const cloudBuild=new gcp.cloudBuild.Trigger(“触发器名称”{
github:{…},
建造:{
...,
秘密:[
{
kmsKeyName:githubTokenCiphertext.cryptoKey,
秘密:{
“GH_令牌”:githubTokenCiphertext.ciphertext,
}
}
]
},
})

就这样,谢谢!我以前尝试过用kms解决这个问题,但我对kmsKeyName使用了错误的值
githubTokenCiphertext.cryptoKey
是它所需要的,非常感谢您花时间编写代码✌️