Lambda 関数でのタグの使用 - AWS Lambda

Lambda 関数でのタグの使用

AWS Lambda 関数にタグ付けすれば、属性ベースのアクセスコントロール (ABAC) をアクティブにし、所有者やプロジェクト、あるいは部門ごとの整理が行えます。タグは自由形式の key-value ペアで、AWS のサービス全体でサポートされており、ABAC や、リソースのフィルタリング、そして請求レポートへの詳細の追加のために使用できます。

タグは、バージョンやエイリアスではなく、関数レベルで適用されます。タグは、(バージョンの公開時に Lambda がスナップショットを作成する) バージョン固有の設定には含まれません。

タグの操作に必要なアクセス許可

関数を使用するユーザーの AWS Identity and Access Management (IAM) アイデンティティ (ユーザー、グループ、ロール) に、以下の中の適切なアクセス許可を付与します。

  • lambda:ListTags – 関数がタグ付けされている場合は、その関数で GetFunction または ListTags を呼び出す必要があるすべてのユーザーに対し、このアクセス許可を付与します。

  • lambda:TagResourceCreateFunction または TagResource を呼び出す必要があるすべてのユーザーにこのアクセス許可を付与します。

詳細については、「Lambda のアイデンティティベースの IAM ポリシー」を参照してください。

Lambda コンソールでのタグの使用

Lambda コンソールを使用すると、タグ付けをしながら関数を作成したり、既存の関数にタグを追加したり、追加したタグで関数をフィルタリングしたりできます。

関数の作成時にタグを追加するには
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. [機能の作成]を選択します。

  3. [Author from scratch] (一から作成) または [Container image] (コンテナイメージ) をクリックします。

  4. [Basic information] (基本的な情報) で、以下を実行します。

    1. [関数名] に関数名を入力します。関数名の長さは 64 文字に制限されています。

    2. [Runtime] (ランタイム) で、関数で使用する言語バージョンを選択します。

    3. (オプション) [Architecture] (アーキテクチャ) で、関数に使用する命令セットのアーキテクチャを選択します。デフォルトのアーキテクチャは x86_64 です。関数用のデプロイパッケージを構築するときは、ここで選択した命令セットのアーキテクチャと互換性があることを確認してください。

  5. [Advanced settings] (詳細設定) を展開した上で、[Enable tags] (タグの有効化) を選択します。

  6. これを行うには、[Add new tag] (タグの追加) を選択してから、キーとオプションのを入力します。さらにタグを追加するには、この手順を繰り返します。

  7. [機能の作成]を選択します。

既存の関数にタグを追加するには
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. 関数の名前を選択します。

  3. [Configuration] (設定)、[Tags] (タグ) の順に選択します。

  4. [タグ] で、[タグの管理] を選択します。

  5. これを行うには、[Add new tag] (タグの追加) を選択してから、キーとオプションのを入力します。さらにタグを追加するには、この手順を繰り返します。

    
              Lambda コンソールでの関数へのタグ付け
  6. [Save (保存)] を選択します。

タグを使用して関数をフィルタするには
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. 検索バーを選択すると、関数属性とタグキーのリストが表示されます。

    
              関数検索バーのタグ。
  3. タグキーを選択すると、現在の AWS リージョンで使用中の値のリストが表示されます。

  4. 値を選択してその値を持つ関数を表示するか、[(all values)] を選択して、そのキーのタグを持つすべての関数を表示します。

    
              タグ値によるフィルタリング

検索バーは、タグキーの検索もサポートしています。タグキーのリストのみを表示するには tag と入力します。また、キーの名前を入力すると、それをリスト内で検索することもできます。

AWS CLIでのタグの使用

タグの追加と削除

-tags オプションとともに create-function コマンドを使用すると、タグを付けながら新しい Lambda 関数を作成することができます。

aws lambda create-function --function-name my-function --handler index.js --runtime nodejs18.x \ --role arn:aws:iam::123456789012:role/lambda-role \ --tags Department=Marketing,CostCenter=1234ABCD

タグを既存の関数に追加するには、tag-resource コマンドを使用します。

aws lambda tag-resource \ --resource arn:aws:lambda:us-east-2:123456789012:function:my-function \ --tags Department=Marketing,CostCenter=1234ABCD

タグを削除するには、untag-resource コマンドを使用します。

aws lambda untag-resource --resource arn:aws:lambda:us-east-1:123456789012:function:my-function \ --tag-keys Department

関数のタグの表示

特定の Lambda 関数に適用されているタグを表示する場合は、次のいずれかの AWS CLI コマンドを使用します。

  • ListTags – 対象の関数に関連付けられているタグのリストが表示する際は、Lambda 関数の ARN (Amazon リソースネーム) を含めます。

    aws lambda list-tags --resource arn:aws:lambda:us-east-1:123456789012:function:my-function
  • GetFunction – 対象の関数に関連付けられているタグのリストを表示する際は、Lambda 関数名を含めます

    aws lambda get-function --function-name my-function

タグによる関数のフィルタリング

AWS Resource Groups Tagging API GetResources API オペレーションを使用すると、リソースをタグでフィルタリングできます。この GetResources オペレーションは、それぞれにタグキーと最大 10 個のタグ値が含まれているフィルタを、最大 10 個まで受け取ります。特定のリソースタイプでフィルタリングするには、GetResourcesResourceType を指定します。

AWS Resource Groups の詳細については、「AWS Resource Groups Resource Groups とタグユーザーガイド」の「What are resource groups?」(Resource Groups とは?) を参照してください。

タグの要件

タグには、次の要件が適用されます。

  • リソースあたりのタグの最大数: 50

  • キーの最大長: 128 Unicode 文字 (UTF-8)

  • 値の最大長: 256 Unicode文字 (UTF-8)

  • タグのキーと値は大文字と小文字が区別されます。

  • タグの名前または値に aws: プレフィックスは使用しないでください。このプレフィックスは AWS 用に予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。

  • 複数のサービス間およびリソース間でタグ付けスキーマを使用する場合、他のサービスでは許可される文字が制限される可能性がある点にご注意ください。一般的に使用が許可される文字は、UTF-8 で表現できる文字、スペース、および数字と特殊文字 (+ - = . _ : / @) です。