

# コスト配分または属性ベースのアクセス制御 (ABAC) のタグ付け
<a name="tagging"></a>

AWS タグは、メタデータを保持するキーと値のペアです。バケットなどの Amazon S3 リソースにタグをアタッチします。リソースの作成時にタグを追加したり、既存のリソースのタグを管理したりすることができます。タグを使用することによる追加料金は、標準の S3 API リクエスト料金を超えて発生しません。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

## タグの仕組み
<a name="how-tags-work"></a>

Amazon S3 は、次の 2 種類のタグをサポートしています。
+ **AWS 生成タグ:** これらのタグは AWS によって自動的に適用され、ユーザーが変更または削除することはできません。AWS 生成タグの詳細については、「[Using AWS-generated tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tags.html)」を参照してください。
+ **ユーザー定義タグ:** これらのタグを S3 リソースに適用して管理します。

### ユーザー定義タグ
<a name="user-defined-tags"></a>

ユーザー定義タグは、リソースのラベル付けに使用するタグのキーと値のペアです。ユーザー定義タグは、必須のキーとオプションの値で構成されます。ユーザー定義タグの主要なコンポーネントは次のとおりです。

#### タグキー
<a name="tag-key"></a>

タグキーは、必須のタグ名です。例えば、`project` は、次のタグを構成するキーと値のペアのタグキーです。


| キー | 値 | 
| --- | --- | 
| project | Trinity | 

タグキーは大文字小文字を区別する文字列で、1～128 個の Unicode 文字が含まれている必要があります。キーは、Unicode 文字、数字、空白、以下の記号のみを使用できます。
+ `_` - 下線
+ `.` - ピリオド
+ `:` - コロン
+ `/` - スラッシュ
+ `=` - 等号
+ `+` - プラス記号
+ `@` - アットマーク
+ `-` - ダッシュ

#### タグ値
<a name="tag-value"></a>

タグ値は、オプションの文字列です。例えば、`Trinity` は、このタグを構成するキーと値のペアのタグ値です。


| キー | 値 | 
| --- | --- | 
| project | Trinity | 

タグ値は大文字小文字を区別する文字列で、0～256 個の Unicode 文字を含めることができます。値は、Unicode 文字、数字、空白、以下の記号のみを使用できます。
+ `_` - 下線
+ `.` - ピリオド
+ `:` - コロン
+ `/` - スラッシュ
+ `=` - 等号
+ `+` - プラス記号
+ `@` - アットマーク
+ `-` - ダッシュ

ユーザー定義タグで使用できる文字や他の制限の詳細については、「*AWS Billing and Cost Management ユーザーガイド*」の「[ユーザー定義タグの制限](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html#allocation-tag-restrictions)」を参照してください。

#### タグセット
<a name="tag-set"></a>

各 S3 リソースには、そのバケットに割り当てられたすべてのタグキーと値のペアを含む*タグセット*が 1 つあります。タグセットは空にすることも、最大 50 個のユーザー定義タグを含めることもできます。ただし、オブジェクトにタグ付けする場合を除きます。オブジェクトが持てるタグは最大 10 個までです。

各キーはタグセット内で一意である必要がありますが、同じ値を複数回使用できます。例えば、次の 2 つのタグキーに対して同じ値、`Trinity` を持つことができます。


| キー | 値 | 
| --- | --- | 
| project | Trinity | 
| cost-center | Trinity | 

既存のタグと同じキーを持つタグをバケットに追加した場合、古い値は新しい値によって上書きされます。

AWS はタグに意味論的意味を適用しません。単なる文字列としてタグを解釈します。

タグを追加、一覧表示、変更、削除するには、Amazon S3 コンソール、AWS コマンドラインインターフェイス (AWS CLI)、または Amazon S3 API を使用します。

## タグを使用する一般的な方法
<a name="common-ways-to-use-tags"></a>

S3 リソースのタグを以下に使用します。

1. **コスト配分** – AWS Billing and Cost Management でバケットタグ別にストレージコストを追跡します。

1. **属性ベースのアクセス制御 (ABAC)** – アクセス許可をスケールし、タグに基づいて S3 リソースへのアクセスを許可します。

**注記**  
コスト配分とアクセスコントロールの両方に同じタグを使用できます。

### コスト配分のタグを使用する
<a name="using-tags-for-cost-allocation"></a>

Amazon S3 ストレージコストを追跡するには、S3 リソースにタグを適用し、これらのタグをコスト配分用に有効にします。

コストの追跡を開始するには。

1. S3 リソースにタグを追加するか、既存のタグを使用します。例えば、プロジェクトまたはプロジェクトのグループを識別するタグを使用してバケットにラベルを付けることができます。

1. AWS Billing and Cost Management コンソールでコスト配分のタグを有効にします。「*AWS Billing and Cost Management ユーザーガイド*」の「[Activating user-defined cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html)」を参照してください。ユーザー定義タグまたは AWS 生成タグをアクティブ化できます。詳細については、「[Organizing and tracking costs using AWS cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」を参照してください。

AWS は、アクティブ化されたタグを使用して、次のようなさまざまな請求およびコスト管理ツールでリソースコストを整理します。
+ **コスト配分レポート**

  アクティブ化されたタグ別に整理されたコストの概要を表示します。詳細については、「*AWS 請求ユーザーガイド*」の「[Using the monthly cost allocation report](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/configurecostallocreport.html)」を参照してください。
+ **コストと使用状況レポート (CUR)**

  タグベースのコスト内訳を含む、AWS コストと使用状況データの最も詳細なセットを提供します。詳細については、「*AWS データエクスポートユーザーガイド*」の「[What are AWS Cost and Usage Reports?](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html)」を参照してください。

#### タグによるコストの追跡をサポートする Amazon S3 リソース
<a name="cost-resources"></a>

次の Amazon S3 リソースは、タグを使用したストレージコストの追跡をサポートしています。
+ **S3 汎用バケット**

  詳細については、「[S3 汎用バケットでタグを使用する](buckets-tagging.md)」を参照してください。
+ **S3 ディレクトリバケット**

  詳細については、「[S3 ディレクトリバケットでのタグの使用](directory-buckets-tagging.md)」を参照してください。
+ **S3 テーブル**

  詳細については、「[S3 テーブルでのタグの使用](table-tagging.md)」を参照してください。
+ **S3 ベクトルインデックス**

  詳細については、[S3 ベクトルインデックスでのタグの使用](vector-index-tagging.md)を参照してください。

### 属性ベースのアクセス制御 (ABAC) のタグを使用する
<a name="using-tags-for-abac"></a>

属性ベースのアクセス制御 (ABAC) は、属性すなわちタグに基づいてアクセス許可を定義する認可戦略です。AWS Identity and Access Management (IAM) エンティティ (ユーザーまたはロール) および Amazon S3 Access Points とディレクトリバケットなどの AWS リソースにタグをアタッチできます。次に、アクセスコントロールポリシーのタグベースの条件を使用してこれらのリソースへのアクセス許可を制御し、これらの条件が満たされたときにオペレーションを許可または拒否します。

ABAC では、ご利用の AWS Organizations、IAM、および S3 リソースポリシーでタグベースの条件キーを使用します。エンタープライズの場合、Amazon S3 の ABAC は複数の AWS アカウントにわたる認可をサポートしています。

IAM ポリシーでは、[条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)を使用して、バケットのタグに基づいて S3リソースへのアクセスを制御できます。

**サポートされている条件キー**  
ABAC をサポートするすべての Amazon S3 リソースには、次の AWS 条件キーを使用できます。
+ `aws:ResourceTag/key-name`
+ `aws:RequestTag/key-name`
+ `aws:TagKeys`

一部のリソースは、追加の Amazon S3 条件キーをサポートしています。ABAC に使用できる条件キーの完全なリストとポリシーの例については、リソースの以下のタグ付けに関するトピックを参照してください。

#### ABAC をサポートする Amazon S3 リソース
<a name="abac-resources"></a>

次の Amazon S3 リソースは、タグを使用した属性ベースのアクセス制御 (ABAC) をサポートしています。
+ **S3 汎用バケット**

  詳細については、「[S3 汎用バケットでタグを使用する](buckets-tagging.md)」を参照してください。
+ **アクセスポイント**

  詳細については、「[汎用バケットでの S3 Access Points の使用](access-points-tagging.md)」および「[ディレクトリバケットでの S3 Access Points でタグを使用する](access-points-db-tagging.md)」を参照してください。
+ **バッチジョブオペレーション**

  詳細については、「[タグを使用したアクセスのコントロールとジョブのラベル付け](batch-ops-job-tags.md)」を参照してください。
+ **S3 ディレクトリバケット**

  詳細については、「[S3 ディレクトリバケットでのタグの使用](directory-buckets-tagging.md)」を参照してください。
+ **オブジェクト**

  詳細については、「[タグを使用したオブジェクトの分類](object-tagging.md)」を参照してください。
+ **S3 Access Grants**

  詳細については、「[S3 Access Grants のタグの管理](access-grants-tagging.md)」を参照してください。
+ **S3 Storage Lens グループ**

  詳細については、「[Storage Lens グループによる AWS リソースタグの管理](storage-lens-groups-manage-tags.md)」を参照してください。
+ **S3 テーブルバケットとテーブル**

  詳細については、「[S3 テーブルバケットでのタグの使用](table-bucket-tagging.md)」および「[S3 テーブルでのタグの使用](table-tagging.md)」を参照してください。
+ **S3 ベクトルバケットとインデックス**

  詳細については、「[S3 ベクトルバケットでのタグの使用](s3-vectors-tags.md)」および「[S3 ベクトルインデックスでのタグの使用](vector-index-tagging.md)」を参照してください。

## タグ付け戦略の計画
<a name="tagging-strategy"></a>

各リソースタイプのニーズを満たす一連のタグキーを考案することをお勧めします。一貫性のある一連のタグキーを使用することで、リソースの管理が容易になります。追加したタグに基づいてリソースを検索およびフィルタリングできます。効果的なリソースのタグ付け戦略を実装する方法の詳細についてはAWS ホワイトペーパーの「[タグ付けのベストプラクティス](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)」を参照してください。

**Amazon S3 リソースのタグ付けのベストプラクティス**  
タグを使用するときには、以下のベストプラクティスに従うことをおすすめします。
+ 組織内のすべてのチームが従うタグ使用の規則を文書化します。特に、名前が記述的で一貫性があることを確認してください。例えば、`env:production` を持つリソースにタグ付けするのではなく、形式 `environment:prod` で標準化します。
**重要**  
個人を特定できる情報 (PII) などの機密情報や秘匿性の高い情報はタグに格納しないでください。
+ タグ付けを自動化して一貫性を確保します。例えば、CloudFormation テンプレートにタグを含めることができます。テンプレートを使用してリソースを作成すると、リソースは自動的にタグ付けされます。
+ タグは必要な場合にのみ使用します。不要なタグの拡散や複雑さを回避します。
+ タグの関連性と正確性を定期的に確認します。必要に応じて、古いタグを削除または変更します。
+ AWS マネジメントコンソールで AWS タグエディタを使用してタグを作成することを検討してください。タグエディタを使用して、Amazon S3 リソースを含む複数のサポートされている AWS リソースにタグを同時に追加できます。詳細については、*AWS リソースグループユーザーガイド*の[タグエディタ](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html)を参照してください。

## Amazon S3 リソースのタグの管理
<a name="manage-tags"></a>

Amazon S3 リソースのタグを管理する方法の詳細については、次のリソースを参照してください。
+ [汎用バケットでの S3 Access Points の使用](access-points-tagging.md)
+ [ディレクトリバケットでの S3 Access Points でタグを使用する](access-points-db-tagging.md)
+ [タグを使用したアクセスのコントロールとジョブのラベル付け](batch-ops-job-tags.md)
+ [S3 ディレクトリバケットでのタグの使用](directory-buckets-tagging.md)
+ [S3 バケットタグでのコスト配分タグの使用](CostAllocTagging.md)
+ [タグを使用したオブジェクトの分類](object-tagging.md)
+ [S3 Access Grants のタグの管理](access-grants-tagging.md)
+ [Storage Lens グループによる AWS リソースタグの管理](storage-lens-groups-manage-tags.md)
+ [S3 汎用バケットでタグを使用する](buckets-tagging.md).
+ [S3 ベクトルバケットでのタグの使用](s3-vectors-tags.md)
+ [S3 ベクトルインデックスでのタグの使用](vector-index-tagging.md)