

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 與其他 帳戶共用自訂事件匯流排
<a name="eb-custom-bus-sharing"></a>

若要讓另一個帳戶發佈到您的匯流排，請將訂閱者連接至匯流排，或將事件來源連接至匯流排，與 AWS Resource Access Manager (AWS RAM) 共用匯流排，然後選擇四個受管許可之一。例如，`444455556666`使用 與 帳戶共用`orders`匯流排`AWSRAMEventBridgeEventBusV2SubscribeOnly`，該帳戶可以在其上建立訂閱者。當您需要明確的 `Deny`、條件索引鍵或沒有受管許可表達的授予時，請改為在匯流排上撰寫資源政策。另一個帳戶在自己的身分政策中仍然需要相同的動作，因為雙方必須允許。

## 共用匯流排的先決條件
<a name="eb-custom-bus-access-ram-prereq"></a>
+ 您必須擁有匯流排。消費者帳戶無法共用匯流排。
+ 若要在沒有邀請的情況下與組織中的帳戶共用，請啟用與 AWS Organizations 共用 AWS RAM。若要與組織外部的帳戶共用，帳戶必須先接受資源共用邀請，才能使用匯流排。
+ 匯流排和消費者的訂閱者位於相同的區域和分割區。消費者發佈至匯流排，並在匯流排的 區域中建立訂閱者。

## 共用匯流排
<a name="eb-custom-bus-access-ram"></a>

我們建議您 AWS RAM 覆寫自己撰寫的資源政策。 AWS RAM 為您提供一個位置來查看和撤銷您共用的內容、其使用方式 AWS Organizations，並為您撰寫匯流排`AWS_RAM`的資源政策。建立資源共用，以命名匯流排 ARN、取用者帳戶或組織單位，以及匯流排資源類型的四個 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`操作回讀許可，而不是假設其確切的動作清單。

## 取消共用匯流排
<a name="eb-custom-bus-access-ram-unshare"></a>

若要停止共用，請從資源共用中移除匯流排或主體，或刪除共用。EventBridge 會在建立訂閱者或事件來源時授權，因此消費者在共用作用中時建立的訂閱者會在您取消共用後繼續交付。若要停止它，請使用 將其撤銷`RevokeResource`；請參閱 [撤銷訂閱者或事件來源](eb-custom-bus-access-revoke.md)。共用結束後，消費者就無法再發佈或建立新訂閱者。

## 使用與您共用的匯流排
<a name="eb-custom-bus-access-consumer"></a>

與您的帳戶共用的匯流排會顯示在`ListEventBuses`結果中，其擁有者的帳戶在其 ARN 中，而您在匯流排的 區域中使用該 ARN。您在其中建立的內容屬於您：當您在共用匯流排上列出訂閱者時，您只會看到自己的訂閱者，而匯流排擁有者則會看到所有訂閱者。共用一個匯流排只會公開該匯流排；您永遠不會看到擁有者的其他匯流排。您無法更新或刪除匯流排、變更其資源政策，或繼續共用，也無法對另一個帳戶擁有的訂閱者採取行動。匯流排擁有者可以使用 撤銷任何訂閱者或事件來源`RevokeResource`；撤銷的資源會永久停止，而且您只能將其刪除。

## 計費和計量
<a name="eb-custom-bus-access-ram-billing"></a>

共用匯流排無需自行付費。發佈、交付和保留會如 [Amazon EventBridge 定價](https://aws.amazon.com/eventbridge/pricing/)頁面所述計費。匯流排擁有者可以在 和具有 `SubscriberAccount`維度的`EventsDelivered``EgressBytes`指標中查看每個消費者帳戶的交付量；請參閱 [自訂事件匯流排的可觀測性：指標、日誌和 CloudTrail](eb-custom-bus-observability.md)。

## 撰寫自訂資源政策
<a name="eb-custom-bus-access-policy"></a>

事件匯流排是唯一採用資源政策的自訂事件匯流排資源；EventBridge 會拒絕任何其他資源 ARN。匯流排包含兩個具名政策。 `default`是您撰寫的政策，包括 在內的完整 IAM 政策語言`Deny`。 `AWS_RAM` 僅由 寫入 AWS RAM ，並反映您的資源共享。EventBridge 會在授權來自另一個帳戶的呼叫者時評估兩者，而 `Deny` 中的明確 會覆寫另一個`Allow`帳戶中的 。當跨帳戶呼叫者遭到拒絕，且您撰寫的政策顯示為允許時，請閱讀其他政策。

匯流排上的下列`default`政策`orders`可讓帳戶`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`、`DeleteResourcePolicy`、 `GetResourcePolicy`和 管理政策`ListResourcePolicies`。每個 接受 中的匯流排 ARN`--resource-arn`，而每個 會在您省略 `default`時作用`--policy-name`。您無法寫入或刪除 `AWS_RAM`：以 命名失敗`AccessDeniedException`。當具名政策不存在`ResourceNotFoundException`時， 會`GetResourcePolicy`失敗，而不是傳回空白文件，因此請將此視為無政策。您僅透過 共用的匯流排 AWS RAM 沒有`default`政策，因此`get-resource-policy`沒有 `--policy-name`傳回該錯誤；傳遞 AWS RAM `--policy-name AWS_RAM`讀取政策。 只會`ListResourcePolicies`傳回政策名稱和修訂 IDs，絕不會傳回文件。若要進行寫入或刪除條件式，請在 中傳遞政策目前的修訂`--expected-revision-id`；在不相符時，操作會失敗並顯示 `ConflictException`。`default` 政策文件最多可達 20 KB；較大的政策會因 而失敗`PolicyLengthExceededException`。此配額可在 Service Quotas 中調整。

EventBridge 會拒絕將公有存取權授予 `PublicPolicyException`的政策，但不會連接該`default`政策。此檢查一律開啟。當呼叫者主體是萬用字元且無條件限制為特定帳戶或主體時，陳述式會授予公有存取權。事件內容的條件，例如 `events:source`，不會識別發起人。這樣的條件`aws:PrincipalOrgID`。您撰寫的政策對 來說是不可見的 AWS RAM，因此您擁有它。

## 在沒有發佈呼叫的情況下抵達的事件
<a name="eb-custom-bus-access-forwarded"></a>

事件也會在沒有直接`PutEvents`或`PutRawEvents`呼叫的情況下抵達匯流排：來自事件來源，或來自規則或目標為此匯流排之另一個匯流排上的訂閱者。當您建立事件來源時，會授權一次，而且在事件到達時不會再次檢查任何事件來源，因此匯流排政策之後無法篩選該流量。請參閱 [自訂事件匯流排的事件來源](eb-custom-bus-event-sources.md)。您自行指向匯流排的規則或訂閱者會在您提供的角色下，於擷取時授權一次。EventBridge 會為每個事件選擇動作：`events:PutEvents`對於真正的 AWS 服務或合作夥伴事件，以及您發起`events:PutRawEvents`的事件。您無法選擇使用的動作，因此在角色的身分政策和目的地匯流排的資源政策中，必須同時授予透過一個路徑攜帶這兩種事件的轉寄站。只授予一個拒絕一半的串流。