【问题标题】:MassTransing SQS/SNS - how to enable encryption at rest on all topicsMassTransing SQS/SNS - 如何在所有主题上启用静态加密
【发布时间】:2021-07-30 20:10:38
【问题描述】:

我知道要为 SNS 主题启用静态加密,我需要添加这样的主题属性

cfg.Publish<SomeEvent>(p =>
{
    p.TopicAttributes.Add(QueueAttributeName.KmsMasterKeyId, "<key arn>");
});

但我遇到的问题是,我们使用非常简单的 aspnetcore 配置,使用 UsingAmazonSQS 和 cfg.ConfigureEndpoints(context) 自动执行所有这些配置,因此没有调用 cfg.Publish。这非常重要,因为我们有许多消息要配置。我相信可以通过注册 IConfigureReceiveEndpoint 的自定义实现来实现队列属性的相同功能,但我找不到主题的等效项。

如何继续使用自动方法并为所有主题添加此加密主题属性?

【问题讨论】:

  • 已添加,应该在最新的预发布包中。

标签: masstransit


【解决方案1】:

目前还没有一种方法可以将主题属性应用于所有主题,但这并不是不合理的添加请求。当然有人可以将其构建为拉取请求,添加到 Amazon SQS 的一般发布拓扑中。

更新

added the ability 指定根 PublishTopology 上的属性,这些属性应该应用于所有主题。

在代码中使用(来自下面的评论):

configure.UsingAmazonSqs((context, cfg) => 
{
   cfg.PublishTopology.TopicAttributes
       .Add(QueueAttributeName.KmsMasterKeyId, encryptionKeyArn); 

   cfg.ConfigureEndpoints(context);
});

【讨论】:

  • 感谢您,如果有人尝试使用此新功能(自 v7.2.2 起可用),请在此处提供更多详细信息 - 加密所有主题现在就像 configure.UsingAmazonSqs((context, cfg) =&gt; { cfg.PublishTopology.TopicAttributes.Add(QueueAttributeName.KmsMasterKeyId, encryptionKeyArn); cfg.ConfigureEndpoints(context); })
猜你喜欢
  • 2021-01-18
  • 2020-08-03
  • 2021-07-22
  • 2011-08-21
  • 1970-01-01
  • 2018-11-01
  • 2021-11-25
  • 2021-06-24
  • 2019-07-02
相关资源
最近更新 更多