翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタムイベントバスを他のアカウントと共有する
別のアカウントにバスへの発行、サブスクライバーのアタッチ、またはイベントソースのアタッチを行うには、バスを AWS Resource Access Manager (AWS RAM) と共有し、4 つの管理アクセス許可のいずれかを選択します。たとえば、 444455556666を使用してordersバスをアカウントと共有するとAWSRAMEventBridgeEventBusV2SubscribeOnly、そのアカウントでサブスクライバーを作成できます。マネージドアクセス許可が表現しない明示的な Deny、条件キー、または許可が必要な場合は、代わりにバスにリソースポリシーを記述します。他方のアカウントは、両者が許可する必要があるため、独自の ID ポリシーで同じアクションが必要です。
バスを共有するための前提条件
-
バスを所有している必要があります。コンシューマーアカウントはバスを共有できません。
-
招待なしで組織内のアカウントと共有するには、 で と AWS Organizations の共有を有効にします AWS RAM。組織外のアカウントと共有するには、アカウントがバスを使用する前にリソース共有の招待を受け入れる必要があります。
-
バスとコンシューマーのサブスクライバーが同じリージョンとパーティションにあります。コンシューマーはバスに発行し、バスのリージョンにサブスクライバーを作成します。
バスの共有
自分で記述するリソースポリシー AWS RAM よりも、 が AWS RAM 1 か所で表示し、共有したものを取り消し、操作し AWS Organizations、バスのAWS_RAMリソースポリシーを記述することをお勧めします。バス ARN、コンシューマーアカウント、または組織単位、およびバスリソースタイプの 4 つの AWS マネージドアクセス許可のいずれかを で命名するリソース共有を作成しますarn:aws:ram::aws:permission/。name
| 管理アクセス許可 | コンシューマーアカウントができること |
|---|---|
AWSRAMEventBridgeEventBusV2PublishOnly | バスに発行する |
AWSRAMEventBridgeEventBusV2SubscribeOnly | サブスクライバーをバスにアタッチする |
AWSRAMEventBridgeEventBusV2EventSourceAccess | イベントソースをアタッチして更新し、バスを記述する |
AWSRAMEventBridgeEventBusV2FullAccess | いずれかの API で発行し、バスを記述し、独自のサブスクライバーとイベントソースを作成、更新、削除する |
aws ram create-resource-share \ --name orders-bus-share \ --resource-arns arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --principals 444455556666 \ --permission-arns arn:aws:ram::aws:permission/AWSRAMEventBridgeEventBusV2SubscribeOnly
マネージドアクセス許可よりも少ないアクセス許可を付与したり、条件キーを追加したりするために、 AWS RAM カスタマーマネージドアクセス許可を作成します。 は、バス所有者のみのアクションという名前のアクセス許可 AWS RAM を拒否します。正確なアクションリストを引き受けるのではなく、 AWS RAM GetPermissionオペレーションでアクセス許可を読み取ります。
バスの共有解除
共有を停止するには、リソース共有からバスまたはプリンシパルを削除するか、共有を削除します。EventBridge は、作成時にサブスクライバーまたはイベントソースを承認するため、共有のアクティブ中にコンシューマーが作成したサブスクライバーは、共有を解除した後も配信を継続します。停止するには、 で取り消しますRevokeResource。「」を参照してくださいサブスクライバーまたはイベントソースの取り消し。共有が削除されると、コンシューマーは新しいサブスクライバーを公開または作成できなくなります。
共有されているバスの操作
アカウントと共有されているバスは、ARN の所有者のアカウントListEventBusesの結果に表示され、バスのリージョンでその ARN によって使用されます。自分で作成したものは自分に属します。共有バスにサブスクライバーを一覧表示すると、自分のサブスクライバーのみが表示され、バス所有者はすべてのサブスクライバーを表示します。1 つのバスを共有すると、そのバスのみが公開され、所有者の他のバスは表示されません。バスを更新または削除したり、リソースポリシーを変更したり、共有したりすることはできません。また、別のアカウントが所有するサブスクライバーに対してアクションを実行することもできません。バス所有者は、 を使用してサブスクライバーまたはイベントソースを取り消すことができますRevokeResource。取り消されたリソースは完全に停止し、削除のみできます。
請求と使用量測定
バスの共有には料金はかかりません。公開、配信、保持は、Amazon EventBridge の料金EventsDeliveredと SubscriberAccountディメンションのEgressBytesメトリクスを表示できます。「」を参照してくださいカスタムイベントバスのオブザーバビリティ: メトリクス、ログ、CloudTrail。
カスタムリソースポリシーを記述する
イベントバスは、リソースポリシーを取得する唯一のカスタムイベントバスリソースです。EventBridge は他のリソース ARN を拒否します。バスには 2 つの名前付きポリシーがあります。 defaultは、 を含む完全な IAM ポリシー言語で記述するポリシーですDeny。 AWS_RAMは によってのみ記述 AWS RAM され、リソース共有を反映します。EventBridge は、別のアカウントの発信者を承認するときに両方を評価し、 Deny の明示的な は他のアカウントの Allowを上書きします。クロスアカウント発信者が拒否され、作成したポリシーで許可されているように表示される場合は、他のポリシーをお読みください。
orders バス上の次のdefaultポリシーにより、アカウントはサブスクライバーを444455556666アタッチしてバスを読み取ることができます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPartnerAccountToSubscribe", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "events:CreateSubscriber", "events:DescribeEventBus" ], "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef" } ] }
、PutResourcePolicy、GetResourcePolicy、DeleteResourcePolicyおよび を使用してポリシーを管理しますListResourcePolicies。各 は のバス ARN を受け取り--resource-arn、 を省略defaultすると各 は で動作します--policy-name。を記述または削除することはできませんAWS_RAM。名前は で失敗しますAccessDeniedException。 は、空のドキュメントを返すのではなく、名前付きポリシーが存在しないResourceNotFoundException場合に でGetResourcePolicy失敗するため、ポリシーなしとして扱います。を通じてのみ共有したバス AWS RAM にはdefaultポリシーがないため、 はそのエラーを--policy-name返get-resource-policyしません。 AWS RAM を渡--policy-name AWS_RAMしてポリシーの書き込みを読み取ります。 はポリシー名とリビジョン IDs のみListResourcePoliciesを返します。ドキュメントは返しません。書き込みまたは削除を条件付きにするには、 でポリシーの現在のリビジョンを渡します--expected-revision-id。一致しない場合、オペレーションは で失敗しますConflictException。default ポリシードキュメントは最大 20 KB です。より大きなポリシーは で失敗しますPolicyLengthExceededException。このクォータは Service Quotas で調整できます。
EventBridge は、 でパブリックアクセスを許可するdefaultポリシーを拒否しPublicPolicyException、アタッチしません。このチェックは常にオンになっています。ステートメントは、プリンシパルがワイルドカードであり、呼び出し元を特定のアカウントまたはプリンシパルに制限する条件がない場合、パブリックアクセスを許可します。などのイベントコンテンツの条件はevents:source、発信者を識別しません。などの条件aws:PrincipalOrgID。作成したポリシーは には表示されないため AWS RAM、ユーザー自身が追跡できます。
パブリッシュコールなしで到着したイベント
イベントは、イベントソースから、またはターゲットがこのバスである別のバスのルールまたはサブスクライバーから、直接PutEventsまたはPutRawEvents呼び出しなしでバスに到着します。イベントソースは作成時に一度承認され、イベントが到着すると何もチェックされないため、バスポリシーはそのトラフィックを後でフィルタリングできません。「カスタムイベントバスのイベントソース」を参照してください。バスを自分で指すルールまたはサブスクライバーは、指定したロールの下で、イベントごとに 1 回、取り込み時に承認されます。EventBridge はイベントごとにアクションを選択します。純粋events:PutEventsな AWS サービスまたはパートナーイベントの場合は 、発生したイベントevents:PutRawEventsの場合は です。使用するアクションを選択できないため、1 つのパスを介して両方の種類のイベントを実行するフォワーダーには、ロールの ID ポリシーと送信先バスのリソースポリシーの両方で両方のアクションを付与する必要があります。1 つの のみを付与すると、ストリームの半分が拒否されます。