기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EventBridge 이벤트 버스에 대한 권한
AWS 계정의 기본 이벤트 버스는 한 계정의 이벤트만 허용합니다. 리소스 기반 정책을 이벤트 버스에 연결하여 추가 권한을 이벤트 버스에 부여할 수 있습니다. 리소스 기반 정책을 사용하면 다른 계정의 PutEvents
, PutRule
및 PutTargets
API 직접 호출을 허용할 수 있습니다. 또한 정책의 IAM 조건을 사용하여 조직에 권한을 부여하거나, 태그를 적용하거나, 특정 규칙 또는 계정의 조직에만 이벤트를 필터링할 수 있습니다. 이벤트 버스 생성 시 또는 이후에 이벤트 버스에 대한 리소스 기반 정책을 설정할 수 있습니다.
PutRule
, PutTargets
, DeleteRule
, RemoveTargets
, DisableRule
및 EnableRule
등의 이벤트 버스 Name
파라미터를 허용하는 EventBridge API는 이벤트 버스 ARN도 허용합니다. 이러한 파라미터를 사용하여 API를 통해 교차 계정 또는 교차 리전 이벤트 버스를 참조합니다. 예를 들어 PutRule
를 호출하면 역할을 맡을 필요 없이 다른 계정의 이벤트 버스에 규칙을 생성할 수 있습니다.
이 주제의 정책 예제를 IAM 역할에 연결하여 이벤트를 다른 계정이나 리전으로 전송할 권한을 부여할 수 있습니다. IAM 역할을 사용하여 사용자 계정에서 다른 계정으로 이벤트를 전송할 수 있는 사람에 대한 조직 제어 정책 및 경계를 설정합니다. 규칙의 대상이 이벤트 버스인 경우 항상 IAM 역할을 사용하는 것이 좋습니다. PutTarget
호출을 사용하여 IAM 역할을 연결할 수 있습니다. 이벤트를 다른 계정이나 리전으로 전송하는 규칙을 생성하는 방법에 대한 자세한 내용은 AWS 계정 간 Amazon EventBridge 이벤트 전송 및 수신 섹션을 참조하세요.
주제
이벤트 버스 권한 관리
기존 이벤트 버스에 대한 권한을 수정하려면 다음 절차를 따릅니다. AWS CloudFormation을 사용해 이벤트 버스 정책을 생성하는 방법에 대한 자세한 내용은 AWS::Events::EventBusPolicy를 참조하세요.
기존 이벤트 버스에 대한 권한을 관리하려면
https://console.aws.amazon.com/events/
에서 Amazon EventBridge 콘솔을 엽니다. -
왼쪽 탐색 창에서 이벤트 버스를 선택합니다.
-
이름에서 권한을 관리할 이벤트 버스의 이름을 선택합니다.
리소스 정책이 이벤트 버스에 연결된 경우 해당 정책이 표시됩니다.
-
권한 관리를 선택하고 다음 중 하나를 수행합니다.
-
이벤트 버스에 부여할 권한이 포함된 정책을 입력합니다. 다른 소스의 정책을 붙여넣거나 정책에 대한 JSON을 입력할 수 있습니다.
-
정책에 템플릿을 사용하려면 템플릿 로드를 선택합니다. 환경에 맞게 정책을 수정하고 정책에서 보안 주체에게 사용 권한을 부여하는 추가 작업을 추가합니다.
-
-
업데이트를 선택합니다.
템플릿은 계정과 환경에 맞게 사용자 지정할 수 있는 예제 정책 구문을 제공합니다. 템플릿은 유효한 정책이 아닙니다. 사용 사례에 맞게 템플릿을 수정하거나 정책 예제 중 하나를 복사하여 사용자 지정할 수 있습니다.
템플릿은 계정에 PutEvents
작업을 사용할 권한을 부여하는 방법, 조직에 권한을 부여하는 방법, 계정의 규칙을 관리할 수 있는 권한을 계정에 부여하는 방법에 대한 예가 포함된 정책을 로드합니다. 특정 계정에 맞게 템플릿을 사용자 지정하고 템플릿에서 다른 섹션을 삭제할 수 있습니다. 더 많은 정책 예제는 이 주제의 뒷부분에 나와 있습니다.
버스에 대한 권한을 업데이트하려고 시도했지만 정책에 오류가 있는 경우 오류 메시지에 정책의 특정 문제가 나타납니다.
### Choose which sections to include in the policy to match your use case. ### ### Be sure to remove all lines that start with ###, including the ### at the end of the line. ### ### The policy must include the following: ### { "Version": "2012-10-17", "Statement": [ ### To grant permissions for an account to use the PutEvents action, include the following, otherwise delete this section: ### { "Sid": "AllowAccountToPutEvents", "Effect": "Allow", "Principal": { "AWS": "<ACCOUNT_ID>" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default" }, ### Include the following section to grant permissions to all members of your AWS Organizations to use the PutEvents action ### { "Sid": "AllowAllAccountsFromOrganizationToPutEvents", "Effect": "Allow", "Principal": "*", "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-yourOrgID" } } }, ### Include the following section to grant permissions to the account to manage the rules created in the account ### { "Sid": "AllowAccountToManageRulesTheyCreated", "Effect": "Allow", "Principal": { "AWS": "<ACCOUNT_ID>" }, "Action": [ "events:PutRule", "events:PutTargets", "events:DeleteRule", "events:RemoveTargets", "events:DisableRule", "events:EnableRule", "events:TagResource", "events:UntagResource", "events:DescribeRule", "events:ListTargetsByRule", "events:ListTagsForResource"], "Resource": "arn:aws:events:us-east-1:123456789012:rule/default", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "<ACCOUNT_ID>" } } }] }
예제 정책: 다른 계정의 기본 버스로 이벤트 전송
다음 예제 정책은 계정 111122223333에 이벤트를 계정 123456789012의 기본 이벤트 버스에 게시할 수 있는 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "sid1", "Effect": "Allow", "Principal": {"AWS":"arn:aws:iam::111112222333:root"}, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default" } ] }
예제 정책: 다른 계정의 사용자 지정 버스로 이벤트 전송
다음 예제 정책은 계정 111122223333에 이벤트를 계정 123456789012의 central-event-bus
에 게시할 수 있는 권한을 부여합니다. 단, 소스 값이 com.exampleCorp.webStore
로 설정되고 detail-type
이 newOrderCreated
로 설정된 이벤트에만 적용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "WebStoreCrossAccountPublish", "Effect": "Allow", "Action": [ "events:PutEvents" ], "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus", "Condition": { "StringEquals": { "events:detail-type": "newOrderCreated", "events:source": "com.exampleCorp.webStore" } } } ] }
예제 정책: 동일한 계정의 이벤트 버스로 이벤트 전송
CustomBus1
이라는 이벤트 버스에 연결된 다음 예제 정책은 이벤트 버스가 동일한 계정 및 리전에서 이벤트를 수신할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:PutEvents" ], "Resource": [ "arn:aws:events:us-east-1:123456789:event-bus/CustomBus1" ] } ] }
예제 정책: 동일한 계정으로 이벤트를 전송하고 업데이트 제한
다음 예제 정책은 계정 123456789012에 규칙을 생성, 삭제, 업데이트, 비활성화 및 활성화하고 대상을 추가 또는 제거할 수 있는 권한을 부여합니다. 이 정책은 소스가 com.exampleCorp.webStore
인 이벤트와 일치하는 규칙을 제한하고, 이러한 규칙 및 대상이 생성되면 계정 123456789012만 이를 수정할 수 있도록 "events:creatorAccount": "${aws:PrincipalAccount}"
를 사용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvoiceProcessingRuleCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": [ "events:PutRule", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:PutTargets", "events:RemoveTargets" ], "Resource": "arn:aws:events:us-east-1:123456789012:rule/central-event-bus/*", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "${aws:PrincipalAccount}", "events:source": "com.exampleCorp.webStore" } } } ] }
예제 정책: 특정 규칙의 이벤트만 다른 리전의 버스로 전송
다음 예제 정책은 계정 123456789012에서 중동(바레인) 및 미국 서부(오레곤) 리전의 SendToUSE1AnotherAccount
라는 규칙과 일치하는 이벤트를 미국 동부(버지니아 북부)의 CrossRegionBus
라는 이벤트 버스로 전송할 수 있는 권한을 계정 111122223333에 부여합니다. 예제 정책은 계정 123456789012에 CrossRegionBus
라는 이벤트 버스에 추가됩니다. 이 정책은 계정 111122223333의 이벤트 버스에 지정된 규칙과 일치하는 경우에만 이벤트를 허용합니다. Condition
구문은 이벤트를 지정된 규칙 ARN이 있는 규칙과 일치하는 이벤트로만 제한합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificRulesAsCrossRegionSource", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:events:us-west-2:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount", "arn:aws:events:me-south-1:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount" ] } } } ] }
예제 정책: 특정 리전의 이벤트만 다른 리전으로 전송
다음 예제 정책은 중동(바레인) 및 미국 서부(오레곤) 리전에서 생성된 모든 이벤트를 미국 동부(버지니아 북부) 리전의 계정 123456789012에서 CrossRegionBus
라는 이벤트 버스로 전송할 수 있는 권한을 계정 111122223333에 부여합니다. 계정 111122223333에는 다른 리전에서 생성된 이벤트를 전송할 권한이 없습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossRegionEventsFromUSWest2AndMESouth1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:events:us-west-2:*:*", "arn:aws:events:me-south-1:*:*" ] } } } ] }
예제 정책: 특정 리전의 이벤트 전송 거부
계정 123456789012의 CrossRegionBus
라는 이벤트 버스에 연결된 다음 예제 정책은 이벤트 버스가 계정 111122223333에서 이벤트를 수신할 수 있는 권한을 부여하지만 미국 서부(오레곤) 리전에서 생성된 이벤트는 허용하지 않습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1AllowAnyEventsFromAccount111112222333", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111112222333:root" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus" }, { "Sid": "2DenyAllCrossRegionUSWest2Events", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "events:PutEvents", "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:events:us-west-2:*:*" ] } } } ] }