如何为我的SNS主题启用HTTP/S传递日志记录



我有一个SQS主题,我想配置它来启用交付状态日志记录。

理想情况下,我希望将我的配置作为CloudFormation中的代码,但我想先尝试在UI中配置我的主题。

我的现有IAM角色包括以下政策文件:

- Effect: Allow
Action:
- "logs:*"
Resource: '*'

以下是我尝试的步骤(基于这些说明(:

  1. 在web UI中打开AWS SNS主题页面
  2. 打开我要编辑的SNS主题
  3. 单击编辑按钮
  4. 展开交付状态日志部分
  5. 选中HTTP/S复选框
  6. 成功采样率更改为100%
  7. 输入IAM角色ARN,用于具有上述成功和失败交付政策文件的角色
  8. 按下保存更改按钮

当我按下保存更改按钮时,我会收到以下错误消息:

无法设置传递状态日志记录错误代码:InvalidParameter-错误消息:为http的成功传递设置属性传递状态日志IAM角色时出错。无效参数:HTTPSuccessFeedbackRoleArn:不是允许SNS写入Cloudwatch日志的有效角色

我不明白为什么角色不允许SNS写入CloudWatch日志,因为我在IAM角色的策略中使用通配符操作logs:*

如何正确地为我的SNS主题启用HTTP/S传递日志记录?

正如@Riz所指出的,我不得不将IAM角色中的Service更改为sns.amazonaws.com

以下是CloudFormation中IAM角色的完整定义,该定义用于启用交付日志记录(尽管资源可能受到限制(:

snsIAMRole:
Type: "AWS::IAM::Role"
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service: sns.amazonaws.com
Action: "sts:AssumeRole"
Policies:
- PolicyName: test-policy-for-sns
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- "logs:*"
Resource: '*'

只需更改角色信任关系即可。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]}

相关内容

  • 没有找到相关文章

最新更新