这是由于AWS IAM用户(例如"cloudwatchuser")的权限不足,导致无法将事件推送到CloudWatchEvents中。
以下是解决方法的示例代码:
1)首先,为用户"cloudwatchuser"授予"events:PutEvents"操作的权限。您可以使用以下策略模板:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "events:PutEvents", "Resource": "*" } ] }
运行以下命令将这个策略与用户"cloudwatchuser"相关联:
aws iam put-user-policy --user-name cloudwatchuser --policy-name CloudWatchEventsPolicy --policy-document file://CloudWatchEventsPolicy.json
2)确认其运行的服务角色的权限,各个服务角色的权限不同。 例:Lambda服务角色
声明Lambda可以向CloudWatchEvents推送事件的权限,向Lambda服务角色添加AmazonEventBridgeFullAccess策略。 或者您可以使用以下策略模板将其添加到您的服务角色中:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "events:PutTargets", "events:DescribeRule", "events:ListRules", "events:PutRule", "events:RemoveTargets", "events:TestEventPattern" ], "Resource": [ "arn:aws:events:::rule/", "arn:aws:events:::target/" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::Your_Account_Number:role/Your_Role_Name" } ] }
将策略添加到服务角色中:
aws iam put-role-policy --role-name Your_Role_Name --policy-name CloudWatchAccess-Policy --policy-document file://"./CloudWatchEventsPolicy.json"
3)检查您的AWS键/密钥是否有CloudWatchEvents的正确权限,您可以为您的AWS凭据添加适当的IAM策略来授予"events:PutEvents"操作的权限。 例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "