

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

# 사용자 지정 이벤트 버스에 사용되는 작업, 리소스 및 조건 키
<a name="eb-custom-bus-access-actions"></a>

IAM 정책을 작성할 때이 페이지를 사용합니다. 여기에는 사용자 지정 이벤트 버스에 대한 모든 `events:` 작업, 각 작업이 검사되는 리소스 ARN, 다른 계정에 부여할 수 있는지 여부 및 추가할 수 있는 조건 키가 나열됩니다. 예를 들어, 역할이 `METADATA` 필터 이름이 `tenant`인 구독자를 연결하도록 하려면의 `ForAnyValue:StringEquals` 조건으로 버스`events:CreateSubscriber`에를 `acme`부여합니다`events:Metadata/tenant`.

## 조건 키
<a name="eb-custom-bus-access-conditions"></a>

EventBridge는 요청에서 다음과 같은 조건 키를 제공하므로 작업 및 리소스 이상으로 권한 부여 범위를 좁힐 수 있습니다. 전역 조건 키는 *IAM 사용 설명서*의 [AWS 전역 조건 컨텍스트 키를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 참조하세요.


| 조건 키 | 값 | 에 제공됨 | 
| --- | --- | --- | 
| events:source | 이벤트의 소스 또는 전달 중인 소스 | PutEvents, CreateEventSource, UpdateEventSource | 
| events:detail-type | 이벤트의 세부 정보 유형 | PutEvents | 
| events:Metadata/{{key}} | METADATA 필터가 해당 키에서 일치하는 값 | CreateSubscriber | 
| events:Metadata/{{key}}/Matcher | exact | CreateSubscriber | 
| events:ContentFilterPresent | true 구독자가 DATA 필터를 선언하는 경우 | CreateSubscriber | 
| aws:ResourceTag/{{key}} | 확인 중인 버스, 구독자 또는 이벤트 소스의 태그 | 리소스에 대해 확인된 모든 작업 | 
| aws:RequestTag/{{key}}, aws:TagKeys | 요청의 태그 | 생성 작업 및 TagResource, UntagResource  | 

메타데이터 키는 값 세트로 제공되므로와 같은 세트 연산자와 일치시킵니다`ForAnyValue:StringEquals`. `METADATA` 필터는 정확히 일치하기 때문에 매처 값은 항상 입니다`exact`. `DATA` 필터는 임의의 JSON과 일치하므로 콘텐츠가 아닌 존재만 노출됩니다.는 대체 구성에서 `events:source` 설정된 로 버스 검사를 `UpdateEventSource` 다시 실행하므로 해당 키의 조건이 다시 지정된 이벤트 소스와 새 이벤트 소스를 제어합니다.

다음 리소스 정책은 구독자의 `METADATA` 필터가와 `tenant` 정확히 일치하는 경우에만 계정이 `orders` 버스에서 구독자를 `444455556666` 생성하도록 허용합니다`acme`. `METADATA` 필터가 없거나 다른 테넌트의 이름을 지정하는 구독자는 거부됩니다. EventBridge는 필터가 선언하는 필드에만 메타데이터 조건 키를 제공하므로 `Null` 조건은를 생략하는 필터를 거부합니다`tenant`.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SubscribeToAcmeEventsOnly",
            "Effect": "Allow",
            "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
            "Action": "events:CreateSubscriber",
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
            "Condition": {
                "Null": { "events:Metadata/tenant": "false" },
                "ForAnyValue:StringEquals": { "events:Metadata/tenant": "acme" },
                "StringEquals": { "events:Metadata/tenant/Matcher": "exact" }
            }
        }
    ]
}
```

## 확인된 작업 및 리소스
<a name="eb-custom-bus-access-actions-table"></a>

다음 표에는 모든 작업, 정책의 `Resource` 요소에 넣을 리소스 ARN, 버스 소유자가 리소스 정책 또는 AWS RAM 공유를 통해 다른 계정에 작업을 부여할 수 있는지 여부가 나와 있습니다. 세 `List` 작업은 리소스에 대해 확인되지 않으므로를 사용하여 부여합니다`"Resource": "*"`.


| IAM 작업 | 에 대해 확인됨 | 다른 계정에 부여 가능 | 
| --- | --- | --- | 
| events:CreateEventBus | 생성 중인 버스 | 아니요. 호출자의 자체 계정에 생성됨 | 
| events:DescribeEventBus | 버스 | 예 | 
| events:UpdateEventBus | 버스 | 아니요. 버스 소유자만 해당 | 
| events:DeleteEventBus | 버스 | 아니요. 버스 소유자만 해당 | 
| events:ListEventBuses | 아무것도 하지 않습니다. 계정 전체 | 아니요. 호출자의 자체 버스와 공유 버스를 나열합니다. | 
| events:PutEvents | 버스, 요청의 항목당 한 번 | 예 | 
| events:PutRawEvents | 버스, 요청의 항목당 한 번 | 예 | 
| events:CreateSubscriber | 버스 및 생성 중인 구독자 | 예 | 
| events:DescribeSubscriber | 구독자 | 구독자의 소유자가 권한을 부여합니다. | 
| events:UpdateSubscriber | 구독자 | 구독자의 소유자가 권한을 부여합니다. | 
| events:DeleteSubscriber | 구독자 | 구독자의 소유자가 권한을 부여합니다. | 
| events:ListSubscribers | 아무것도 하지 않습니다. 계정 전체 | 아니요. 호출자의 자체 구독자를 나열합니다. | 
| events:RevokeResource | 버스 | 아니요. 버스 소유자만 해당 | 
| events:CreateEventSource | 생성 중인 버스 및 이벤트 소스 | 예 | 
| events:DescribeEventSource | 이벤트 소스 | 이벤트 소스의 소유자가 권한을 부여합니다. | 
| events:UpdateEventSource | 이벤트 소스와 버스 다시 | 예, 버스 검사의 경우 | 
| events:DeleteEventSource | 이벤트 소스 | 이벤트 소스의 소유자가 권한을 부여합니다. | 
| events:ListEventSources | 아무것도 하지 않습니다. 계정 전체 | 아니요. 호출자의 자체 이벤트 소스를 나열합니다. | 
| events:PutResourcePolicy | 버스 | 아니요. 버스 소유자만 해당 | 
| events:GetResourcePolicy | 버스 | 예 | 
| events:DeleteResourcePolicy | 버스 | 아니요. 버스 소유자만 해당 | 
| events:ListResourcePolicies | 버스 | 예 | 
| events:TagResource | 요청에 이름이 지정된 버스, 구독자 또는 이벤트 소스 | 버스: 예. 구독자 또는 이벤트 소스: 해당 소유자 | 
| events:UntagResource | 요청에 이름이 지정된 버스, 구독자 또는 이벤트 소스 | 버스: 예. 구독자 또는 이벤트 소스: 해당 소유자 | 
| events:ListTagsForResource | 요청에 이름이 지정된 버스, 구독자 또는 이벤트 소스 | 버스: 예. 구독자 또는 이벤트 소스: 해당 소유자 | 

버스에서 구독자 또는 이벤트 소스를 생성하려면 호출자에게 버스와 새 리소스에 대한 작업이 필요합니다. 버스 소유자는 버스 자체 정책에서 어떤 계정이 어떤 계정을 연결할 수 있는지 결정할 수 있습니다. `CreateSubscriber`는 4개의 개별 권한 부여 검사를 수행하며, 4개 모두 버스, 구독자,의 `iam:PassRole` 역할`InvokeConfiguration.RoleArn`, 요청이 태그를 전달할 때 `events:TagResource` 구독자를 허용해야 합니다.는 `iam:PassRole`이벤트 소스`events:CreateSubscriber``events:CreateSubscriber`에 역할이 없으므로 없이 동일한 검사를 `CreateEventSource` 실행합니다.

**참고**  
아직 존재하지 않는 리소스에는 완전한 ARN이 없으므로 생성 검사는와 같은 와일드카드로 끝나는 ARN을 사용합니다`arn:aws:events:us-east-1:111122223333:subscriber/{{name}}/*`. 따라서 한 구독자로 범위가 지정된 정책은 정확히 일치하는 것이 아니라 이름 접두사를 기준으로 일치합니다. 태그가 지정되지 않은 생성은 새 리소스`aws:ResourceTag`에 대해를 제공하지 않으므로 해당 키의 `StringEquals` 조건은 해당 리소스를 거부합니다.

## 자격 증명 기반 정책 예제
<a name="eb-custom-bus-access-identity"></a>

**생산자는** 버스 ARN에 , `events:PutEvents` `events:PutRawEvents`또는 둘 다 필요합니다. 호출하는 API와 일치하는 작업을 부여합니다. 고객 관리형 키로 암호화된 버스의 생산자 역시 해당 키에 액세스해야 합니다. 단원을 참조하십시오[사용자 지정 이벤트 버스에서 이벤트 암호화](eb-custom-bus-encryption.md). **구독자 소유자**는 `events:CreateSubscriber` 버스와 구독자, 전송 역할, 관리하는 구독자에 `iam:PassRole` 대한 구독자 설명, 업데이트 및 삭제 작업이 필요합니다. **버스 관리자는** 버스 작업 생성, 업데이트 및 삭제, 리소스 정책 작업 4개 및가 필요합니다`events:RevokeResource`.

다음 정책은 생산자가 게시 API를 사용하여 한 버스에 게시하고 버스를 읽어 버스가 `ACTIVE` 먼저인지 확인할 수 있도록 허용합니다. 게시는 요청의 모든 항목에 대해 한 번 승인되며 부분적인 권한 부여는 없습니다. 한 항목이 조건 확인에 실패하면 EventBridge는 통과했을 항목을 포함하여 전체 요청을 거부합니다.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublishToOrdersBus",
            "Effect": "Allow",
            "Action": [
                "events:PutEvents",
                "events:PutRawEvents",
                "events:DescribeEventBus"
            ],
            "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef"
        }
    ]
}
```

## 태그 지정
<a name="eb-custom-bus-access-tagging"></a>

버스, 구독자 또는 이벤트 소스에 태그를 지정할 수 있습니다. 호출 생성 `Tags` 시를 설정하거나 `ListTagsForResource` 이후 `UntagResource`, 및 `TagResource`를 사용합니다. 각 리소스에는 자체 태그 세트가 있으므로 버스에 태그를 지정해도 연결된 구독자 또는 이벤트 소스에 태그가 지정되지 않습니다.

```
aws eventsv2 tag-resource \
    --resource-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --tags team=payments,environment=production
```

생성 응답은 제공한 태그를 에코하지 않으므로 확인이 필요할 `list-tags-for-resource` 때를 사용하여 다시 읽습니다. 로 시작하는 키`aws:`는 용으로 예약되어 AWS 있으며를 포함한 모든 쓰기에서 거부됩니다`UntagResource`. 태그를 지정할 수 있는 사용자를 제어하고 태그에 의존하는 정책을 작성하려면 이전 표의 태그 작업 3개와 `aws:RequestTag`, `aws:ResourceTag`및 `aws:TagKeys` 조건 키를 사용합니다.