

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

# カスタムイベントバスのアクション、リソース、および条件キー
<a name="eb-custom-bus-access-actions"></a>

IAM ポリシーを記述するときは、このページを使用します。カスタムイベントバスのすべての`events:`アクション、それぞれがチェックされるリソース ARN、別のアカウントに付与できるかどうか、追加できる条件キーが一覧表示されます。たとえば、`METADATA`フィルター名が であるサブスクライバーをロールにアタッチさせるには`tenant``acme`、 `ForAnyValue:StringEquals`の条件を使用してバス`events:CreateSubscriber`に を付与します`events:Metadata/tenant`。

## 条件キー
<a name="eb-custom-bus-access-conditions"></a>

EventBridge はリクエストから次の条件キーを提供し、アクションとリソースを超えて許可を絞り込むことができます。グローバル条件キーについては、*IAM ユーザーガイド*の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。


| 条件キー | 値 | で提供 | 
| --- | --- | --- | 
| events:source | イベントのソース、または転送されるソース | PutEvents, CreateEventSource, UpdateEventSource | 
| events:detail-type | イベントの詳細タイプ | PutEvents | 
| events:Metadata/{{key}} | METADATA フィルターがそのキーで一致する値 | CreateSubscriber | 
| events:Metadata/{{key}}/Matcher | exact | CreateSubscriber | 
| events:ContentFilterPresent | true サブスクライバーがDATAフィルターを宣言した場合 | CreateSubscriber | 
| aws:ResourceTag/{{key}} | チェック対象のバス、サブスクライバー、またはイベントソースのタグ | リソースに対してチェックされたすべてのアクション | 
| aws:RequestTag/{{key}}, aws:TagKeys | リクエスト内のタグ | 作成オペレーションとTagResource、 UntagResource | 

メタデータキーは値のセットとして提供されるため、 などのセット演算子と一致させます`ForAnyValue:StringEquals`。 `METADATA`フィルターは完全一致のみであるため、マッチャー値は常に です`exact`。`DATA` フィルターは任意の JSON と一致するため、その存在のみが公開され、コンテンツは公開されません。 は置換設定から `events:source`が設定されたバスチェック`UpdateEventSource`を再実行するため、そのキーの条件は、再ポイントされたイベントソースと新しいイベントソースを管理します。

次のリソースポリシーでは、サブスクライバーの`METADATA`フィルターが と`tenant`正確に一致する場合にのみ、アカウントが`orders`バスにサブスクライバー`444455556666`を作成できるようにします`acme`。`METADATA` フィルターのないサブスクライバー、または別のテナントに名前を付けるサブスクライバーは拒否されます。EventBridge は、フィルターが宣言するフィールドに対してのみメタデータ条件キーを提供するため、`Null`条件は を省略するフィルターを拒否します`tenant`。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SubscribeToAcmeEventsOnly",
            "Effect": "Allow",
            "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
            "Action": "events:CreateSubscriber",
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
            "Condition": {
                "Null": { "events:Metadata/tenant": "false" },
                "ForAnyValue:StringEquals": { "events:Metadata/tenant": "acme" },
                "StringEquals": { "events:Metadata/tenant/Matcher": "exact" }
            }
        }
    ]
}
```

## チェック対象のアクションとリソース
<a name="eb-custom-bus-access-actions-table"></a>

次の表は、すべてのアクション、ポリシーの `Resource`要素に配置するリソース ARN、およびバス所有者がリソースポリシーまたは AWS RAM 共有を介して別のアカウントにアクションを付与できるかどうかを示しています。3 つの`List`アクションはどのリソースに対してもチェックされないため、 で付与します`"Resource": "*"`。


| IAM アクション | チェック対象 | 別のアカウントに付与可能 | 
| --- | --- | --- | 
| events:CreateEventBus | 作成中のバス | いいえ。発信者自身のアカウントで作成されました | 
| events:DescribeEventBus | バス | はい | 
| events:UpdateEventBus | バス | いいえ。バス所有者のみ | 
| events:DeleteEventBus | バス | いいえ。バス所有者のみ | 
| events:ListEventBuses | なし。アカウント全体 | いいえ。発信者自身のバスと共有バスを一覧表示します | 
| events:PutEvents | リクエストのエントリごとに 1 回バス | はい | 
| events:PutRawEvents | リクエストのエントリごとに 1 回バス | はい | 
| events:CreateSubscriber | バスと作成されるサブスクライバー | はい | 
| events:DescribeSubscriber | サブスクライバー | サブスクライバーの所有者が承認する | 
| events:UpdateSubscriber | サブスクライバー | サブスクライバーの所有者が承認する | 
| events:DeleteSubscriber | サブスクライバー | サブスクライバーの所有者が承認する | 
| events:ListSubscribers | なし。アカウント全体 | いいえ。発信者自身のサブスクライバーを一覧表示します | 
| events:RevokeResource | バス | いいえ。バス所有者のみ | 
| events:CreateEventSource | バスと作成されるイベントソース | はい | 
| events:DescribeEventSource | イベントソース | イベントソースの所有者が承認する | 
| events:UpdateEventSource | イベントソースとバスの再処理 | はい、バスチェック用 | 
| events:DeleteEventSource | イベントソース | イベントソースの所有者が承認する | 
| events:ListEventSources | なし。アカウント全体 | いいえ。発信者自身のイベントソースを一覧表示します | 
| events:PutResourcePolicy | バス | いいえ。バス所有者のみ | 
| events:GetResourcePolicy | バス | はい | 
| events:DeleteResourcePolicy | バス | いいえ。バス所有者のみ | 
| events:ListResourcePolicies | バス | はい | 
| events:TagResource | リクエストで という名前のバス、サブスクライバー、またはイベントソース | バス: はい。サブスクライバーまたはイベントソース: その所有者 | 
| events:UntagResource | リクエストで という名前のバス、サブスクライバー、またはイベントソース | バス: はい。サブスクライバーまたはイベントソース: その所有者 | 
| events:ListTagsForResource | リクエストで という名前のバス、サブスクライバー、またはイベントソース | バス: はい。サブスクライバーまたはイベントソース: その所有者 | 

バスにサブスクライバーまたはイベントソースを作成するには、呼び出し元にバスと新しいリソースに対する アクションが必要です。これは、バス所有者がバス独自のポリシーで、どのアカウントが何でもアタッチできるかを決定できるようにするものです。 は 4 つの個別の認可チェック`CreateSubscriber`を行い、4 つすべてで許可する必要があります。バス`events:CreateSubscriber`、`events:CreateSubscriber`サブスクライバー、 `iam:PassRole` のロール`InvokeConfiguration.RoleArn`、およびリクエストにタグが付くときの`events:TagResource`サブスクライバーです。 は、イベントソースにロールがないため`iam:PassRole`、 なしで同じチェック`CreateEventSource`を実行します。

**注記**  
存在しないリソースには完全な ARN がないため、作成チェックでは などのワイルドカードで終わる ARN が使用されます`arn:aws:events:us-east-1:111122223333:subscriber/{{name}}/*`。したがって、1 人のサブスクライバーを対象とするポリシーは、正確には一致せず、名前プレフィックスによって一致します。タグのない作成では、新しいリソース`aws:ResourceTag`に が提供されないため、そのキー`StringEquals`の条件によって拒否されます。

## アイデンティティベースのポリシーの例
<a name="eb-custom-bus-access-identity"></a>

プロ**デューサー**には`events:PutEvents`、バス ARN に 、、`events:PutRawEvents`またはその両方が必要です。呼び出す API に一致するアクションを付与します。カスタマーマネージドキーで暗号化されたバスのプロデューサーも、そのキーにアクセスする必要があります。「」を参照してください[カスタムイベントバスでのイベントの暗号化](eb-custom-bus-encryption.md)。**サブスクライバー所有者**は、`events:CreateSubscriber`バスとサブスクライバー、`iam:PassRole`配信ロール、および管理するサブスクライバーに対するサブスクライバーアクションを記述、更新、削除する必要があります。**バス管理者は**、バスの作成、更新、削除アクション、4 つのリソースポリシーアクション、および が必要です`events:RevokeResource`。

次のポリシーでは、プロデューサーがパブリッシュ API を使用して 1 つのバスにパブリッシュし、バスを最初に確認できるようにバスを読み取ることができます`ACTIVE`。発行はリクエストの各エントリに対して 1 回承認され、部分的な承認はありません。1 つのエントリが条件チェックに失敗した場合、EventBridge は渡されたエントリを含むリクエスト全体を拒否します。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublishToOrdersBus",
            "Effect": "Allow",
            "Action": [
                "events:PutEvents",
                "events:PutRawEvents",
                "events:DescribeEventBus"
            ],
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef"
        }
    ]
}
```

## Tagging
<a name="eb-custom-bus-access-tagging"></a>

バス、サブスクライバー、またはイベントソースにタグを付けることができます。作成呼び出し`Tags`で を設定するか、`ListTagsForResource`後で `TagResource`、`UntagResource`、 を使用します。各リソースには独自のタグセットがあるため、バスにタグ付けしても、アタッチされたサブスクライバーやイベントソースにはタグ付けされません。

```
aws eventsv2 tag-resource \
    --resource-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --tags team=payments,environment=production
```

作成レスポンスは、指定したタグをエコーしないため、確認`list-tags-for-resource`する必要がある場合は で読み返してください。で始まるキー`aws:`は 用に予約 AWS され、 を含むすべての書き込みで拒否されます`UntagResource`。タグ付けできるユーザーを制御し、タグに依存するポリシーを記述するには、前の表の 3 つのタグアクションと`aws:RequestTag`、、`aws:ResourceTag`、および `aws:TagKeys`条件キーを使用します。