Amazon EventBridge イベントバスのアクセス許可 - Amazon EventBridge

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

Amazon EventBridge イベントバスのアクセス許可

AWS アカウントのデフォルトのイベントバスでは、1 つのアカウントからのイベントしか許可されません。イベントバスに追加のアクセス許可を付与するには、リソースベースのポリシーをアタッチします。リソースベースのポリシーを使用すると、別のアカウントからの PutEventsPutRule、および PutTargets API コールを許可できます。また、ポリシーで IAM 条件を使用して組織にアクセス許可を付与するには、タグを適用するか、特定のルールまたはアカウントからのイベントにのみイベントをフィルタリングします。イベントバスのリソースベースのポリシーは、イベントバスの作成時または作成後に設定できます。

イベントバスの Name パラメータを受け入れる EventBridge API (PutRulePutTargetsDeleteRuleRemoveTargetsDisableRuleEnableRule など) は、イベントバス ARN も受け入れます。これらのパラメータを使用し、API を介してクロスアカウントまたはクロスリージョンのイベントバスを参照します。例えば、PutRule を呼び出すと、ロールを引き受けなくても、別のアカウントのイベントバスにルールを作成することができます。

このトピックのポリシー例を IAM ロールに添付して、別のアカウントまたはリージョンにイベントを送信するアクセス許可を付与することができます。IAM ロールを使用して、アカウントから他のアカウントにイベントを送信できるユーザーに関する組織のコントロールポリシーと境界を設定します。ルールのターゲットがイベントバスの場合は、常に IAM ロールを使用することをお勧めします。IAM ロールは、PutTarget 呼び出しを使用して添付できます。別のアカウントまたはリージョンにイベントを送信するルールの作成については、AWS アカウント間の Amazon EventBridge イベントの送受信 を参照してください。

イベントバスのアクセス許可の管理

既存のイベントバスのアクセス許可を変更するには、次の手順を実行します。AWS CloudFormation を使用してイベントバスポリシーを作成する方法については、AWS::Events::EventBusPolicy を参照してください。

既存のイベントバスのアクセス許可を管理するには
  1. Amazon EventBridge コンソール (https://console.aws.amazon.com/events/) を開きます。

  2. 左側のナビゲーションペインで [Event Buses] (イベントバス) を選択します。

  3. [Name] (名前) で、アクセス許可を管理するイベントバスの名前を選択します。

    リソースポリシーがイベントバスにアタッチされている場合は、ポリシーが表示されます。

  4. [Manage permissions] (アクセス許可の管理) を選択して、次のいずれかを実行します。

    • イベントバスに付与するアクセス許可を含むポリシーを入力します。別のソースからポリシーを貼り付けることも、ポリシーの JSON を入力することもできます。

    • ポリシーにテンプレートを使用するには、[Load template] (テンプレートのロード) を選択します。環境に応じてポリシーを変更し、使用するポリシーでプリンシパルを認可する追加のアクションを追加します。

  5. [Update] (更新) を選択します。

テンプレートには、お客様のアカウントや環境に合わせてカスタマイズできるポリシー文の例があります。テンプレートは有効なポリシーではありません。ユースケースに応じてテンプレートを変更することも、ポリシー例の 1 つをコピーしてカスタマイズすることもできます。

テンプレートは、PutEvents アクションを使用するためにアカウントにアクセス許可を付与する方法、組織にアクセス許可を付与する方法、アカウントでルールを管理するアカウントにアクセス許可を付与する方法の例などのポリシーをロードします。特定のアカウントのテンプレートをカスタマイズして、テンプレートから他のセクションを削除できます。このトピックの後半で、さらに多くのポリシー例を紹介しています。

バスの権限を更新しようとしても、ポリシーにエラーが含まれている場合は、ポリシーの特定の問題を示すエラーメッセージが表示されます。

### Choose which sections to include in the policy to match your use case. ### ### Be sure to remove all lines that start with ###, including the ### at the end of the line. ### ### The policy must include the following: ### { "Version": "2012-10-17", "Statement": [ ### To grant permissions for an account to use the PutEvents action, include the following, otherwise delete this section: ### { "Sid": "AllowAccountToPutEvents", "Effect": "Allow", "Principal": { "AWS": "<ACCOUNT_ID>" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default" }, ### Include the following section to grant permissions to all members of your AWS Organizations to use the PutEvents action ### { "Sid": "AllowAllAccountsFromOrganizationToPutEvents", "Effect": "Allow", "Principal": "*", "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-yourOrgID" } } }, ### Include the following section to grant permissions to the account to manage the rules created in the account ### { "Sid": "AllowAccountToManageRulesTheyCreated", "Effect": "Allow", "Principal": { "AWS": "<ACCOUNT_ID>" }, "Action": [ "events:PutRule", "events:PutTargets", "events:DeleteRule", "events:RemoveTargets", "events:DisableRule", "events:EnableRule", "events:TagResource", "events:UntagResource", "events:DescribeRule", "events:ListTargetsByRule", "events:ListTagsForResource"], "Resource": "arn:aws:events:us-east-1:123456789012:rule/default", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "<ACCOUNT_ID>" } } }] }

ポリシーの例: 別のアカウントのデフォルトバスにイベントを送信する

以下のポリシー例では、アカウント 123456789012 のデフォルトのイベントバスに対してイベントを発行するアクセス許可をアカウント 111122223333 に付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "sid1", "Effect": "Allow", "Principal": {"AWS":"arn:aws:iam::111112222333:root"}, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default" } ] }

ポリシーの例: 別のアカウントのカスタムバスにイベントを送信する

以下のポリシー例では、アカウント 123456789012 の central-event-bus にイベントを発行するアクセス許可をアカウント 111122223333 に付与します。ただし、ソースの値が com.exampleCorp.webStore に設定され、detail-typenewOrderCreated に設定されているイベントのみが対象となります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "WebStoreCrossAccountPublish", "Effect": "Allow", "Action": [ "events:PutEvents" ], "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus", "Condition": { "StringEquals": { "events:detail-type": "newOrderCreated", "events:source": "com.exampleCorp.webStore" } } } ] }

ポリシーの例: 同じアカウントのイベントバスにイベントを送信する

CustomBus1 という名前のイベントバスにアタッチされた以下のポリシー例では、イベントバスは同じアカウントとリージョンからイベントを受信できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:PutEvents" ], "Resource": [ "arn:aws:events:us-east-1:123456789:event-bus/CustomBus1" ] } ] }

ポリシーの例: イベントを同じアカウントに送信し、更新を制限する

以下のポリシー例では、アカウント 123456789012 にルールの作成、削除、更新、無効化、有効化、およびターゲットの追加と削除を実行できるアクセス許可を付与します。これらのルールは、com.exampleCorp.webStore をソースとするイベントに一致するように制限されており、"events:creatorAccount": "${aws:PrincipalAccount}" を使用して、アカウント 123456789012 のみが、作成後のルールとターゲットを変更できることを保証します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvoiceProcessingRuleCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": [ "events:PutRule", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:PutTargets", "events:RemoveTargets" ], "Resource": "arn:aws:events:us-east-1:123456789012:rule/central-event-bus/*", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "${aws:PrincipalAccount}", "events:source": "com.exampleCorp.webStore" } } } ] }

ポリシーの例: 特定のルールからのイベントのみを別のリージョンのバスに送信する

以下のポリシー例では、中東 (バーレーン) および米国西部 (オレゴン) のリージョンでの SendToUSE1AnotherAccount という名前のルールに一致するイベントを、アカウント 123456789012 の 米国東部 (バージニア北部) の CrossRegionBus というイベントバスに送信するアクセス許可をアカウント 111122223333 に付与します。アカウント 123456789012 の CrossRegionBus というイベントバスに、この例のポリシーを追加します。ポリシーは、イベントがアカウント 111122223333 のイベントバスに指定されたルールに一致する場合にのみイベントを許可します。Condition ステートメントは、指定されたルール ARN を持つルールに一致するイベントのみにイベントを制限します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificRulesAsCrossRegionSource", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:events:us-west-2:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount", "arn:aws:events:me-south-1:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount" ] } } } ] }

ポリシーの例: 特定のリージョンからのイベントのみを別のリージョンに送信する

以下のポリシー例では、中東 (バーレーン) および米国西部 (オレゴン) のリージョンでの生成されるすべてのイベントを、米国東部 (バージニア北部) リージョンのアカウント 123456789012 の CrossRegionBus というイベントバスに送信するアクセス許可を、アカウント 111122223333 に付与します。アカウント 111122223333 には、他のリージョンで生成されたイベントを送信するアクセス許可はありません。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossRegionEventsFromUSWest2AndMESouth1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:events:us-west-2:*:*", "arn:aws:events:me-south-1:*:*" ] } } } ] }

ポリシーの例: 特定のリージョンからのイベントの送信を拒否する

アカウント 123456789012 の CrossRegionBus という名前のイベントバスにアタッチされている以下のポリシー例は、イベントバスがアカウント 111122223333 からのイベントを受信するアクセス許可を付与しますが、米国西部 (オレゴン) リージョンで生成されたイベントは受信しません。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1AllowAnyEventsFromAccount111112222333", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus" }, { "Sid": "2DenyAllCrossRegionUSWest2Events", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:events:us-west-2:*:*" ] } } } ] }