

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Transfer Family タグベースのポリシーの例
<a name="security_iam_tag-based-policy-examples"></a>

以下は、タグに基づいて AWS Transfer Family リソースへのアクセスを制御する方法の例です。

## タグを使用して AWS Transfer Family リソースへのアクセスを制御する
<a name="tag-access-control"></a>

IAM ポリシーの条件は、 AWS Transfer Family リソースへのアクセス許可を指定するために使用する構文の一部です。 AWS Transfer Family リソース (ユーザー、サーバー、ロール、その他のエンティティなど) へのアクセスは、それらのリソースのタグに基づいて制御できます。タグはキーと値のペアです。リソースのタグ付けの詳細については、の[AWS 「リソースのタグ付け](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)」を参照してください*AWS 全般のリファレンス*。

では AWS Transfer Family、リソースにタグを付けることができ、一部のアクションにはタグを含めることができます。IAM ポリシーを作成するときに、タグ条件キーを使用して以下をコントロールできます。
+  AWS Transfer Family リソースのタグに基づいて、 リソースに対してアクションを実行できるユーザー。
+ アクションのリクエストで渡すことができるタグ。
+ リクエストで特定のタグキーを使用できるかどうか。

タグベースのアクセス制御を使用すると、API レベルよりも細かい制御を適用できます。また、リソースベースのアクセス制御を使用するよりも動的な制御を適用できます。リクエストで指定したタグ (リクエストタグ) に基づいて、オペレーションを許可または拒否する IAM ポリシーを作成できます。また、操作しようとするリソースのタグ (リソースタグ) に基づいて IAM ポリシーを作成することもできます。一般に、リソースタグはリソースに既に存在するタグ用であり、リクエストタグはリソースにタグを追加したり、リソースからタグを削除したりするときに使用します。

タグ条件キーの完全な構文とセマンティクスについては、*IAM ユーザーガイド*の「[リソースタグを使用した AWS リソースへのアクセスコントロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」を参照してください。API Gateway を使用した IAM ポリシーの指定の詳細については、*API Gateway デベロッパーガイド*の「[IAM アクセス許可により API へのアクセスを制御する](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html)」を参照してください。

### 例 1: リソースタグに基づいてアクションを拒否する
<a name="transfer-deny-actions-resource-tag"></a>

タグに基づいてリソースについて実行されるアクションを拒否できます。次の例では、ユーザーまたはサーバーのリソースがキー `stage` と値 `prod` でタグ付けされている場合にポリシーで `TagResource`、`UntagResource`、`StartServer`、`StopServer`、`DescribeServer`、および `DescribeUser` のオペレーションが拒否されます。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 例 2: リソースタグに基づいてアクションを許可する
<a name="transfer-allow-actions-resource-tag"></a>

タグに基づいてリソースに対するアクションの実行を許可できます。次の例では、ユーザーまたはサーバーのリソースがキー `TagResource` と値 `UntagResource` でタグ付けされている場合にポリシーで `StartServer`、`StopServer`、`DescribeServer`、`DescribeUser`、`stage`、および `prod` のオペレーションが許可されます。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 例 3: リクエストタグに基づくユーザーまたはサーバーの作成を拒否する
<a name="transfer-deny-server-creation-tag"></a>

次のポリシー例には、2 つのステートメントが含まれています。1 つ目のステートメントでは、タグのコストセンターキーに値がない場合、すべてのリソースに対する `CreateServer` オペレーションが拒否されます。

2 つ目のステートメントは、タグのコストセンターキーに 1、2、または 3 以外の値が含まれている場合に `CreateServer` オペレーションが拒否されます。

**注記**  
このポリシーでは、`costcenter` というキーと `1`、`2`、または`3` の値を含むリソースを作成または削除できます。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        { 
            "Effect": "Deny",
            "Action": [
                "transfer:CreateServer"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "Null":  {
                    "aws:RequestTag/costcenter": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "transfer:CreateServer",
            "Resource": [
                "*"
            ],
            "Condition": {
                "ForAnyValue:StringNotEquals": {
                    "aws:RequestTag/costcenter": [
                        "1",
                        "2",
                        "3"
                    ]
                }
            }
        }           
    ]
}
```