기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 지정 이벤트 버스에 사용되는 작업, 리소스 및 조건 키
IAM 정책을 작성할 때이 페이지를 사용합니다. 여기에는 사용자 지정 이벤트 버스에 대한 모든 events: 작업, 각 작업이 검사되는 리소스 ARN, 다른 계정에 부여할 수 있는지 여부 및 추가할 수 있는 조건 키가 나열됩니다. 예를 들어, 역할이 METADATA 필터 이름이 tenant인 구독자를 연결하도록 하려면의 ForAnyValue:StringEquals 조건으로 버스events:CreateSubscriber에를 acme부여합니다events:Metadata/tenant.
조건 키
EventBridge는 요청에서 다음과 같은 조건 키를 제공하므로 작업 및 리소스 이상으로 권한 부여 범위를 좁힐 수 있습니다. 전역 조건 키는 IAM 사용 설명서의 AWS 전역 조건 컨텍스트 키를 참조하세요.
| 조건 키 | 값 | 에 제공됨 |
|---|---|---|
events:source | 이벤트의 소스 또는 전달 중인 소스 | PutEvents, CreateEventSource, UpdateEventSource |
events:detail-type | 이벤트의 세부 정보 유형 | PutEvents |
events:Metadata/ | METADATA 필터가 해당 키에서 일치하는 값 | CreateSubscriber |
events:Metadata/ | exact | CreateSubscriber |
events:ContentFilterPresent | true 구독자가 DATA 필터를 선언하는 경우 | CreateSubscriber |
aws:ResourceTag/ | 확인 중인 버스, 구독자 또는 이벤트 소스의 태그 | 리소스에 대해 확인된 모든 작업 |
aws:RequestTag/, 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" } } } ] }
확인된 작업 및 리소스
다음 표에는 모든 작업, 정책의 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:CreateSubscriberevents:CreateSubscriber에 역할이 없으므로 없이 동일한 검사를 CreateEventSource 실행합니다.
참고
아직 존재하지 않는 리소스에는 완전한 ARN이 없으므로 생성 검사는와 같은 와일드카드로 끝나는 ARN을 사용합니다arn:aws:events:us-east-1:111122223333:subscriber/. 따라서 한 구독자로 범위가 지정된 정책은 정확히 일치하는 것이 아니라 이름 접두사를 기준으로 일치합니다. 태그가 지정되지 않은 생성은 새 리소스name/*aws:ResourceTag에 대해를 제공하지 않으므로 해당 키의 StringEquals 조건은 해당 리소스를 거부합니다.
자격 증명 기반 정책 예제
생산자는 버스 ARN에 , events:PutEvents events:PutRawEvents또는 둘 다 필요합니다. 호출하는 API와 일치하는 작업을 부여합니다. 고객 관리형 키로 암호화된 버스의 생산자 역시 해당 키에 액세스해야 합니다. 단원을 참조하십시오사용자 지정 이벤트 버스에서 이벤트 암호화. 구독자 소유자는 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" } ] }
태그 지정
버스, 구독자 또는 이벤트 소스에 태그를 지정할 수 있습니다. 호출 생성 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 조건 키를 사용합니다.