AWS Lambda Identity and Access のトラブルシューティング - AWS Lambda

AWS Lambda Identity and Access のトラブルシューティング

次の情報は、Lambda と IAM の使用に伴い発生する可能性のある、一般的な問題の診断や修復に役立ちます。

Lambda でアクションを実行する権限がない

AWS Management Console から、アクションを実行する権限がないと通知された場合、管理者に問い合わせ、サポートを依頼する必要があります。お客様のユーザー名とパスワードを発行したのが、担当の管理者です。

以下の例のエラーは、mateojackson IAM ユーザーがコンソールを使用して、関数の詳細を表示しようとしているが、lambda:GetFunction アクセス許可がない場合に発生します。

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: lambda:GetFunction on resource: my-function

この場合、Mateo は、my-function アクションを使用して lambda:GetFunction リソースにアクセスできるように、ポリシーの更新を管理者に依頼します。

iam:PassRole を実行する権限がない

iam:PassRole アクションを実行する権限がないというエラーが表示された場合、管理者に問い合わせ、サポートを依頼する必要があります。お客様のユーザー名とパスワードを発行したのが、担当の管理者です。管理者に、Lambda にロールを渡すことを許可するようにポリシーを更新することを要請します。

一部の AWS サービスでは、新しいサービスロールまたはサービスにリンクされたロールを作成せずに、既存のロールをサービスに渡すことができます。そのためには、サービスにロールを渡すアクセス許可が必要です。

以下の例のエラーは、marymajor という IAM ユーザーがコンソールを使用して Lambda でアクションを実行しようすると、発生します。ただし、アクションでは、サービスロールによって付与された許可がサービスにある必要があります。メアリーには、ロールをサービスに渡すアクセス許可がありません。

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

この場合、メアリーは担当の管理者に iam:PassRole アクションを実行できるようにポリシーの更新を依頼します。

アクセスキーを表示する場合

IAM ユーザーアクセスキーを作成した後は、いつでもアクセスキー ID を表示できます。ただし、シークレットアクセスキーをもう一度表示することはできません。シークレットアクセスキーを紛失した場合は、新しいキーペアを作成する必要があります。

アクセスキーは、アクセスキー ID (AKIAIOSFODNN7EXAMPLE など) とシークレットアクセスキー (wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY など) の 2 つの部分から構成されます。ユーザー名とパスワードと同様に、リクエストを認証するために、アクセスキー ID とシークレットアクセスキーの両方を使用する必要があります。ユーザー名とパスワードと同様に、アクセスキーをしっかり管理してください。

重要

正規ユーザー ID を確認するためであっても、アクセスキーをサードパーティーに提供しないでください。提供すると、第三者がアカウントへの永続的アクセスを取得する場合があります。

アクセスキーペアを作成する場合、アクセスキー ID とシークレットアクセスキーを安全な場所に保存するように求めるプロンプトが表示されます。このシークレットアクセスキーは、作成時にのみ使用できます。シークレットアクセスキーを紛失した場合、新しいアクセスキーを IAM ユーザーに追加する必要があります。最大 2 つのアクセスキーを持つことができます。すでに 2 つある場合は、新しいキーペアを作成する前に、いずれかを削除する必要があります。手順を表示するには、IAM ユーザーガイドの「アクセスキーの管理」を参照してください。

管理者として Lambda へのアクセスを他のユーザーに許可したい

Lambda へのアクセスを他のユーザーに許可するには、アクセスを必要とする人またはアプリケーションの IAM エンティティ (ユーザーまたはロール) を作成する必要があります。ユーザーは、このエンティティの認証情報を使用して にアクセスしますAWS 次に、Lambda の適切なアクセス許可を付与するポリシーを、そのエンティティにアタッチする必要があります。

すぐに開始するには、IAM ユーザーガイドの「IAM が委任した最初のユーザーおよびグループの作成」を参照してください。

私は管理者ですが、非推奨になる、Lambda の AWS マネージドポリシーから移行したいと考えています。

2021 年 3 月 1 日を過ぎると、AWS マネージドポリシーである AWSLambdaReadOnlyAccessAWSLambdaFullAccess は非推奨となり、新しい IAM ユーザーにアタッチできなくなります。ポリシーの非推奨に関する詳細は、IAM ユーザーガイド非推奨の AWS マネージドポリシーを参照してください。

Lambda に、新しい 2 つの AWS マネージドポリシーが導入されました。

  • AWSLambda_ReadOnlyAccess ポリシーは、Lambda、Lambda のコンソール機能、およびその他関連する AWS サービスへの読み取り専用のアクセスを許可します。このポリシーは、以前のポリシー AWSLambdaReadOnlyAccess をスコープダウンすることによって作成されました。

  • AWSLambda_FullAccess ポリシーは、Lambda、Lambda のコンソール機能、およびその他関連する AWS サービスへの完全なアクセスを許可します。このポリシーは、以前のポリシー AWSLambdaFullAccess をスコープダウンすることによって作成されました。

AWS 管理ポリシーの使用

新たに導入された管理ポリシーを使用して、Lambda にユーザー、グループ、およびロールへのアクセス権を付与することをお勧めします。ただし、ポリシーで付与されたアクセス許可を確認し、要件が満たされていることを確認してください。

  • AWSLambda_ReadOnlyAccess ポリシーのアクセス許可を確認するには、IAM コンソールの AWSLambda_ReadOnlyAccess ポリシーページを参照してください。

  • AWSLambda_FullAccess ポリシーのアクセス許可を確認するには、IAM コンソールの AWSLambda_FullAccess ポリシーページを参照してください。

アクセス許可を確認したら、IAM ID(グループ、ユーザー、ロール)にポリシーをアタッチできます。AWS マネージドポリシーをアタッチする方法については、IAM ユーザーガイドIAM ID アクセス権限の追加と削除を参照してください。

カスタマー管理ポリシーの使用

より詳細なアクセス制御が必要な場合、またはアクセス許可を追加する場合は、独自の カスタマー管理ポリシー を作成できます。詳細については、IAM ユーザーガイドJSON タブでのポリシーの作成を参照してください。

自分の AWS アカウント以外のユーザーに Lambda リソースへのアクセスを許可したい

他のアカウントのユーザーや組織外のユーザーが、リソースへのアクセスに使用できるロールを作成できます。ロールを引き受けるように信頼されたユーザーを指定することができます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。

詳細については、以下を参照してください。