기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 지정 이벤트 버스의 이벤트 소스
이벤트 소스는 AWS 서비스 또는 SaaS 파트너의 이벤트를 사용자 지정 이벤트 버스로 수집합니다. 를 사용하여 대상 버스와와 같은 하나의 오리진 CreateEventSource이름을 지정aws.s3하면 EventBridge가 오리진에서 버스로 이벤트를 전송합니다. 자체 애플리케이션은 버스에 직접 게시하므로 직접 생성하지 않는 이벤트에 대해서만 이벤트 소스가 필요합니다.
수집된 이벤트는 콘텐츠 유형이 인 EventBridge 봉투의 대상 버스에 도착합니다application/eventbridge+json. 이벤트 데이터에는 source, , , detail-type, accounttime, 및 봉투 필드가 들어 region resources있습니다detail. 또한 EventBridge는 봉투의 aws:Source 및에서 source 및 aws:DetailType 시스템 메타데이터 필드를 설정합니다detail-type. 이벤트 구조: 데이터, 메타데이터 및 시스템 메타데이터 섹션을 참조하세요.
이벤트 이동 방법
이벤트 소스를 생성하면 EventBridge는 사용자 지정 이벤트 버스 - Classic에서 계정에 관리형 규칙과 대상을 생성하고 오리진에서 사용자 지정 이벤트 버스로 이벤트를 전달합니다. 둘 다가 로 ManagedBy 설정된 계정에 표시됩니다events.amazonaws.com. 이를 관리하지 않습니다. 이벤트 소스를 삭제하거나 취소하면 제거됩니다. 따라서 이벤트는 사용자 지정 이벤트 버스 - Classic의 지표에 계속 표시됩니다.
AWS 서비스 이벤트 소스
AWS 서비스 이벤트 소스는 aws.s3 또는와 같은 하나의 AWS 서비스가 계정에 대해 aws.ec2내보내는 이벤트를 수집합니다. 기본적으로 해당 서비스의 모든 이벤트는 버스에 도착합니다. 범위를 좁히려면를 추가합니다Pattern. 다음 예제에서는 Amazon S3 객체 생성 이벤트만 허용하는 이벤트 소스를 생성합니다.
aws eventsv2 create-event-source \ --name s3-object-created \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --configuration '{"AwsServiceEventsConfiguration":{"AwsService":"aws.s3","Pattern":"{\"detail-type\":[\"Object Created\"]}"}}'
이벤트 소스의 패턴은 버스로 통과하는 항목을 결정합니다. 구독자의 필터는 버스를 통해 흐르는 이벤트에서 구독자가 수신하는 항목을 결정합니다. 단원을 참조하십시오구독자에 대한 이벤트 필터링. EventBridge 이벤트 패턴 구문(Amazon EventBridge 이벤트 패턴)에 패턴을 쓰면 EventBridge가 봉투를 기준으로 패턴을 평가합니다. source 키와 최상위 account 및 region 키를 패턴에서 벗어나 둡니다. EventBridge는 계정 및 리전과 선택한 서비스에서 이러한 조건 자체를 추가하고 해당 조건을 제공하는 패턴을 거부합니다.
파트너 이벤트 소스
파트너 이벤트 소스는 SaaS 파트너가 계정으로 보내는 이벤트를 수집합니다. 계정을 생성하기 전에 파트너는 계정에 파트너 이벤트 소스를 제공해야 하며( 참조Amazon EventBridge를 사용해 SaaS 파트너로부터 이벤트 수신) 해당 소스는 PENDING 상태여야 합니다. 다음 예제에서는 이에 대한 이벤트 소스를 생성합니다.
aws eventsv2 create-event-source \ --name example-partner-events \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --configuration '{"PartnerEventsConfiguration":{"PartnerEventSourceArn":"arn:aws:events:us-east-1::event-source/aws.partner/example.com/12345"}}'
이벤트 소스를 생성하면 EventBridge는 계정에 관리형 파트너 이벤트 버스(사용자 지정 이벤트 버스 - Classic)를 생성하여 파트너 소스를 활성화합니다. 이벤트 소스를 삭제하면 EventBridge는 해당 버스를 삭제하고 파트너 소스를에 반환합니다PENDING. 고객 관리형 키로 해당 버스를 암호화하려면 PartnerBusKmsKeyIdentifier를 계정 및 리전의 키로 설정합니다. 그렇지 않으면 EventBridge는 AWS 소유 키를 사용합니다.
Dead Letter Queue(DLQ)
버스에 도달하지 못하는 이벤트를 캡처하려면 OnFailureConfiguration.Arn를 계정 및 리전의 표준 Amazon SQS 대기열로 설정하면 FIFO 대기열이 거부됩니다. 메시지는 사용자가 제공하는 역할이 아닌 events.amazonaws.com 서비스 보안 주체의 대기열sqs:SendMessage에 도착하므로 대기열의 리소스 정책에 해당 보안 주체를 부여합니다.
{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-1:111122223333:my-event-source-dlq", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } }
파트너 이벤트 소스는 관리형 규칙, 전송 실패의 경우 , 암호화 실패의 경우 관리형 파트너 이벤트 버스의 두 가지 소스 ARNs으로 대기열로 보냅니다. 조건을 지정하는 정책은 둘 다 허용aws:SourceArn해야 합니다.
권한
다른 계정의 버스에서 이벤트 소스를 생성하려면 버스 소유자가 AWS RAM 공유(AWSRAMEventBridgeEventBusV2EventSourceAccess 또는 FullAccess)를 events:CreateEventSource통해 또는 버스의 PutResourcePolicy 문을 사용하여에 권한을 부여해야 합니다. events:source 조건 키에는 AWS 서비스 이름 또는 파트너 이벤트 소스 이름이 포함되어 있으므로 버스 소유자는 특정 오리진을 허용하거나 거부할 수 있습니다. 사용자 지정 이벤트 버스를 다른 계정과 공유 섹션을 참조하세요.
관리형 파트너 이벤트 버스를 암호화하려면 ID에에서 지정한 키kms:Decrypt에 kms:DescribeKey 및가 필요하며, 그렇지 PartnerBusKmsKeyIdentifier않으면에서 CreateEventSource 실패합니다AccessDeniedException.
{ "Effect": "Allow", "Action": ["kms:DescribeKey", "kms:Decrypt"], "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
다른 계정이 대상 버스를 소유하고 고객 관리형 키로 암호화하는 경우 해당 키의 정책도 계정을 허용해야 합니다. 그렇지 않으면 이벤트 소스의 생성, 업데이트 및 설명이 실패합니다.
수집된 이벤트 구독
구독자의 AWS 서비스 또는 파트너 이벤트를 일치시키려면 aws:Source 시스템 메타데이터 필드를 기준으로 필터링합니다. EventBridge는이 필드를 작성하며 게시 호출은 로 시작하는 값을 설정할 수 aws.없으므로 해당 값에 대한 일치는 이벤트의 오리진을 입증하는 유일한 일치입니다. 서비스 이벤트의 경우 AWS 서비스 이름과 일치하고, 파트너 이벤트의 경우 파트너 이벤트 소스 이름과 일치합니다.
{ "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" } { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[{\"prefix\":\"aws.partner/example.com\"}]}" }
이벤트 콘텐츠를 필터링하려면 DATA 필터를 추가합니다. 봉투는 아래에 콘텐츠를 포함합니다detail.
{ "Scope": "DATA", "Pattern": "{\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" }
이벤트 데이터에는 source 및 도 포함되며 detail-type게시자는 이러한 값을 페이로드에 쓸 수 있으므로 오리진을 증명하지 않습니다. 존재가 아닌 값aws:Source별 일치: 직접 PutEvents 호출은 자체 aws:Source에서 도 설정합니다. Source이 값은 로 시작하지 않습니다aws..
이벤트 소스 영구 중지
버스 소유자는 ARNRevokeResource으로를 호출하여 이벤트 소스 수집을 영구적으로 중지할 수 있습니다. 단원을 참조하십시오구독자 또는 이벤트 소스 취소. 취소된 이벤트 소스는 복원할 수 없습니다. 해지에는 사용자가 지정한 리소스 하나가 포함되므로 동일한 계정이 다른 리소스를 생성하지 못하도록 하는 버스 리소스 정책과 페어링합니다. 계정이 버스에서 이벤트 소스를 생성하지 못하도록 차단하려면:
{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "events:CreateEventSource", "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef" }
다른 오리진을 허용하면서 한 오리진을 차단하려면에서 거부 조건을 지정합니다events:source.
{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "events:CreateEventSource", "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef", "Condition": { "StringEquals": { "events:source": "aws.partner/example.com/12345" } } }
이벤트가 버스로 교차하는지 확인
두 가지 지표 세트는 수집된 이벤트가 사용자 지정 이벤트 버스에 도달하는지 여부를 보여줍니다. 관리형 규칙은 계정의 일반적인 규칙 지표를 아래에 보고합니다AWS/Events. 대상 버스의 게시 지표에는 인바운드 트래픽에 대한 per-event-source 분석을 제공하는 EventSource차원이 있습니다. 섹션을 참조하세요사용자 지정 이벤트 버스에 대한 관찰성: 지표, 로그 및 CloudTrail.
구독자가 계정 간에 사용자 지정 이벤트 버스에서 다른 사용자 지정 이벤트 버스로 이벤트를 전달하는 경우, AWS 서비스 및 파트너 이벤트는 이벤트의 구조와 콘텐츠가 그대로 유지되는 aws:DetailType 한 aws:Source 및를 유지합니다. EventBridge는를 사용하여 대상 버스에 도착하도록 승인events:PutEvents하므로 대상 버스의 리소스 정책은 전달 역할에 해당 작업을 부여해야 합니다. 게시된 애플리케이션이를 사용하는 이벤트events:PutRawEvents이므로 둘 다 혼합하는 스트림에는 두 작업이 모두 필요합니다. 단원을 참조하십시오이벤트 버스 대상: 버스에서 버스로.