> ## 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.

# AWS Key Management Service (KMS)

> 교차 계정 IAM 역할을 사용하여 AWS KMS를 Iru Compliance에 연결하고 복호화 권한 없이 키 인벤토리, 교체 상태 및 권한 부여(grant) 메타데이터를 수집합니다.

### AWS Key Management Service (KMS) 정보

**AWS Key Management Service** 커넥터는 **키 메타데이터**, **별칭**, **정책**, **권한 부여(grant)**, **태그** 및 **교체 상태**를 수집하여 통제 항목에서 키가 어떻게 관리되는지 입증할 수 있도록 합니다. Iru는 **외부 ID**와 함께 **`sts:AssumeRole`** 방식을 사용합니다. 아래의 권장 인라인 정책은 **`kms:Decrypt`** 및 기타 암호화 데이터 작업을 제외합니다(메타데이터 전용).

### 작동 방식

Iru는 자체 AWS 계정에서 실행됩니다. 사용자 계정의 **KMS** 키 메타데이터를 읽으려면 **`sts:AssumeRole`** 신뢰(마법사의 **External ID**)와 인벤토리에 적합한 읽기 전용 **`kms:`** 권한이 있는 **IAM 역할**을 생성합니다(쓰기 유형 기능이 포함된 정책은 피하세요). 그런 다음 역할의 **ARN**을 Iru에 붙여 넣습니다.

이 사용 사례에서는 **`AWSKeyManagementServicePowerUser`** 정책을 사용하지 마세요. 쓰기 유형 기능이 포함되어 있습니다. 마법사 경로의 명시적 인라인 JSON 또는 아래 템플릿을 사용하세요.

| 세부 정보 | 값 |
| - | - |
| **카테고리** | 보안 |
| **인증** | 교차 계정 IAM 역할 |

참고 자료: [KMS 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/), [KMS용 IAM 정책](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html).

### 사전 요구 사항

* 역할을 게시할 수 있는 IAM 관리자 권한.
* 실제 커넥터 문자열(**보안 주체**, **외부 ID**).

### AWS KMS를 Iru에 연결

<Tabs>
  <Tab title="Iru Compliance">
    <Note>
      여기서 시작하세요. 소스 마법사를 열고 **신뢰 정책**을 복사합니다(**외부 ID**도 기록해 두세요). AWS에서 역할을 생성할 준비가 되면 [**AWS**](#aws) 탭으로 전환하여 [**AWS에서 IAM 역할 생성**](#create-the-iam-role-in-aws)을 따르세요. **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 KMS 켜기">
        **AWS KMS**를 찾습니다(**범주** 또는 **이름 또는 설명으로 검색** 사용). 해당 카드에서 **토글**을 켭니다. **Iru가 외부 서비스에 대한 액세스를 요청하고 있습니다** 마법사 탭은 열어 둡니다.
      </Step>

      <Step title="신뢰 정책 JSON 복사">
        마법사에는 IAM 역할에서 사용해야 하는 **신뢰 정책** JSON(**Principal** 및 **sts:ExternalId**)이 표시됩니다. 아래는 구조의 **예시**입니다. 계정, 보안 주체 ARN 및 외부 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) 탭으로 전환하여 [**AWS에서 IAM 역할 생성**](#create-the-iam-role-in-aws)을 따르세요.
      </Step>
    </Steps>

    #### Iru에서 역할 ARN 제출

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

    <Steps>
      <Step title="IAM Role ARN 붙여 넣기">
        Iru 마법사 탭으로 돌아갑니다. 커넥터가 요청하는 위치에 **Role ARN**을 붙여 넣습니다.
      </Step>

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

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

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

    #### AWS에서 IAM 역할 생성

    <Steps>
      <Step title="역할 생성 워크플로 시작">
        **IAM** → **Roles** → **Create role**을 엽니다.
      </Step>

      <Step title="신뢰할 수 있는 엔터티 구성">
        **AWS account** → **Another AWS account**를 선택합니다. **`753695775620`**(마법사에 다른 ID가 표시되지 않는 경우)을 입력합니다. **Require external ID**를 활성화하고 Iru의 외부 ID를 붙여 넣습니다.
      </Step>

      <Step title="광범위한 관리형 정책 건너뛰기">
        **`AWSKeyManagementServicePowerUser`** 정책이나 기타 광범위한 KMS 쓰기 가능 정책을 연결하지 않고 넘어갑니다.
      </Step>

      <Step title="메타데이터 전용 인라인 정책 연결">
        다음 **인라인 정책**을 추가합니다.

        ```json lines theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "kms:ListKeys",
                "kms:ListAliases",
                "kms:DescribeKey",
                "kms:GetKeyPolicy",
                "kms:GetKeyRotationStatus",
                "kms:ListGrants",
                "kms:ListKeyPolicies",
                "kms:ListResourceTags"
              ],
              "Resource": "*"
            }
          ]
        }
        ```

        <Note>
          **`kms:Decrypt`**, **`kms:Encrypt`** 또는 **`GenerateDataKey`** 권한은 없습니다. Iru는 사용자의 키를 사용하여 암호문을 처리할 수 없습니다.
        </Note>
      </Step>

      <Step title="역할 이름 지정 및 ARN 복사">
        역할 이름을 지정하고 역할을 생성한 다음 **Role ARN**을 복사합니다. [**Iru Compliance**](#iru-compliance) 탭으로 다시 전환하여 [**Iru에서 역할 ARN 제출**](#submit-the-role-arn-in-iru)을 완료하세요.
      </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 거부됨">
    변경된 외부 ID를 수정하세요.
  </Accordion>

  <Accordion title="CMK 세부 정보 부족">
    개별 키의 리소스 정책이 **`DescribeKey`** 작업을 거부할 수 있습니다. 감사자가 전체 가시성을 요구하는 경우 키 정책을 조정하세요.
  </Accordion>

  <Accordion title="AWS 관리형 키">
    항상 나열되지만 고객 관리형 키보다 세부 정보 확인이 제한될 수 있습니다. 이는 AWS 동작에 따른 예상된 결과입니다.
  </Accordion>
</AccordionGroup>

### 고려 사항

<CardGroup cols={2}>
  <Card title="키는 리전별이며, 인벤토리는 활성화된 리전 전체를 대상으로 합니다." icon="circle-info">
    키는 **리전별**이며, 인벤토리는 활성화된 리전 전체를 대상으로 합니다.
  </Card>

  <Card title="API 메타데이터만으로 동작하며 키 자료는…" icon="shield">
    순수하게 **API 메타데이터**만으로 동작하며, 이 커넥터의 복호화 호출을 통해 키 자료가 KMS 밖으로 나가는 일은 없습니다.
  </Card>
</CardGroup>

### 관련 문서

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

  <Card title="Compliance 시작하기" 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="Artifacts 관리" icon="folder-open" href="/ko/compliance/artifacts-management">
    소스 및 작업에서 수집한 증거를 업로드, 검토 및 정리합니다.
  </Card>
</CardGroup>
