AWS Proton リソースとタグ付け - AWS Proton

AWS Proton リソースとタグ付け

Amazon リソースネーム (ARN) が割り当てられた AWS Proton リソースには、環境テンプレートとそのメジャーバージョンとマイナーバージョン、サービステンプレートとそのメジャーバージョンとマイナーバージョン、環境、サービス、サービスインスタンス、コンポーネント、リポジトリがあります。タグ付けすることによって、これらのリソースを整理して特定できます。タグを使用し、リソースを目的、所有者、環境などの基準別に分類できます。詳細については、「タグ付け戦略」を参照してください。AWS Proton リソースを追跡し、管理するには、次のセクションで説明するように、タグ付け機能を使用します。

AWS タグ付け

AWS のリソースにメタデータをタグ付け形式で割り当てることができます。各タグは、お客様が定義するキーとオプションの値で構成されます。タグは、リソースの管理、識別、整理、検索、フィルタリングに役立ちます。

重要

個人情報 (PII) などの機密情報や秘匿性の高い情報はタグに追加しないようにします。タグには、請求など、多くの AWS のサービス からアクセスできます。タグは、プライベートデータや機密データに使用することを意図していません。

各タグは 2 つの部分で構成されます。
  • タグキー (例: CostCenterEnvironment または Project)。タグキーでは、大文字と小文字が区別されます。

  • タグ値 (オプション) (たとえば、111122223333 または Production)。タグキーと同様に、タグ値は大文字と小文字が区別されます。

タグには、次の基本的な命名要件と使用要件が適用されます。
  • 各リソースには、最大 50 個のユーザー作成タグを含めることができます。

    注記

    aws: プレフィックスで始まるシステム作成タグは AWS に使用するために予約されており、この制限の対象にはなりません。aws: プレフィックスで始まるタグを編集または削除することはできません。

  • タグキーは、リソースごとにそれぞれ一意である必要があります。また、各タグキーに設定できる値は 1 つのみです。

  • UTF-8 では、タグキーは 1 文字以上で、最大 128 文字の Unicode 文字である必要があります。

  • UTF-8 では、タグ値は 1 文字以上で、最大 256 文字の Unicode 文字である必要があります。

  • タグに使用できる文字は、UTF-8 対応の文字、数字、スペース、および _ . : / = + - @ です。

AWS Proton タグ付け

AWS Proton では、自分で作成したタグと AWS Proton で自動的に生成されたタグの両方を使用できます。

AWS ProtonAWS マネージドタグ

AWS Proton リソースを作成すると、次の図に示すように AWS Proton は新しいリソースの AWS マネージドタグを自動的に生成します。AWS マネージドタグは、新しいリソースをベースとする他の AWS Proton リソースに伝えられます。たとえば、環境テンプレートのマネージドタグはそのバージョンに伝えられ、サービスのマネージドタグはサービスインスタンスに伝えられます。

注記

環境アカウント接続の場合、AWS マネージドタグは生成されません。詳細については、「環境アカウント接続」を参照してください。


          AWS マネージドタグの伝達を説明する図。

プロビジョニングされたリソースへのタグの伝達

サービステンプレートや環境テンプレートで定義されたリソースなど、プロビジョニング済みのリソースで AWS タグ付けがサポートされる場合、プロビジョニング済みのリソースに、AWS マネージドタグはユーザーマネージドタグとして伝えられます。これらのタグは、AWS タグ付けをサポートしないプロビジョニングされたリソースには伝達されません。

次の表で説明するように、AWS Proton は、AWS Proton アカウント、登録済みテンプレート、デプロイ済み環境、ならびにサービスとサービスインスタンス別にタグをリソースに適用します。AWS Proton リソースは、AWS マネージドタグで表示や管理ができますが、変更することはできません。

AWS マネージドタグキー 伝達されたユーザーマネージドキー 説明

aws:proton:account

proton:account

AWS Protonリソースを作成およびデプロイする AWS アカウント。

aws:proton:template

proton:template

選択したテンプレートの ARN。

aws:proton:environment

proton:environment

選択した環境の ARN。

aws:proton:service

proton:service

選択したサービスの ARN。

aws:proton:service-instance

proton:service-instance

選択したサービスインスタンスの ARN。

aws:proton:component

proton:component

選択したコンポーネントの ARN。

次に示すのは、AWS Proton リソースの AWS マネージドタグの例です。

"aws:proton:template" = "arn:aws:proton:region-id:account-id:environment-template/env-template"

次に示すのは、AWS マネージドタグから伝達された、プロビジョニング済みのリソースに適用されるユーザーマネージドタグの例です。

"proton:environment:database" = "arn:aws:proton:region-id:account-id:rds/env-db"

AWS マネージドプロビジョニングでは、AWS Proton は伝えられたタグをプロビジョニング済みのリソースに直接適用します。

セルフマネージドプロビジョニングでは、AWS Proton はプロビジョニングプルリクエスト (PR) で送信するレンダリング済みの IaC ファイルとともに、伝えられたタグが利用できるようになります。タグは文字列マップ変数 proton_tags で提供されます。default_tags に AWS Proton タグを含めるために、Terraformの設定でこの変数を参照することが推奨されています。これにより、AWS Proton タグはプロビジョニングされたすべてのリソースに伝えられます。

次の例は、環境 Terraform テンプレートにおけるこのタグ伝達方法を示しています。

proton_tags 変数の定義は次のとおりです。

proton.environment.variables.tf:

variable "environment" { type = object({ inputs = map(string) name = string }) } variable "proton_tags" { type = map(string) default = null }

この変数にタグ値を割り当てる方法は次のとおりです。

proton.auto.tfvars.json:

{ "environment": { "name": "dev", "inputs": { "ssm_parameter_value": "MyNewParamValue" } } "proton_tags" : { "proton:account" : "123456789012", "proton:template" : "arn:aws:proton:us-east-1:123456789012:environment-template/fargate-env", "proton:environment" : "arn:aws:proton:us-east-1:123456789012:environment/dev" } }

プロビジョニング済みのリソースに追加するためにmTerraform 設定に AWS Proton タグを追加する方法は次のとおりです。

# Configure the AWS Provider provider "aws" { region = var.aws_region default_tags { tags = var.proton_tags } }

ユーザーマネージドタグ

AWS Proton リソースごとのユーザーマネージドタグの最大クォータは 50 です。ユーザーマネージドタグは、AWS マネージドタグによる方法と同じ方法で子 AWS Proton リソース に伝えられますが、既存の AWS Proton リソースやプロビジョニング済みのリソースには伝えられません。既存の子リソースがある AWS Proton リソースに新しいタグを適用して、その新しいタグを既存の子リソースにタグ付けしたい場合、既存の子リソースにコンソールや AWS CLI で、手動タグ付けをする必要があります。

コンソールおよび CLI を使用してタグを作成する

コンソールで AWS Proton リソースを作成すると、次のコンソールスナップショットに示すように、作成手順の 1 ページ目または 2 ページ目にユーザーマネージドタグを作成するオプションが表示されます。[Add new tag (新しいタグを追加)] を選択し、キーと値を入力して続行します。


          コンソールのタグ作成インターフェイスのスナップショット。

AWS Proton コンソールで新しいリソースを作成すると、詳細ページからその AWS マネージドタグとユーザーマネージドタグのリストを表示できます。

タグの作成または編集
  1. AWS Proton コンソールで AWS Proton リソースの詳細ページを開くと、タグのリストが表示されます。

  2. [Manage tags (タグの管理)] を選択します。

  3. [Managed tags (タグの管理)] ページでは、タグを表示、作成、削除、および編集できます。リストの最上部に表示される AWS マネージドタグは変更できません。ただし、AWS マネージドタグの後に表示されるユーザーマネージドタグは編集フィールドで追加や変更ができます。

    新しいタグを追加するには、[Create Tag (タグの作成)] を選択します。

  4. 新しいタグのキーと値を入力します。

  5. タグを編集するには、選択したキーのタグ値フィールドに値を入力します。

  6. タグを削除するには、削除したいタグを選択して [Remove (削除)] を選択します。

  7. 変更を加え終わったら、[Save changes (変更の保存)] を選択します。

AWS ProtonAWS CLI でタグを作成する

タグは、AWS Proton AWS CLI で、その表示、作成、削除、および編集ができます。

次の例に示すように、リソースのタグを作成または編集できます。

$ aws proton tag-resource \ --resource-arn "arn:aws:proton:region-id:account-id:service-template/webservice" \ --tags '[{"key":"mykey1","value":"myval1"},{"key":"mykey2","value":"myval2"}]'

次の例に示すように、リソースのタグを削除できます。

$ aws proton untag-resource \ --resource-arn "arn:aws:proton:region-id:account-id:service-template/webservice" \ --tag-keys '["mykey1","mykey2"]'

最後の例に示すように、リソースのタグを一覧表示できます。

$ aws proton list-tags-for-resource \ --resource-arn "arn:aws:proton:region-id:account-id:service-template/webservice"