

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

# Step Functions가 통합 서비스용 IAM 정책을 생성하는 방법
<a name="service-integration-iam-templates"></a>

 AWS Step Functions 콘솔에서 상태 시스템을 생성하면 Step Functions는 AWS Identity and Access Management 다음과 같이 상태 시스템 정의에 사용되는 리소스를 기반으로 (IAM) 정책을 생성합니다.
+ **최적화된 통합**의 경우 Step Functions는 상태 머신에 필요한 권한과 역할이 포함된 정책을 생성합니다.

  팁: [최적화된 서비스 통합](integrate-optimized.md) 아래의 각 서비스 페이지에서 정책 예제를 볼 수 있습니다.
+ **표준 통합** 통합의 경우 Step Functions는 부분 권한이 있는 IAM 역할을 생성합니다.

  상태 머신이 서비스와 상호 작용하는 데 필요한 누락된 역할 정책을 추가해야 합니다.

## 동적 리소스와 정적 리소스
<a name="connect-iam-dynamic-static"></a>

*정적 리소스*는 상태 머신의 태스크 상태에서 **직접** 정의됩니다. 태스크 상태에서 직접 호출할 리소스에 대한 정보를 포함하면 Step Functions에서 해당 리소스에 대한 IAM 역할만 만들 수 있습니다.

*동적 리소스*는 상태 머신을 시작할 때 입력으로 전달되거나 개별 상태에 대한 입력으로 **전달**되고 JSONata 또는 JSONPath를 사용하여 액세스됩니다. 작업에 동적 리소스를 전달할 때 Step Functions는 권한의 범위를 자동으로 축소할 수 없으므로 Step Functions는 다음을 지정하는 보다 허용적인 정책을 생성합니다. `"Resource": "*"`.

## .sync를 사용하는 작업에 대한 추가 권한
<a name="connect-iam-sync-async"></a>

[작업 실행(.sync)](connect-to-resource.md#connect-sync)을 사용하는 작업의 경우 연결된 서비스의 API 작업에서 응답을 수신하고 모니터링하려면 추가 권한이 필요합니다.

Step Functions는 연결된 서비스에서 작업이 실행될 때 **폴링** 및 **이벤트** 등 2가지 방법을 사용하여 작업 상태를 모니터링합니다.

폴링에는 `Describe` 또는 `Get` API 작업에 대한 권한이 필요합니다. 예를 들어 Amazon ECS의 경우 상태 시스템에에 대한 허용 권한이 있어야 하고 `ecs:DescribeTasks`상태 AWS Glue 시스템의 경우에 대한 허용 권한이 있어야 합니다`glue:GetJobRun`. 역할에서 필요한 권한이 누락되면 Step Functions에서 작업 상태를 확인하지 못할 수 있습니다. 폴링 방법을 사용하는 한 가지 이유는 일부 작업 실행(.sync) 서비스 통합에서 EventBridge 이벤트를 지원하지 않고 일부 서비스는 최선의 노력으로만 이벤트를 전송하기 때문입니다.

또는 AWS 서비스에서 Amazon EventBridge로 전송된 이벤트를 사용할 수 있습니다. 이벤트는 관리형 규칙을 사용하여 EventBridge에서 Step Functions로 라우팅되므로 역할에는 `events:PutTargets`, `events:PutRule` 및 `events:DescribeRule`에 대한 권한이 필요합니다. 역할에서 이러한 권한이 누락되면 Step Functions에서 작업 완료를 인식하기까지 지연이 발생할 수 있습니다. EventBridge 이벤트에 대한 자세한 내용은 [AWS 서비스의 이벤트를 참조하세요](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html).

## 멈춘 .sync 워크플로 문제 해결
<a name="polling-events-troubleshooting"></a>

폴링과 이벤트를 **모두** 지원하는 작업 실행(.sync) 작업의 경우 역할에 폴링에 필요한 권한이 없는 경우에도 이벤트를 사용하여 작업이 제대로 완료될 수 있습니다.

이전 시나리오에서는 폴링 권한이 누락되거나 올바르지 않을 수 있습니다. 드문 경우이긴 하지만 Step Functions에서 이벤트를 전달하거나 처리할 수 없으면 실행이 중단될 수 있습니다.

 폴링 권한이 올바르게 구성되었는지 확인하려면 다음과 같은 방법으로 EventBridge 이벤트가 없는 환경에서 실행을 실행하면 됩니다.
+  Step Functions에 이벤트를 전달하는 EventBridge에서 관리형 규칙을 삭제합니다.
**참고**  
 관리형 규칙은 계정의 모든 상태 머신에서 공유되므로 다른 상태 머신에 의도치 않은 영향이 미치지 않도록 테스트 또는 개발 계정을 사용해야 합니다.
+ 대상 서비스의 정책 템플릿에서 `events:PutRule`에 사용되는 `Resource` 필드를 검사하여 삭제할 특정 관리형 규칙을 식별할 수 있습니다. 관리형 규칙은 다음에 서비스 통합을 사용하는 상태 머신을 만들거나 업데이트할 때 다시 생성됩니다.
+  EventBridge 규칙을 삭제하는 방법에 대한 자세한 내용은 [규칙 비활성화 또는 삭제](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html)를 참조하세요.

## 워크플로 취소 권한
<a name="iam-cancel-tasks"></a>

작업 실행(.sync) 패턴을 사용하는 작업이 중지되면 Step Functions는 최선을 다해 작업을 취소합니다.

작업을 취소하려면 `batch:TerminateJob` 또는 `eks:DeleteCluster`와 같은 `Cancel`, `Stop`, `Terminate` 또는 `Delete` API 작업에 대한 권한이 필요합니다. 역할에 이러한 권한이 없으면 Step Functions에서 작업을 취소할 수 없으며 작업을 계속 실행하는 동안 추가 요금이 발생할 수 있습니다. 작업 중지 방법에 자세한 내용은 [작업 실행](connect-to-resource.md#connect-sync)을 참조하세요.

**통합 패턴에 대해 자세히 알아보기**  
 동기 작업에 대한 자세한 내용은 [Step Functions에서 서비스 통합 패턴 검색](connect-to-resource.md) 섹션을 참조하세요.