Lambda が作成した Elastic ネットワークインターフェイスをデタッチまたは削除できないのはなぜですか?

所要時間2分
1

AWS Lambda が作成したエラスティックネットワークインターフェイスをデタッチまたは削除しようとすると、次のエラーメッセージが表示されます。 「「ela-attach」添付ファイルの管理は許可されていません」

簡単な説明

Amazon Virtual Private Cloud (Amazon VPC) 内のリソースにアクセスするように Lambda 関数を設定すると、Lambda はその関数をネットワークインターフェイスに割り当てます。このネットワークインターフェイスは Lambdaサービスを介してのみ削除できます。ネットワークインターフェイスが表すリソースを削除すると、Lambda は自動的にネットワークインターフェイスをデタッチして削除します。未使用のネットワークインターフェイスを削除するには、Lambda サービスはネットワークインターフェイスを作成した関数の実行ロールを使用します。

ネットワークインターフェイスは、それらを作成した関数と同じ Amazon VPC 設定の関数または関数バージョンで使用される場合があります。この場合、ネットワークインターフェイスは削除できません。

現在ネットワークインターフェイスを使用している関数または関数バージョンを確認するには、GitHub の Lambda ENI Finder bash スクリプトを使用してください。詳細については、リクエスタが管理するネットワークインターフェイスを参照してください。

**注:**Lambda は、同じ Amazon VPC 設定の複数の関数でネットワークインターフェイスを共有します。ネットワークインターフェイスを共有すると、AWS アカウントで使用されるネットワークインターフェイスの数を減らすことができます。

解決方法

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

Lambda ENI Finder を実行して、ネットワークインターフェイスを使用する関数と関数バージョンを特定します

**注:**次のコマンドは Linux、Unix、および macOS オペレーティングシステムでのみ有効です。

1.    最新バージョンの AWS CLI をインストールします

2.    Lambda とネットワークインターフェイスをクエリする権限を持つ AWS ID およびアクセス管理 (IAM) ロールを使用して AWS CLI を設定します。詳細については、実行ロールとユーザー権限を参照してください。
**注:**Lambda は関数の実行ロールの権限を使用してハイパープレーン ENI を削除します。そのため、Lambda がハイパープレーン ENI を削除する前に実行ロールを削除しないでください。

3.    コマンドライン JSON プロセッサ jq をインストールします。

$ sudo yum install jq -y

**注:**詳細については、GitHub の jq ページを参照してください。

4.    Git がインストールされていることを確認します。

$ sudo yum install git -y

Git をインストールするには、Git Web サイトのはじめに - Git のインストールを参照してください。

5.    AWS サポートツールの GitHub リポジトリをクローンします。

$ git clone https://github.com/awslabs/aws-support-tools.git

6.   ディレクトリを Lambda ENI Finder の場所に変更します。

$ cd aws-support-tools  
$ cd Lambda  
$ cd FindEniMappings

7.    削除するネットワークインターフェイスの Lambda ENI Finder を実行します。

./findEniAssociations --eni eni-0123456789abcef01 --region us-east-1

注:eni-0123456789abcef01 をネットワークインターフェイスの ID に置き換えてください。ID は Amazon Elastic Compute Cloud (Amazon EC2) コンソールネットワークインターフェイスページで確認できます。また、us-east-1 はネットワークインターフェイスがある AWS リージョンに置き換えてください。

出力には、ネットワークインターフェイスを使用する AWS アカウントと指定したリージョンの Lambda 関数と関数バージョンのリストが返されます。これらの機能または機能バージョンのいずれかがまだ必要な場合は、ネットワークインターフェイスを削除する必要はないでしょう。

Lambda が作成したネットワークインターフェイスを削除する

1.    Lambda ENI Finder にリストされている未公開の Lambda 関数バージョン ($LATEST) ごとに、次のいずれかのアクションを実行します。

2.    別のサブネットとセキュリティグループを使用するように Amazon VPC 設定を変更します。

-または-

この関数を Amazon VPC から切断します。

3.    リストに表示されている公開されている Lambda 関数バージョンごとに、その関数バージョンを削除します。
**注:**公開されている関数のバージョンは編集できないため、VPC 設定を変更することはできません。

4.    ネットワークインターフェイスが使用されていないことを確認します。これを行うには、Lambda ENI Finder をもう一度実行します。

出力に他の関数や関数バージョンが表示されない場合、Lambda は 24 時間以内にネットワークインターフェイスを自動的に削除します。

関連情報

AWS リージョンの上限に達した場合、より伸縮自在なネットワークインターフェイスを利用する方法を教えてください。

AWS公式
AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ