在CDK控制台日志中隐藏CfOutput值



我在TypeScript CDK代码中使用CfAutoout,希望输出机密值,但同时将它们隐藏在控制台日志中。这就是我使用它们的方式:

const accessKey = new CfnAccessKey(this, 'testUserKey', {
userName: testUser.userName,
});
const accessKeyId = new CfnOutput(this, 'accessKey', { value: accessKey.ref });
const attrSecretAccessKey = new CfnOutput(this, 'secretAccessKey', { value: accessKey.attrSecretAccessKey });

有没有办法阻止CDK在控制台日志中显示它们?目前CDK在日志中显示如下:

Outputs:
stagingConsulComponents.accessKey = ADGHHBAS26TGDRGV
stagingConsulComponents.secretAccessKey = JKGHDJhdskjhfzhfsdjdafhJHJdd

我不认为CDK可以输出"敏感的";并且隐藏在控制台中,您可以使用sed作为第一个答案,这将解决问题。如果可以的话,我建议你将这些凭据推送到AWS机密管理器并提取它们,所以在这种情况下,你甚至不需要输出它们,它们永远不会是纯文本:

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_secretsmanager-readme.html

https://docs.aws.amazon.com/cdk/v2/guide/get_secrets_manager_value.html

似乎没有任何方法可以抑制这些值的输出。然而,sed的一点工作可以让你达到目标:

$ cdk deploy ... | sed -E "s/(accessKey) = (.*)$/1 = masked/" | sed -E "s/(secretAccessKey) = (.*)$/1 = masked/"

最新更新