> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon Elastic Compute Cloud (EC2)

> 교차 계정 IAM 역할로 Amazon EC2를 Iru Compliance에 연결하여 인스턴스 인벤토리, 보안 그룹 및 VPC 네트워크 메타데이터를 증거로 수집합니다.

### Amazon Elastic Compute Cloud (EC2) 정보

**Amazon EC2** 커넥터는 AWS 계정에서 **인스턴스 인벤토리**, **보안 그룹**, **VPC 토폴로지**, **AMI 메타데이터** 및 관련 **컴퓨팅** 세부 정보를 수집하여 Iru Compliance의 통제에 첨부할 수 있도록 합니다. Iru는 \*\*`sts:AssumeRole`\*\*을 사용하여 사용자 계정에 **직접 생성한 IAM 역할**로 AWS API를 호출합니다. 이 역할은 Iru의 AWS principal을 신뢰하며 커넥터 마법사에 표시되는 **external ID**를 강제합니다. 액세스는 **읽기 전용**이므로 Iru는 이 소스를 통해 인스턴스를 시작, 중지 또는 종료하지 않습니다.

### 작동 방식

Iru는 **Iru의 AWS 계정**에서 실행됩니다. **사용자** 계정에 다음과 같은 **고객 관리형 IAM 역할**을 생성합니다.

1. \*\*`sts:ExternalId`\*\*가 Iru에 표시된 값과 일치할 때만 Iru의 역할 ARN(마법사에 표시됨)을 **신뢰**합니다.
2. 일반적으로 \*\*`AmazonEC2ReadOnlyAccess`\*\*를 통해, 또는 보안 팀이 최소 권한을 선호하는 경우 더 엄격한 인라인 정책을 통해 읽기 전용 EC2 및 관련 호출을 **허용**합니다.

역할 **ARN**을 커넥터에 다시 복사합니다. 그러면 Iru가 해당 역할을 위임받아 리전별 EC2 데이터를 읽습니다(Iru는 활성화된 리전을 순회합니다).

| 세부 정보 | 값 |
| - | - |
| **카테고리** | Developer tools |
| **인증** | 교차 계정 IAM 역할(`sts:AssumeRole` + external ID) |

참고 자료: [AmazonEC2ReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html), [EC2 IAM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam.html).

### 사전 요구 사항

* **역할을 생성**하고 정책을 연결할 수 있는 IAM 권한(예: **`IAMFullAccess`** 또는 범위가 더 좁은 관리자 역할).
* **사용자** 테넌트의 커넥터 화면에 표시되는 **Iru principal ARN** 및 **external ID**(현재 Iru에 표시되는 값과 일치하지 않는 한 아래 예시의 샘플 값은 사용하지 마세요).

### Amazon EC2를 Iru에 연결

<Tabs>
  <Tab title="Iru Compliance">
    <Note>
      여기서 시작하세요. 소스 마법사를 열고 **신뢰 정책**을 검토하세요(**external ID**도 기록해 두세요). AWS에서 역할을 생성할 준비가 되면 [**AWS**](#aws) 탭으로 전환하여 [**IAM 역할 생성**](#create-the-iam-role)을 따르세요. **Role ARN**을 얻은 후 [**Iru Compliance**](#iru-compliance) 탭으로 돌아가 아래의 [**Iru에 역할 ARN 제출**](#submit-the-role-arn-in-iru)을 완료하세요.
    </Note>

    #### Iru에서 신뢰 정책 가져오기

    <Steps>
      <Step title="소스 열기">
        Iru Compliance의 왼쪽 탐색 모음에서 **컴플라이언스**를 펼치고 **소스**를 선택하세요.

        <Frame>
          <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="왼쪽 탐색: Compliance가 펼쳐지고 Sources가 선택됨" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="AWS Elastic Compute Cloud (EC2) 켜기">
        \*\*AWS Elastic Compute Cloud (EC2)\*\*를 찾으세요(**범주** 또는 **이름 또는 설명으로 검색** 사용). 해당 카드에서 **토글**을 켜세요. **Iru가 외부 서비스에 대한 액세스를 요청하고 있습니다** 마법사 탭은 열어 두세요.
      </Step>

      <Step title="신뢰 정책 JSON 검토">
        마법사는 역할 ARN을 요청하고 IAM 역할이 사용해야 하는 **신뢰 정책**(**Principal** 및 **sts:ExternalId**)을 표시합니다. 아래는 구조의 **예시**입니다. 계정, principal ARN 및 external ID가 정확히 일치하도록 **마법사에 표시된 실제 JSON을 복사하세요**.

        ```json copy=false lines theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                "AWS": "arn:aws:iam::753695775620:role/IruConnect"
              },
              "Condition": {
                "StringEquals": {
                  "sts:ExternalId": "YOUR_EXTERNAL_ID"
                }
              },
              "Action": "sts:AssumeRole"
            }
          ]
        }
        ```
      </Step>

      <Step title="역할을 생성하기 위해 AWS로 전환">
        참고용으로 Iru 마법사 탭을 열어 둔 채 [**AWS**](#aws) 탭으로 전환하여 [**IAM 역할 생성**](#create-the-iam-role)을 따르세요.
      </Step>
    </Steps>

    #### Iru에 역할 ARN 제출

    <Note>
      새 역할의 **Role ARN**을 확보할 수 있도록 먼저 [**AWS**](#aws) 탭([**IAM 역할 생성**](#create-the-iam-role)까지)을 완료하세요.
    </Note>

    <Steps>
      <Step title="IAM Role ARN 붙여넣기">
        Iru 마법사 탭으로 돌아가세요. **Role ARN** 필드에 **Role ARN**을 붙여넣으세요.
      </Step>

      <Step title="연결 완료">
        **Submit Role**을 선택하세요. 연결이 성공하면 마법사에 **연결 구성됨**이 표시됩니다.
      </Step>

      <Step title="소스가 활성인지 확인">
        **Iru가 외부 서비스에 대한 액세스를 요청하고 있습니다** 브라우저 탭을 닫은 다음 **컴플라이언스** → **소스**로 돌아가 **EC2** 카드가 **활성** 상태인지 확인하세요.
      </Step>
    </Steps>
  </Tab>

  <Tab title="AWS">
    <Note>
      이 역할을 생성하기 전에 [**Iru Compliance**](#iru-compliance) 탭에서 [**Iru에서 신뢰 정책 가져오기**](#get-the-trust-policy-from-iru)를 완료하세요. **Trusted entity**를 구성할 때 실제 마법사의 **external ID**와 신뢰 정책을 사용하세요.
    </Note>

    #### IAM 역할 생성

    <Steps>
      <Step title="역할 생성 워크플로 시작">
        EC2 워크로드를 소유한 AWS 계정에 로그인하세요. **IAM** → **Roles** → **Create role**을 여세요.
      </Step>

      <Step title="신뢰할 수 있는 엔터티 구성">
        **AWS account** → **Another AWS account**를 선택하세요. Iru의 AWS 계정 ID(마법사에 다른 값이 표시되지 않는 한 **`753695775620`**)를 입력하세요. **Require external ID**를 활성화하고 Iru 마법사의 **external ID**를 붙여넣으세요.
      </Step>

      <Step title="EC2 읽기 권한 연결">
        **권한**에서 \*\*`AmazonEC2ReadOnlyAccess`\*\*를 연결하세요.

        보안 팀이 관리형 정책을 사용하지 **않는** 경우 대신 아래 JSON으로 **인라인 정책**을 연결하세요. 이 JSON은 최소 권한 대안의 **예시**이므로 팀의 검토 후 작업을 강화하거나 확장하세요.

        ```json lines theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "ec2:Describe*",
                "ec2:Get*",
                "elasticloadbalancing:Describe*",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:Describe*",
                "autoscaling:Describe*"
              ],
              "Resource": "*"
            }
          ]
        }
        ```
      </Step>

      <Step title="역할 이름 지정 및 ARN 복사">
        마법사를 완료하고 역할 이름을 지정하세요(예: **`IruEC2ReadOnly`**). 새 역할을 열고 요약 페이지 상단에서 **Role ARN**을 복사하세요. [**Iru Compliance**](#iru-compliance) 탭으로 다시 전환하여 [**Iru에 역할 ARN 제출**](#submit-the-role-arn-in-iru)을 완료하세요.
      </Step>

      <Step title="신뢰 정책 확인">
        역할의 **Trust relationships** 탭을 열고 JSON이 Iru에 표시된 내용과 일치하는지 확인하세요. external ID의 오타는 \*\*`AssumeRole`\*\*에서 \*\*`AccessDenied`\*\*가 발생하는 가장 흔한 원인입니다.
      </Step>
    </Steps>

    <Note>
      [**Iru Compliance**](#iru-compliance) 탭에서 계속 진행하여 **Role ARN**을 붙여넣고 마법사를 완료하세요([**Iru에 역할 ARN 제출**](#submit-the-role-arn-in-iru)).
    </Note>
  </Tab>
</Tabs>

### 문제 해결

<AccordionGroup>
  <Accordion title="소스를 켰을 때 아무것도 열리지 않습니다">
    Iru 사이트에 대한 **팝업 차단** 설정을 확인하고 다시 시도하세요.
  </Accordion>

  <Accordion title="AssumeRole에서 AccessDenied 발생">
    신뢰 정책의 **external ID**와 **principal**이 Iru 마법사와 한 글자도 다르지 않게 일치하는지 확인하세요.
  </Accordion>

  <Accordion title="인벤토리가 비어 있습니다">
    역할이 인스턴스와 **같은 계정**에 있는지, 그리고 예상한 리전에 인스턴스가 있는지 확인하세요.
  </Accordion>

  <Accordion title="보안 그룹 / VPC 데이터 누락">
    `ec2:Describe*` 권한이 포함되어 있는지 확인하세요(관리형 정책에는 이미 포함되어 있음). 사용자 지정 정책에는 해당하는 `Describe*` 작업이 필요합니다.
  </Accordion>
</AccordionGroup>

### 고려 사항

<CardGroup cols={2}>
  <Card title="EC2 API는 리전별로 작동하므로 첫 동기화에 시간이 더 걸릴 수 있습니다…" icon="circle-info">
    EC2 API는 **리전별**로 작동하므로 여러 리전에 걸친 첫 동기화에 시간이 더 걸릴 수 있습니다.
  </Card>

  <Card title="AmazonEC2ReadOnlyAccess는 관련 ELB 및…도 포함합니다" icon="shield">
    `AmazonEC2ReadOnlyAccess`는 보다 완전한 파악을 위해 관련 **ELB** 및 **Auto Scaling** 읽기도 포함합니다.
  </Card>

  <Card title="이 통합은 인스턴스를 변경하지 않습니다…" icon="server">
    이 통합은 인스턴스를 절대 변경하지 않으며, \*\*조회(describe)\*\*만 합니다.
  </Card>
</CardGroup>

### 관련 문서

<CardGroup cols={2}>
  <Card title="소스 관리" icon="plug" href="/ko/compliance/sources-management">
    모든 Compliance 소스를 찾아보고 관리합니다.
  </Card>

  <Card title="컴플라이언스 시작하기" icon="rocket" href="/ko/compliance/getting-started-with-compliance">
    프레임워크, 작업 및 **아티팩트**입니다.
  </Card>

  <Card title="Iru 개요" icon="layer-group" href="/ko/iru/platform-overview/iru-overview">
    Endpoint, Compliance 및 Identity가 함께 작동하는 방식입니다.
  </Card>

  <Card title="아티팩트 관리" icon="folder-open" href="/ko/compliance/artifacts-management">
    소스 및 작업의 증거를 업로드, 검토 및 정리합니다.
  </Card>
</CardGroup>
