Step Functions가 통합 서비스용 IAM 정책을 생성하는 방법 - AWS Step Functions

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

Step Functions가 통합 서비스용 IAM 정책을 생성하는 방법

AWS Step Functions콘솔에서 상태 시스템을 생성할 때 Step Functions는AWS Identity and Access Management 다음과 같이 상태 시스템 정의에 사용되는 리소스를 기반으로 (IAM) 정책을 생성합니다.

  • 최적화된 통합의 경우 Step Functions는 상태 머신에 필요한 권한과 역할이 포함된 정책을 생성합니다.

    팁: 최적화된 서비스 통합 아래의 각 서비스 페이지에서 정책 예제를 볼 수 있습니다.

  • 표준 통합 통합의 경우 Step Functions는 부분 권한이 있는 IAM 역할을 생성합니다.

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

동적 리소스와 정적 리소스

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

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

.sync를 사용하는 작업에 대한 추가 권한

작업 실행(.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:PutRuleevents:DescribeRule에 대한 권한이 필요합니다. 역할에서 이러한 권한이 누락되면 Step Functions에서 작업 완료를 인식하기까지 지연이 발생할 수 있습니다. EventBridge 이벤트에 대한 자세한 내용은 AWS서비스의 이벤트를 참조하세요.

멈춘 .sync 워크플로 문제 해결

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

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

폴링 권한이 올바르게 구성되었는지 확인하려면 다음과 같은 방법으로 EventBridge 이벤트가 없는 환경에서 실행을 실행하면 됩니다.

  • Step Functions에 이벤트를 전달하는 EventBridge에서 관리형 규칙을 삭제합니다.

    참고

    관리형 규칙은 계정의 모든 상태 머신에서 공유되므로 다른 상태 머신에 의도치 않은 영향이 미치지 않도록 테스트 또는 개발 계정을 사용해야 합니다.

  • 대상 서비스의 정책 템플릿에서 events:PutRule에 사용되는 Resource 필드를 검사하여 삭제할 특정 관리형 규칙을 식별할 수 있습니다. 관리형 규칙은 다음에 서비스 통합을 사용하는 상태 머신을 만들거나 업데이트할 때 다시 생성됩니다.

  • EventBridge 규칙을 삭제하는 방법에 대한 자세한 내용은 규칙 비활성화 또는 삭제를 참조하세요.

워크플로 취소 권한

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

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

통합 패턴에 대해 자세히 알아보기

동기 작업에 대한 자세한 내용은 Step Functions에서 서비스 통합 패턴 검색 섹션을 참조하세요.