

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

# Amazon EventBridge의 대상으로 이벤트를 보내기 위한 IAM 역할
<a name="eb-events-iam-roles"></a>

이벤트를 대상으로 중계하려면 EventBridge에 IAM 역할이 필요합니다.

**EventBridge에 이벤트를 보내는 데 필요한 IAM 역할을 생성하는 방법**

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. IAM 역할을 생성하려면 *IAM 사용 설명서*의 [AWS 서비스에 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)의 단계를 따르세요. 단계를 따르면서 다음을 수행합니다.
   + **역할 이름**에 계정 내에서 고유한 이름을 사용합니다.
   + **역할 유형 선택**에서 **AWS 서비스 역할**을 선택한 후 **Amazon EventBridge**를 선택합니다. 이렇게 하면 역할을 수임할 EventBridge 권한이 부여됩니다.
   + **연결 정책**에서 **AmazonEventBridgeFullAccess**를 선택합니다.

EventBridge 작업 및 리소스에 대한 권한을 허용하는 고유의 맞춤 IAM 정책을 생성할 수도 있습니다. 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 사용자 지정 정책을 연결할 수 있습니다. IAM 정책 작성에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM 정책 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)를 참조하세요. 사용자 지정 IAM 정책 관리 및 생성에 대한 자세한 내용 *IAM 사용 설명서*에서 [IAM 정책 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)를 참조하세요.

## EventBridge가 IAM 역할을 사용하여 대상에 액세스하는 데 필요한 권한
<a name="eb-target-permissions"></a>

EventBridge 대상에는 일반적으로 대상을 간접 호출할 수 있는 권한을 EventBridge에 부여하는 IAM 역할이 필요합니다. 다음은 다양한 AWS 서비스 및 대상에 대한 몇 가지 예입니다. 다른 경우에는 EventBridge 콘솔을 사용하여 규칙을 생성하고 충분한 범위의 권한이 미리 구성된 정책으로 생성될 새 역할을 생성합니다.

Amazon SQS, Amazon SNS 및 Lambda 대상은 IAM 실행 역할과 리소스 기반 정책을 모두 지원합니다. CloudWatch Logs 및 EventBridge 버스 대상은 역할을 사용하지 않으므로 리소스 정책을 통해 EventBridge에 대한 권한을 부여해야 합니다. API 게이트웨이 대상은 리소스 정책 또는 IAM 역할을 사용할 수 있습니다.

### API 데스티네이션
<a name="eb-target-permissions-apid"></a>

대상이 API 대상인 경우 지정한 역할에는 반드시 다음 스테이트먼트가 있는 정책이 포함되어야 합니다.
+ **효과**: `Allow`
+ **작업:** `events:InvokeApiDestination`
+ **리소스:** `arn:aws:events:*:*:api-destination/*`

### Kinesis 스트림
<a name="eb-target-permissions-kinesis"></a>

대상이 Kinesis 스트림이면 그 대상에게 이벤트 데이터를 전송하는 데 사용된 역할에 다음 스테이트먼트가 있는 정책이 포함되어야 합니다.
+ **효과**: `Allow`
+ **작업:** `kinesis:PutRecord`
+ **리소스:** `*`

### Systems Manager 실행 명령
<a name="eb-target-permissions-sys"></a>

대상이 Systems Manager 실행 명령이고 해당 명령에 하나 이상의 `InstanceIds` 값을 지정하는 경우에는 지정한 역할에 다음 정책이 반드시 포함되어야 합니다.
+ **효과**: `Allow`
+ **작업:** `ssm:SendCommand`
+ **리소스:** `arn:aws:ec2:{{us-east-1}}:{{accountId}}:instance/{{instanceIds}}`, `arn:aws:ssm:{{us-east-1}}:*:document/{{documentName}}` 

대상이 시스템 관리자 실행 명령이고 해당 명령에 하나 이상의 태그를 지정하는 경우에는 지정한 역할에 다음 두 작업이 있는 정책이 반드시 포함되어야 합니다.
+ **효과**: `Allow`
+ **작업:** `ssm:SendCommand`
+ **리소스:** `arn:aws:ec2:{{}}:{{accountId}}:instance/*`
+ **조건:**

  ```
  "StringEquals": {
    "ec2:ResourceTag/*": [
      "[[tagValues]]"
    ]
  }
  ```

및:
+ **효과**: `Allow`
+ **작업:** `ssm:SendCommand`
+ **리소스:** `arn:aws:ssm:{{us-east-1}}:*:document/{{documentName}}`

### Step Functions 상태 시스템
<a name="eb-target-permissions-step-functions"></a>

대상이 AWS Step Functions 상태 시스템인 경우 지정하는 역할에 다음이 포함된 정책이 포함되어야 합니다.
+ **효과**: `Allow`
+ **작업:** `states:StartExecution`
+ **리소스:** `arn:aws:states:*:*:stateMachine:*`

### Amazon ECS 작업
<a name="eb-target-permissions-ec2"></a>

대상이 Amazon ECS 작업인 경우에는 지정한 역할에 다음 정책이 포함되어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:RunTask"
            ],
            "Resource": [
                "arn:aws:ecs:*:{{111122223333}}:task-definition/{{task-definition-name}}"
            ],
            "Condition": {
                "ArnLike": {
                    "ecs:cluster": "arn:aws:ecs:*:{{111122223333}}:cluster/{{cluster-name}}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "*"
            ],
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "ecs-tasks.amazonaws.com"
                }
            }
        }
    ]
}
```

------

다음 정책은 EventBridge의 기본 제공 대상이 사용자를 대신하여 Amazon EC2 작업을 수행합니다. AWS Management Console 를 사용하여 기본 제공 대상으로 규칙을 생성해야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TargetInvocationAccess",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:RebootInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances",
                "ec2:CreateSnapshot"
            ],
            "Resource": "*"
        }
    ]
}
```

------

다음 정책은 EventBridge가 계정의 Kinesis 스트림으로 이벤트를 릴레이하도록 허용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KinesisAccess",
            "Effect": "Allow",
            "Action": [
                "kinesis:PutRecord"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 고객 관리형 정책 예시: 태그를 사용하여 규칙에 대한 액세스 제어
<a name="eb-customer-managed-policies"></a>

다음 예에서는 EventBridge 작업에 대한 권한을 부여하는 사용자 정책을 보여줍니다. 이 정책은 EventBridge API, AWS SDKs 또는를 사용할 때 작동합니다 AWS CLI.

사용자에게 특정 EventBridge 규칙에 대한 액세스 권한을 부여하고 동시에 다른 규칙에는 액세스하지 못하게 할 수 있습니다. 이렇게 하려면 두 규칙 세트 모두에 태그를 지정한 다음 해당 태그를 참조하는 IAM 정책을 사용합니다. EventBridge 리소스 태깅에 대한 자세한 내용은 [Amazon EventBridge에서 리소스 태그 지정](eb-tagging.md) 단원을 참조하세요.

특정 태그가 있는 규칙에만 액세스할 수 있도록 사용자에게 IAM 정책에 대한 권한을 부여할 수 있습니다. 특정 태그로 규칙에 태그를 지정하여 액세스 권한을 부여할 규칙을 선택합니다. 예를 들어 다음 정책은 태그 키 `Stack`의 값이 `Prod`인 규칙에 대한 사용자 액세스 권한을 부여합니다.

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "events:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Stack": "Prod"
                }
            }
        }
    ]
}
```

IAM 정책 설명 사용에 대한 자세한 내용은 *IAM User Guide*의 [Controlling Access Using Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)를 참조하세요.