改用 PostgreSQL 當成資料儲存空間, Lambda 的部分需要修改,可透過 RDS Data API 存取 Aurora PostgreSQL 。
原本的 Lambda IAM policy(DynamoDB), 設定了對 DynamoDB 的 CRUD 權限。
Policies:
- PolicyName: DynamoDBAccess
PolicyDocument:
Statement:
- Effect: Allow
Action:
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:GetItem
- dynamodb:Query
- dynamodb:Scan
Resource: !GetAtt AdClickTable.Arn
因為要資料庫帳密放在 Secrets Manager 和要使用 RDS Data API 存取 Aurora PostgreSQL ,所以需要加上下面的權限。
Policies:
- PolicyName: RDSDataAPIAccess
PolicyDocument:
Statement:
- Effect: Allow
Action:
- rds-data:ExecuteStatement
- rds-data:BatchExecuteStatement
- rds-data:BeginTransaction
- rds-data:CommitTransaction
- rds-data:RollbackTransaction
Resource: !GetAtt AuroraCluster.DBClusterArn
- PolicyName: SecretsManagerAccess
PolicyDocument:
Statement:
- Effect: Allow
Action:
- secretsmanager:GetSecretValue
- secretsmanager:DescribeSecret
Resource: !Ref DBSecret
今天就先說權限如何調整,明天再來說程式碼和測試。