我是AWS KMS(钥匙管理服务)的新手。
目前,我想创建一个启用服务器端加密(SSE)并将消息发布到订阅Amazon SQS队列的SNS。
Cloudformation的资源部分如下:(未显示CMK密钥和SNS Arn)
Resources:
MySNSTopic:
Type: AWS::SNS::Topic
Properties:
TopicName: !Ref TopicName
KmsMasterKeyId: (My_CMK_Key)
MySQS:
Type: AWS::SQS::Queue
Properties:
QueueName: "MySQS"
MySQSPermissions:
Type: AWS::SQS::QueuePolicy
Properties:
PolicyDocument:
Version: '2012-10-17'
Statement:
- Sid: MySQSPolicy
Effect: Allow
Principal: '*'
Action:
- sqs:SendMessage
Resource: !GetAtt MySQS.Arn
Condition:
ArnEquals:
aws:SourceArn: (My_SNS_ARN)
Queues:
- !Ref MySQS
MySQSSubscription:
Type: AWS::SNS::Subscription
Properties:
Protocol: sqs
Endpoint: !GetAtt MySQS.Arn
Region: !Ref AWS::Region
TopicArn: (My_SNS_ARN)
如您所见,只有SNS主题启用了SSE,但SQS只是订阅SNS主题。
当我试图将消息发布到SNS主题时。SQS队列(MySQS)可以成功接收消息,但其主体似乎未加密(仍为人类可读)。
{
"Type" : "Notification",
"MessageId" : (id),
"TopicArn" : (Arn),
"Subject" : "The message from SNS topic",
"Message" : "The message should be encrypted", // Looks like it is not encrypted?
"Timestamp" : "....",
"SignatureVersion" : "1",
"Signature" : (Signature string),
"SigningCertURL" : (Signing URL),
"UnsubscribeURL" : (Unscribed URL)
}
我的问题是:
Amazon SNS API已经通过安全HTTP(HTTPS)提供,并使用传输层安全(TLS)对传输中的所有消息进行加密。
本例中使用的KMS(SSE)是静态消息加密:“……消息以加密形式存储在多个可用性区域(AZ)中,以确保持久性,并在交付到订阅的endpoint之前解密,例如亚马逊简单队列服务(Amazon SQS)队列、AWS Lambda函数以及HTTP和HTTPS webhooks。”
长话短说,我们在这种情况下使用的CMK是“使所有消息在SNS中时都被加密”,而不是“加密传输中的消息”。
文件:https://aws.amazon.com/blogs/compute/encrypting-messages-published-to-amazon-sns-with-aws-kms/
我们配置了EC2实例,该实例具有对SQS和EC2的完全权限的IAM角色。有没有什么方法可以在没有AWS的任何SDK/CLI支持的情况下发送消息到队列?仅使用来自EC2实例的简单REST调用?
我创建了一个SNS主题,通过cli发布来自Cloudformation的所有信息。然而,当我检查队列时,它没有接收任何SNS消息。我通过订阅我的电子邮件来验证SNS是否正常工作,所以问题似乎出在队列和SNS之间的连接上。然而,我没有发现我的语法有任何问题。一、 据我所知,他们严格遵循了亚马逊的文档。 猛击:
我试图从一个Python 3.8Lambda函数发布到一个KMS加密的SNS主题。我的lambda的代码是: 如果SNS没有加密,代码可以完美地工作······ ...但是当我通过以下选项加密SNS主题时: 在执行lambda时,我得到以下错误: {“errorMessage”:“调用发布操作时发生错误(KMSNotFound):无效键号AWS/SNS(服务:AWSKMS;状态代码:400;错误代
我正在使用Amazon Textract的StartDocumentAnalysis函数异步扫描文件。S3存储桶中的pdf文件。正如文档所说,我应该会收到一份关于工作状态的通知,发送到提供的SNS主题。 返回用于获取操作结果的作业标识符(JobId)。当文本分析完成后,亚马逊文本将完成状态发布到您在中指定的亚马逊简单通知服务(Amazon SNS)主题。 我用来开始分析的代码如下: 我在AWS控制
我试图通过社交网络从亚马逊SES获得电子邮件回复(退回、投诉和交付)。在亚马逊SQS控制台上,我看到消息已经在队列中,所以我确信亚马逊上的结构设置是正确的。 然后,使用Laravel 5.5,按照官方指南,我设置了一个队列来听SQS。我跳过了将作业分配到队列的部分,因为这将由SNS完成。为了简单起见,在作业处理程序中,我只需要转储我收到的内容。作业如下所示: 其配置如下所示: 为安全起见,实际值隐
问题内容: 我正在尝试在办公室笔记本电脑上安装JDK,但是它说我需要管理员权限。我只能在工作中使用自己的帐户。 没有管理员权限的情况下如何安装Java开发套件? 问题答案: 这是一种在没有管理员特权或没有管理员密码的情况下安装Java的解决方法。为此,您需要安装不需要管理员特权的cygwin。在utils中,确保您选择cabextract.exe进行安装。 启动Cygwin Bash外壳。 键入c