无法让OpenSearch向亚马逊SNS发布警报



我在让OpenSearch向亚马逊SNS发布警报方面遇到了很大困难。我已经正确设置了SNS主题和权限,并根据这个链接在OpenSearch中为SNS目的地设置了角色,我称之为"测试OpenSearch角色",但当触发器激活并试图发送警报时,我在警报中收到以下错误:

"错误:运行操作失败:用户:arn:aws:sts::xxxxxxxxxxxx:假定角色/cp sts grant角色/swift-us-west-2-prod-xxxxxxxxxxxx未被授权执行:sts:资源上的假定角色:arn:aws:iam::xxxxxxxxxxxxx:角色/Test OpenSearch角色(服务:AWSSecurityTokenService;状态代码:403;错误代码:AccessDenied;请求ID:78e679a37373-4fe8-b1c1-a9b5d0d9dcda;代理:null(">

我不确定这个"用户:arn:aws:sts::xxxxxxxxxxxx:假定角色/cp sts授予角色/swift-us-west-2-prod-xxxxxxxxxxxx"是什么,我还无法获得它来获得"测试OpenSearch角色"中发布到SNS的权限。当涉及到角色的AWS内联策略时,我不是很有经验,但以下是测试OpenSearch角色的JSON:

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “sts:AssumeRole”,
“Resource”: “*"
},
{
“Effect”: “Allow”,
“Action”: “sns:Publish”,
“Resource”: "*”
}
]
}

我做错了什么?如有任何帮助或建议,我们将不胜感激。

我在尝试从OpenSearch(和Elastic Search(发送警报时收到了相同的错误消息。如上所述,我认为你的问题可能是缺乏信任关系。

我通过在OpenSearch/ElasticSearch上设置用于警报的角色(导航:Kibana/Dashboard=>alerting=>destinations=>edit(,并使用此策略发布到SNS:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "*"
}
]
}

(对于sns:publish policy上的资源,您可以通过放置sns ARN而不是"*"来更具体:例如arn:aws:sns:<region>:<accountnumber>:<name>(

我还必须将此政策添加到相同的角色中:

{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Resource": "*"
}
]
}

然后我需要";信任关系";(IAM中权限的下一个选项卡(如下:

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

此外,请确保将创建的角色中的正确ARN复制到OpenSearch(弹性搜索(警报设置中:我错误地将";实例配置文件ARN";从角色摘要的右上角开始;ARN";(在中间(。即使用arn:aws:iam::<accountnumber>:role/<rolename>而不是arn:aws:iam::<accountnumber>:instance-profile/<rolename>

我的错误信息是这样的:

User: arn:aws:sts::444444143907:assumed-role/cp-sts-grant-role/swift-eu-central-1-prod-005555733555 
is not authorized to perform: sts:AssumeRole on resource: 
arn:aws:iam::005555733555:role/<myrolename> 
(Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; 
Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx; Proxy: null)"

其中005555733555大约是我的帐号,444444 143907是其他帐号。我不需要对其他帐号做任何特别的事情(比如明确允许从它访问(

最新更新