

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 지정 이벤트 버스를 다른 계정과 공유
<a name="eb-custom-bus-sharing"></a>

다른 계정이 버스에 게시하거나, 구독자를 연결하거나, 이벤트 소스를 연결하도록 하려면 버스를 AWS Resource Access Manager (AWS RAM)와 공유하고 4가지 관리형 권한 중 하나를 선택합니다. 예를 들어를 `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, 소비자 계정 또는 조직 단위, 버스 리소스 유형에 대한 4가지 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 거부합니다. 정확한 작업 목록을 가정하는 대신 `GetPermission` 작업과 함께 AWS RAM 권한을 다시 읽습니다.

## 버스 공유 해제
<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>

계정과 공유된 버스는 ARN의 소유자 계정과 함께 `ListEventBuses` 결과에 표시되며 버스 리전의 해당 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` 다른 계정의를 재정의할 때 둘 다 평가합니다. 교차 계정 호출자가 거부되고 작성한 정책이 이를 허용하는 것으로 표시되면 다른 정책을 읽습니다.

`orders` 버스에 대한 다음 `default` 정책을 통해 계정은 구독자를 `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`, `GetResourcePolicy`, `DeleteResourcePolicy`및를 사용하여 정책을 관리합니다`ListResourcePolicies`. 각는에서 버스 ARN을 사용하며`--resource-arn`, 각는를 생략할 `default` 때에 적용됩니다`--policy-name`. 을 작성하거나 삭제할 수 없습니다`AWS_RAM`.를 사용하면 이름 지정이 실패합니다`AccessDeniedException`.는 빈 문서를 반환하는 대신 명명된 정책이 없는 `ResourceNotFoundException` 경우를 사용하여 `GetResourcePolicy` 실패하므로 정책이 없는 것으로 취급합니다. 를 통해서만 공유한 버스에는 `default` 정책이 없으므로 AWS RAM 가 해당 오류를 `--policy-name` 반환`get-resource-policy`하지 않고 AWS RAM 가 작성한 정책을 읽`--policy-name AWS_RAM`도록 전달합니다.는 정책 이름과 개정 IDs만 `ListResourcePolicies` 반환하고 문서는 반환하지 않습니다. 쓰기 또는 삭제를 조건부로 만들려면에서 정책의 현재 개정을 전달합니다. `--expected-revision-id`일치하지 않으면 작업이와 함께 실패합니다`ConflictException`. `default` 정책 문서는 최대 20KB일 수 있으며, 에서는 더 큰 정책이 실패합니다`PolicyLengthExceededException`. 이 할당량은 Service Quotas에서 조정할 수 있습니다.

EventBridge는를 사용하여 퍼블릭 액세스 권한을 부여하는 `default` 정책을 거부`PublicPolicyException`하고 연결하지 않습니다. 이 검사는 항상 켜져 있습니다. 문은 보안 주체가 와일드카드이고 호출자를 특정 계정 또는 보안 주체로 제한하는 조건이 없는 경우 퍼블릭 액세스 권한을 부여합니다. 와 같은 이벤트 콘텐츠의 조건은 호출자를 식별하지 `events:source`않습니다. 와 같은 조건`aws:PrincipalOrgID`입니다. 작성하는 정책은에 표시되지 AWS RAM않으므로 사용자가 추적합니다.

## 게시 호출 없이 도착하는 이벤트
<a name="eb-custom-bus-access-forwarded"></a>

이벤트는 이벤트 소스, 규칙 또는 대상이이 버스인 다른 버스의 구독자로부터 직접 `PutEvents` 또는 `PutRawEvents` 직접 호출 없이 버스에 도착합니다. 이벤트 소스를 생성할 때 이벤트 소스가 한 번 승인되고 이벤트가 도착하면 아무것도 다시 확인되지 않으므로 버스 정책은 나중에 해당 트래픽을 필터링할 수 없습니다. [사용자 지정 이벤트 버스의 이벤트 소스](eb-custom-bus-event-sources.md) 섹션을 참조하세요. 버스를 직접 가리키는 규칙 또는 구독자는 모든 이벤트에 대해 제공한 역할에 따라 수집 시 권한이 부여됩니다. EventBridge는 이벤트당, 즉 실제 AWS 서비스 또는 파트너 이벤트의 경우 , 시작된 이벤트`events:PutRawEvents`의 경우 `events:PutEvents`을 선택합니다. 사용되는 작업을 선택할 수 없으므로 한 경로를 통해 두 종류의 이벤트를 모두 전달하는 전달자에게 역할의 자격 증명 정책과 대상 버스의 리소스 정책에서 두 작업을 모두 부여해야 합니다. 를 하나만 부여하면 스트림의 절반이 거부됩니다.