한 AWS 계정에서 Amazon EventBridge 규칙을 구성하여 다른 계정의 사용자 지정 이벤트 버스로 이벤트를 전송하려고 합니다.
해결 방법
대상 계정에서 이벤트 버스를 만들고 다음과 같은 리소스 기반 정책을 구성합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "WebStoreCrossAccountPublish",
"Effect": "Allow",
"Action": [
"events:PutEvents"
],
"Principal": {
"AWS": "arn:aws:iam::AccountA:root"
},
"Resource": "arn:aws:events:Region:AccountB:event-bus/central-event-bus"
}
]
}
참고: AccountA를 소스 계정의 AWS 계정 ID로, Region을 대상 계정의 AWS 리전으로, AccountB를 대상 계정의 계정 ID로 바꿉니다.
그 후 다음 단계를 완료하여 규칙을 구성하십시오.
- 소스 계정에서 EventBridge 콘솔을 엽니다.
- 탐색 창에서 규칙을 선택한 다음, 규칙 만들기를 선택합니다.
- 이벤트 버스 선택에서 AWS 기본 이벤트 버스를 선택합니다.
- 대상 선택에서 대상을 선택한 다음, 다른 AWS 계정의 이벤트 버스를 선택합니다.
- 이벤트 버스를 선택한 다음, 대상 계정 이벤트 버스의 Amazon 리소스 이름(ARN)을 입력합니다.
- 역할에서 대상 이벤트 버스에 대한 PutEvents 권한이 있는 AWS Identity and Access Management(IAM) 역할을 선택합니다. 사용할 수 있는 기존 역할이 없는 경우 다음 권한 정책을 사용하여 IAM 역할을 만듭니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"events:PutEvents"
],
"Resource": [
"EventBusARN"
]
}
]
}
참고: EventBusARN을 대상 계정 이벤트 버스의 ARN으로 바꿉니다.
- 규칙 만들기를 선택합니다.
관련 정보
Amazon EventBridge의 AWS 계정 간 이벤트 전송 및 수신