Amazon RDS プロキシを Lambda 関数にアタッチするときに発生する「Lambda could not update the function's execution role」(Lambda が関数の実行ロールを更新できませんでした) というエラーを解決するにはどうすればよいですか?

所要時間1分
0

Amazon RDS Proxy を AWS Lambda 関数にアタッチしようとすると、「Lambda could not update the function's execution role」(Lambda が関数の実行ロールを更新できませんでした) というエラーメッセージが表示されます。どうすればこのエラーを解決できますか?

簡単な説明

次の理由により、Lambda から**「Lambda could not update the function's execution role」(Lambda が関数の実行ロールを更新できませんでした)** というエラーが返されることがあります。

  • Lambda の実行ロールに、複数の信頼されたエンティティが関連付けられている。
  • Lambda 関数の実行ロールに、10 個のポリシーがアタッチされている。
  • ログインしている AWS Identity and Access Management (IAM) ユーザーに、**「CreatePolicy」および「AttachRolePolicy」**アクセス許可がない。

解決方法

Lambda 関数の実行ロールに、信頼されたエンティティが 1 つだけ関連付けられていることを確認する

関数の実行ロールを見直し、Lambda サービス (lambda.amazonaws.com) だけがロールを引き受けることができることを確認します。

注: 他のサービスで同ロールを引き受けるには、新しいロールを作成し、そのサービスを信頼されたエンティティとして設定します。

Lambda 関数の実行ロールに 10 個のポリシーがアタッチされていないことを確認する

関数の実行ロールを確認して、10 個のポリシーがアタッチされているかどうかを判断します。ロールに 10 個のポリシーがアタッチされている場合は、 既存のポリシーを置き換えるカスタムポリシーを 1 つ作成します

注: 実行ロールに 10 個のポリシーがアタッチされている場合、Lambda 関数は必要な RDS プロキシポリシーを作成してロールにアタッチすることができません。

RDS プロキシポリシーの例

{
    "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 <user-arn> is not authorized to perform: iam:CreatePolicy on resource: policy <policy-name>
  • 「User <user-arn> is not authorized to perform: iam:AttachRolePolicy on resource: role <role-name>

 


AWS公式
AWS公式更新しました 3年前