aws cdkを用いてlambda、dynamoDBをそれぞれ構築してlambdaからdynamodbへアクセスしようとしているのですが権限でのエラーが出てしまい、アクセスできません、
grantFullAccessでfullaccessをアタッチしてみましたが同様のエラーが出ました
どなたか教えていただけると幸いです。。
errorMessage
1"errorMessage": "An error occurred (AccessDeniedException) when calling the Query operation: User: arn:aws:sts::280246784662:assumed-role/TestCdkStack-RequestUpdaterLambdaServiceRole01F826-19EP06TZBKCXM/RequestUpdaterLambda_test_5 is not authorized to perform: dynamodb:Query on resource: arn:aws:dynamodb:ap-northeast-1:280246784662:table/ManagementRequestTable/index/StatusCreatedAt",
cdk
1const RequestUpdaterLambda = new PythonFunction(this, 'RequestUpdaterLambda', { 2 entry: './lambda/RequestUpdaterLambda', 3 functionName: `RequestUpdaterLambda`, 4 handler: 'lambda_handler', 5 runtime: Runtime.PYTHON_3_6, 6 memorySize: 256, 7 timeout: cdk.Duration.minutes(15), 8 layers: [LambdaLayerRequests] 9 }); 10 11DynamoDb.grantReadData(RequestUpdaterLambda); 12 13 14 const DynamoQueryRole = new PolicyStatement({ 15 actions: ['dynamodb:Query'], 16 resources: ['arn:aws:dynamodb:::*'], 17 }); 18 RequestUpdaterLambda.role?.attachInlinePolicy( 19 new Policy(this, 'queryDynamoPolicy', { 20 statements: [DynamoQueryRole], 21 }), 22 );
pythonCode
1 queryData = table.query( 2 IndexName="StatusCreatedAt", 3 KeyConditionExpression=Key('api_status').eq("WORKING") 4 ) 5 return queryData['Items']
ポリシー
{ "Version": "2012-10-17", "Statement": [ { "Action": "dynamodb:Query", "Resource": "arn:aws:dynamodb:::*", "Effect": "Allow" } ] }
あなたの回答
tips
プレビュー