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

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

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

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

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

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

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

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

次のことを実行する権限がない: 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 が委任した最初のユーザーおよびグループの作成」を参照してください 。

管理者であり、管理ポリシー AWS から非推薦の Lambda へ移行します

2021年1月25日以降 AWS 管理ポリシー AWSLambdaReadOnlyAccess AWSLambdaFullAccess は廃止となり、新しい 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 ユーザーガイド の「 ID アクセス権限の IAM 追加と削除 」を参照してください。

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

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

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

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

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