람다에서 SNS 주제를 만들고 메시지를 게시하려하고 있습니다. 하지만 메신저 권한 부여 오류가 그것을하려고 할 때.오류 코드 : AmazonSNS의 AuthorizationError
Service: AmazonSNS; Status Code: 403; Error Code: AuthorizationError
전체 예외 내 샘 템플릿
private AmazonSNSClient snsClient =(AmazonSNSClient)AmazonSNSClient.builder().build();
snsClient.publish(new PublishRequest(System.getenv(“SNS_TOPIC_ARN
”),”Test”));
그것의 가능이
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
EventListenFunction:
Type: AWS::Serverless::Function
Properties:
Handler: event.lambda.EventHandler::handleRequest
Role: !Sub arn:aws:iam::${AWS::AccountId}:role/AWSLambdaVPCAccessExecutionRole
FunctionName: lambda-event-$ENVNAME
Runtime: java8
VpcConfig:
SecurityGroupIds:
- !ImportValue LambdaVPCSecurityGroup
SubnetIds:
- !ImportValue VsolPublicSubnetAz1
- !ImportValue VsolPublicSubnetAz2
Environment:
Variables:
SNS_TOPIC_ARN: !Ref Topic
Events:
GetResource:
Type: Api
Properties:
Path: /event/{Id}
Method: post
Policies:
Statement:
- Effect: Allow
Action: sns:Publish
Resource: !Ref Topic
Topic:
Type: "AWS::SNS::Topic"
Properties:
DisplayName: "events"
TopicName: "events"
보내기 SNS 알림과 같은
com.amazonaws.services.sns.model.AuthorizationErrorException: User: arn:aws:sts::166916908689:assumed-role/AWSLambdaVPCAccessExecutionRole/lambda-event-common-test is not authorized to perform: SNS:Publish on resource: arn:aws:sns:eu-west-1:166916908689:events (Service: AmazonSNS; Status Code: 403; Error Code: AuthorizationError; Request ID: 9266e536-baa4-55d1-b277-b766f5536b70)
은 모든 사용자가 SNS의 주제를 게시 할 수 있도록 ~을 사용하여 콘솔. 메신저 템플릿을 사용하여 그것을 할 방법을 찾고 있어요.
감사
당신은 람다 기능에 할당 한 역할에 어떤 권한이 있습니까? 또한, 당신의 람다 함수에서 어떤 라인이 그 에러를 발생 시켰습니까? –
@JohnRotenstein 답변 해 주셔서 감사합니다. 허가 역할을 할 때,이 권한이 있습니까? 그 외에는 sam 템플릿에 아무 것도 언급하지 않았습니다. "역할 :! sub arn : aws : iam :: $ {AWS :: AccountId} : role/AWSLambdaVPCAccessExecutionRole. sns 알림을 보내는 데 사용하는 코드를 추가했습니다. " – Dilantha