我想設定 Amazon EventBridge 規則,將一個 AWS 帳戶中的事件通知傳送到另一個帳戶中的目標。
解決方法
在來源帳戶中建立規則
建立規則以將事件傳送到不同的帳戶。
**注意:**EventBridge 規則和目標必須位於相同的 AWS 區域。您只能為以下目標設定跨帳戶目標:
- Amazon API Gateway API
- Amazon Kinesis Data Streams 應用程式
- AWS Lambda 函式
- Amazon Simple Notification Service (Amazon SNS) 主題
- Amazon Simple Queue Service (Amazon SQS) 佇列
在來源帳戶中設定 IAM 權限
確認您指派給 EventBridge 規則目標的 AWS Identity and Access Management (IAM) 執行角色與 EventBridge 具有信任關係。信任政策必須將 events.amazonaws.com 納為受信任實體。此外,也請確認執行角色的 IAM 政策包含發佈到目標所需的權限。
信任關係範例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
IAM 政策範例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": [
"arn:aws:sns:Region:Account-ID-of-SNS-Topic:test"
]
}
]
}
**注意:**將 sns:Publish 替換為目標所需的權限,並將 arn:aws:sns:Region:Account-ID-of-SNS-Topic:test 替換為目標資源的 Amazon Resource Name (ARN)。
在目標帳戶中設定 IAM 權限
目標的資源型政策必須授予 EventBridge 存取目標所需的權限。檢閱目標資源的 IAM 政策,確認其具有所需的權限。
Amazon SNS 主題的 IAM 政策範例:
{
"Sid": "AWSEvents_ArticleEvent_Id4950650036948",
"Effect": "Allow",
"Principal": {
"AWS": "IAMRole"
},
"Action": "sns:Publish",
"Resource": "arn:aws:sns:Region:Account-ID-of-SNS-topic:test"
}
**注意:**將 IAMRole 替換為來源帳戶中執行角色的 ARN,並將 arn:aws:sns:Region:Account-ID-of-SNS-topic:test 替換為 SNS 主題的 ARN。
(針對已啟用 SSE 的主題) 確認目標具有所需的 AWS KMS 權限
您的目標必須使用 AWS Key Management Service (AWS KMS) 客戶自管金鑰。此 AWS KMS key 必須包含自訂的金鑰政策,以授予 EventBridge 使用該金鑰的權限。
若要設定所需的 AWS KMS 權限,請完成以下步驟:
- 在與目標資源相同的帳戶中建立新的客戶自管金鑰。確認 AWS KMS key 政策具有讓 EventBridge 存取客戶自管金鑰所需的權限。
政策範例:
{
"Sid": "AWSEvents_ArticleEvent_Id4950650036948",
"Effect": "Allow",
"Principal": {
"AWS": "IAMRole"
},
"Action": ["kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "KMS-key-arn"
}
**注意:**將 IAMRole 替換為 IAM 執行角色的 ARN,並將 KMS-key-ARN 替換為 AWS KMS key ARN。
- 使用客戶自管金鑰設定伺服器端加密 (SSE)。
**注意:**所有目標類型的 SSE 設定指示皆相同。
- 確認 EventBridge 規則的執行角色具有允許 kms:Decrypt API 動作的政策。
政策範例:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": ["kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "KMS-key-arn"
}
]
}
**注意:**將 KMS-key-arn 替換為您的 AWS KMS key ARN。
疑難排解問題
如果 SNS 主題未收到事件通知,請參閱為什麼我的 Amazon SNS 主題未收到 EventBridge 通知?
如果 Lambda 函式未收到事件通知,請參閱為什麼我的 EventBridge 規則未調用我的 Lambda 函式?
如果 Amazon SQS 佇列未收到事件通知,請參閱為什麼我的 Amazon SQS 佇列未收到 EventBridge 通知?
如需更多疑難排解步驟,請參閱如何對跨帳戶或跨區域 EventBridge 規則的問題進行疑難排解?