如何解決將 Amazon RDS Proxy 連接至 Lambda 函數時出現的「Lambda 無法更新函數的執行角色」錯誤?

1 分的閱讀內容
0

嘗試將 Amazon RDS Proxy 連接至 AWS Lambda 函數時,我收到下列錯誤訊息: 「Lambda 無法更新函數的執行角色」。如何解決此錯誤?

簡短說明

基於下列原因,Lambda 可能會傳回 Lambda 無法更新函數的執行角色錯誤:

  • Lambda 執行角色具有多個與其相關聯的受信任實體。
  • Lambda 函數的執行角色連接 10 個政策。
  • 已登入 AWS Identity and Access Management (IAM) 的使用者沒有 "CreatePolicy""AttachRolePolicy" 權限。

解決方法

確認 Lambda 函數的執行角色只有一個與其相關聯的受信任實體

檢閱函數的執行角色,然後確認只有 Lambda 服務 (lambda.amazonaws.com) 可以擔任該角色。

**注意:**若要具有其他服務擔任的相同角色,請建立新角色並將那些服務設定為受信任實體。

驗證 Lambda 函數的執行角色沒有連接 10 個政策

檢閱函數的執行角色以確定是否連接 10 個政策。如果該角色的確連接 10 個政策,則 建立單一的自訂政策以取代現有的政策。

**注意:**如果執行角色連接了 10 個政策,則 Lambda 函數無法建立並連接必要的 RDS Proxy 政策至該角色。

範例 RDS Proxy 政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": "Proxy ARN"
        }
    ]
}

確認已登入的 IAM 使用者擁有 "CreatePolicy" 和 "AttachRolePolicy" 權限

檢閱已紀錄 IAM 使用者的 IAM 政策,然後確認該政策包括 "CreatePolicy""AttachRolePolicy" 權限。如果使用者的政策不包括必要權限,請授予使用者 "CreatePolicy" 和 "AttachRolePolicy" 權限

**注意:**如果已登入的 IAM 使用者沒有必要權限,Lambda 主控台即會顯示下列一或兩個錯誤:

  • 「使用者 <user-arn> 未授權在 resource: policy 執行:iam:CreatePolicy <policy-name>
  • 「使用者 <user-arn> 未授權在 resource: role 執行:iam:AttachRolePolicy <role-name>

 


AWS 官方
AWS 官方已更新 2 年前