한 AWS 계정의 이벤트에서 다른 계정의 대상으로 알림을 보내도록 Amazon EventBridge 규칙을 설정하려고 합니다.
해결 방법
소스 계정에 규칙 만들기
이벤트를 다른 계정으로 보내는 규칙을 만듭니다.
참고: 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 리소스 이름(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 키에는 EventBridge에 키 사용 권한을 부여하는 사용자 지정 키 정책이 포함되어야 합니다.
필요한 AWS KMS 권한을 설정하려면 다음 단계를 완료하십시오.
- 대상 리소스와 동일한 계정에 새 고객 관리형 키를 만듭니다. AWS KMS 키 정책에 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 키 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 키 ARN으로 바꿉니다.
문제 해결
SNS 주제가 이벤트 알림을 받지 못하는 경우 Amazon SNS 주제가 EventBridge 알림을 받지 못한 이유는 무엇입니까?를 참조하십시오.
Lambda 함수가 이벤트 알림을 받지 못하는 경우 EventBridge 규칙이 Lambda 함수를 호출하지 않은 이유는 무엇입니까?를 참조하십시오.
Amazon SQS 대기열이 이벤트 알림을 받지 못하는 경우 Amazon SQS 대기열이 EventBridge 알림을 수신하지 못하는 이유는 무엇입니까?를 참조하십시오.
추가 문제 해결 단계는 교차 계정 또는 교차 리전 EventBridge 규칙과 관련된 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.