RDS プロキシを Lambda 関数にアタッチするときに発生する、「Lambda が関数の実行ロールを更新できませんでした」というエラーを解決するにはどうすればよいですか?

最終更新日: 2020 年 10 月 21 日

Amazon RDS Proxy を AWS Lambda 関数にアタッチする際、「Lambda は関数の実行ロールを更新できませんでした」というエラーが表示されます。この問題を解決する方法を教えてください。

簡単な説明

「Lambda は関数の実行ロールを更新できませんでした」エラーは、次の 3 つの理由で発生する可能性があります。

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

解決方法

Lambda の実行ロールに、複数の信頼されたエンティティが関連付けられている

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

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

Lambda 関数の実行ロールに、10 個のポリシーがアタッチされている

1 つのカスタムポリシーを作成して、既存のポリシーを置き換えます。

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

RDS プロキシポリシーの例
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": "Proxy ARN"
        }
    ]
}

ログインした IAM ユーザーには、「CreatePolicy」および「AttachRolePolicy」アクセス許可がない

ログインした IAM ユーザーに「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>」

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?