

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

# Amazon QLDB에서 표준 권한 모드로 시작하기
<a name="getting-started-standard-mode"></a>

이 섹션을 사용하여 Amazon QLDB의 표준 권한 모드를 시작하세요. 이 섹션에서는 AWS Identity and Access Management (IAM)에서 QLDB의 PartiQL 작업 및 테이블 리소스에 대한 ID 기반 정책을 작성할 때 도움이 되는 참조 테이블을 제공합니다. 또한 IAM에서 권한 정책을 생성하는 방법에 대한 단계별 자습서와 QLDB에서 테이블 ARN을 찾고 테이블 태그를 생성하는 방법에 대한 지침도 포함되어 있습니다.

**Topics**
+ [`STANDARD` 권한 모드](#standard-permissions-mode)
+ [PartiQL 권한 참조](#security_iam_partiql-reference)
+ [테이블 ID 및 ARN 찾기](#security_iam_partiql-ref.table-arn)
+ [태그 지정 테이블](#security_iam_partiql-ref.table-tags)
+ [빠른 시작 자습서: 권한 정책 생성](#getting-started-standard-mode-tutorial)

## `STANDARD` 권한 모드
<a name="standard-permissions-mode"></a>

QLDB는 이제 원장 리소스에 대한 `STANDARD` 권한 모드를 지원합니다. 원장, 테이블 및 PartiQL 명령에 대해 보다 세분화된 액세스 제어를 가능하게 하는 표준 권한 모드입니다. 기본적으로 이 모드는 이 원장의 모든 테이블에서 PartiQL 명령을 실행하려는 모든 요청을 거부합니다.

**참고**  
이전에는 원장에 사용할 수 있는 유일한 권한 모드는 `ALLOW_ALL`이었습니다. `ALLOW_ALL` 모드를 사용하면 원장에 대한 API 수준 세분화로 액세스 제어가 가능하며 QLDB 원장의 경우 계속 지원되지만 권장되지는 않습니다. 이 모드를 사용하면 `SendCommand` API 권한이 있는 사용자가 권한 정책에 의해 지정된 원장의 모든 테이블에서 모든 PartiQL 명령을 실행할 수 있습니다(따라서 ‘모두 허용’ PartiQL 명령).  
기존 원장의 권한 모드를 `ALLOW_ALL`에서 `STANDARD`로 변경할 수 있습니다. 자세한 내용은 [표준 권한 모드로 마이그레이션](ledger-management.basics.md#ledger-mgmt.basics.update-permissions.migrating)을 참조하세요.

표준 모드에서 명령을 허용하려면 IAM에서 특정 테이블 리소스 및 PartiQL 작업에 대한 권한 정책을 생성해야 합니다. 이는 원장에 대한 `SendCommand` API 권한에 추가됩니다. 이 모드에서 정책을 용이하게 하기 위해 QLDB는 PartiQL 명령에 대한 [IAM 작업 세트](#security_iam_partiql-reference-table)와 QLDB 테이블에 대한 Amazon 리소스 이름(ARN)을 도입했습니다. QLDB 데이터 객체 모델에 대한 자세한 내용은 [Amazon QLDB의 핵심 개념 및 용어](ledger-structure.md) 섹션을 참조하세요.

## PartiQL 권한 참조
<a name="security_iam_partiql-reference"></a>

다음 표에는 각 QLDB PartiQL 명령, 명령을 수행할 권한을 부여해야 하는 해당 IAM 작업, 권한을 부여할 수 있는 AWS 리소스가 나와 있습니다. 정책의 `Action`필드에서 작업을 지정하고, 정책의 `Resource`필드에서 리소스 값을 지정합니다.

**중요**  
이러한 PartiQL 명령에 권한을 부여하는 IAM 정책은 `STANDARD` 권한 모드가 원장에 할당된 경우에만 원장에 적용됩니다. 이러한 정책은 권한 모드의 `ALLOW_ALL` 원장에는 적용되지 않습니다.  
원장을 생성하거나 업데이트할 때 권한 모드를 지정하는 방법을 알아보려면 *콘솔 시작하기*의 [Amazon QLDB 원장의 기본 작업](ledger-management.basics.md) 또는 [1단계: 새 원장 생성](getting-started-step-1.md) 섹션을 참조하세요.
원장에서 PartiQL 명령을 실행하려면 원장 리소스에 대한 `SendCommand` API 작업에 대한 권한도 부여해야 합니다. 이는 다음 테이블에 나열된 PartiQL 작업 및 테이블 리소스에 추가됩니다. 자세한 내용은 [데이터 트랜잭션 실행](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-data-transactions)을 참조하십시오.


**Amazon QLDB PartiQL 명령 및 필요한 권한**  
<a name="security_iam_partiql-reference-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/qldb/latest/developerguide/getting-started-standard-mode.html)

이러한 PartiQL 명령에 권한을 부여하는 IAM 정책 문서의 예는 [빠른 시작 자습서: 권한 정책 생성](#getting-started-standard-mode-tutorial) 또는 [Amazon QLDB의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md)를 참조하세요.

## 테이블 ID 및 ARN 찾기
<a name="security_iam_partiql-ref.table-arn"></a>

를 사용하거나 table [information\$1schema.user\$1tables](working.catalog.md)를 쿼리 AWS Management Console 하여 테이블 ID를 찾을 수 있습니다. 콘솔에서 테이블 세부 정보를 보거나 이 시스템 카탈로그 테이블을 쿼리하려면 시스템 카탈로그 리소스에 대한 `SELECT` 권한이 있어야 합니다. 예를 들어, 다음 문을 실행하여 `Vehicle` 테이블의 테이블 ID를 찾을 수 있습니다.

```
SELECT * FROM information_schema.user_tables
WHERE name = 'Vehicle'
```

이 쿼리는 다음 예와 비슷한 형식으로 결과를 반환합니다.

```
{
    tableId: "Au1EiThbt8s0z9wM26REZN",
    name: "Vehicle",
    indexes: [
        { indexId: "Djg2nt0yIs2GY0T29Kud1z", expr: "[VIN]", status: "ONLINE" },
        { indexId: "4tPW3fUhaVhDinRgKRLhGU", expr: "[LicensePlateNumber]", status: "BUILDING" }
    ],
    status: "ACTIVE"
}
```

테이블에서 PartiQL 문을 실행할 권한을 부여하려면 다음 ARN 형식으로 테이블 리소스를 지정합니다.

```
arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/table/${table-id}
```

다음은 테이블 ID `Au1EiThbt8s0z9wM26REZN`에 대한 테이블 ARN의 예입니다.

```
arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN
```

### 콘솔 사용
<a name="security_iam_partiql-ref.table-arn.con"></a>

QLDB 콘솔을 사용하여 테이블을 생성할 수도 있습니다.

**테이블의 ARN을 찾으려면(콘솔)**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb) Amazon QLDB 콘솔을 엽니다.

1. 탐색 창에서 **원장**을 선택합니다.

1. **원장** 목록에서 찾으려면 테이블 ARN이 포함된 원장 이름을 선택합니다.

1. 원장 세부 정보 페이지의 **테이블** 탭에서 찾으려는 ARN이 포함된 테이블 이름을 찾습니다. ARN을 복사하려면 옆에 있는 복사 아이콘(![\[Copy icon.\]](http://docs.aws.amazon.com/ko_kr/qldb/latest/developerguide/images/copy.png))을 선택합니다.

## 태그 지정 테이블
<a name="security_iam_partiql-ref.table-tags"></a>

테이블 리소스에 태그를 지정할 수 있습니다. 기존 테이블의 태그를 관리하려면 AWS Management Console 또는 API 작업 `TagResource`, `UntagResource`및를 사용합니다`ListTagsForResource`. 자세한 내용은 [Amazon QLDB 리소스 태그 지정](tagging.md) 단원을 참조하십시오.

**참고**  
테이블 리소스는 루트 원장 리소스의 태그를 상속하지 않습니다.  
 테이블 생성 시 태그 지정은 현재 ‭`STANDARD` 권한 모드의 원장에만 지원됩니다.

테이블을 만드는 동안 QLDB 콘솔을 사용하거나 `CREATE TABLE` PartiQL 문에 테이블 태그를 지정하여 테이블 태그를 정의할 수도 있습니다. 다음 예제에서는 `environment=production` 태그가 있는 `Vehicle`이라는 테이블을 생성합니다.

```
CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)
```

생성 시 테이블에 태그를 지정하려면 `qldb:PartiQLCreateTable` 및 `qldb:TagResource` 작업 모두에 액세스할 수 있어야 합니다.

리소스를 생성하는 동안 태그를 지정하면 리소스 생성 후 사용자 지정 태그 지정 스크립트를 실행할 필요가 없습니다. 테이블에 태그가 지정된 후 해당 태그를 기반으로 테이블에 대한 액세스를 제어할 수 있습니다. 예를 들어 특정 태그가 있는 테이블에만 전체 액세스 권한을 부여할 수 있습니다. JSON 정책의 예는 [테이블 태그를 기반으로 하는 모든 작업에 대한 전체 액세스 권한](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-full-tags) 섹션을 참조하세요.

### 콘솔 사용
<a name="security_iam_partiql-ref.table-tags.con"></a>

테이블을 생성하는 동안 QLDB 콘솔을 사용하여 테이블 태그를 정의할 수도 있습니다.

**생성 시 테이블 태그 지정하기(콘솔)**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb) Amazon QLDB 콘솔을 엽니다.

1. 탐색 창에서 **원장**을 선택합니다.

1. **원장** 목록에서 테이블을 생성할 원장 이름을 선택합니다.

1. 원장 세부 정보 페이지의 **테이블** 탭에서 **테이블 생성**을 선택합니다.

1. **테이블 생성** 페이지에서 다음 작업을 수행합니다.
   + **테이블 이름** - 테이블 이름을 입력합니다.
   + **태그** - 태그를 키-값 쌍으로로 연결하여 메타데이터를 테이블에 추가합니다. 테이블을 정리하고 식별하는 데 도움이 되도록 테이블에 태그를 추가할 수 있습니다.

     **태그 추가**를 선택한 다음 키-값 쌍을 적절히 입력합니다.

1. 원하는 대로 설정되었으면 **테이블 생성**을 선택합니다.

## 빠른 시작 자습서: 권한 정책 생성
<a name="getting-started-standard-mode-tutorial"></a>

이 자습서는 `STANDARD` 권한 모드에서 Amazon QLDB 원장에 대한 IAM의 권한 정책을 생성하는 단계를 안내합니다. 그런 다음 사용자, 그룹 또는 역할에 권한을 할당할 수 있습니다.

PartiQL 명령 및 테이블 리소스에 권한을 부여하는 IAM 정책 문서의 추가 예는 [Amazon QLDB의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

**Topics**
+ [사전 조건](#getting-started-standard-mode-prereqs)
+ [읽기 전용 정책 생성](#getting-started-standard-mode-read-only)
+ [전체 액세스 정책 생성](#getting-started-standard-mode-full-access)
+ [특정 테이블에 대한 읽기 전용 정책 생성](#getting-started-standard-mode-read-only-table)
+ [권한 할당](#getting-started-standard-mode-assign-permissions)

### 사전 조건
<a name="getting-started-standard-mode-prereqs"></a>

시작하기 전에 다음을 수행해야 합니다.

1. 아직 설정하지 않은 경우 [Amazon QLDB 액세스](accessing.md)의 AWS 설정 지침을 따릅니다. 이러한 단계에는에 가입 AWS 하고 관리 사용자를 생성하는 작업이 포함됩니다.

1. 새 원장을 생성하고 해당 원장의 `STANDARD` 권한 모드를 선택합니다. 방법을 알아보려면 *콘솔 시작하기*의 [1단계: 새 원장 생성](getting-started-step-1.md) 또는 [Amazon QLDB 원장의 기본 작업](ledger-management.basics.md) 섹션을 참조하세요.

### 읽기 전용 정책 생성
<a name="getting-started-standard-mode-read-only"></a>

JSON 정책 편집기를 사용하여 표준 권한 모드에서 원장의 *모든 테이블*에 대한 읽기 전용 정책을 생성하려면 다음 작업을 수행합니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. 왼쪽의 탐색 열에서 **정책**을 선택합니다.

   **정책**을 처음으로 선택하는 경우 **관리형 정책 소개** 페이지가 나타납니다. **시작**을 선택합니다.

1. 페이지 상단에서 **정책 생성**을 선택합니다.

1. **JSON** 탭을 선택합니다.

1. 다음 JSON 정책 문서를 복사하여 붙여 넣습니다. 이 예제 정책은 원장의 모든 테이블에 *읽기 전용* 액세스 권한을 부여합니다.

   이 정책을 사용하려면 예제의 *us-east-1*, *123456789012*, *myExampleLedger*를 사용자 고유의 정보로 바꾸세요.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Sid": "QLDBSendCommandPermission",
         "Effect": "Allow",
         "Action": "qldb:SendCommand",
         "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
       },
       {
         "Sid": "QLDBPartiQLReadOnlyPermissions",
         "Effect": "Allow",
         "Action": [
           "qldb:PartiQLSelect",
           "qldb:PartiQLHistoryFunction"
         ],
         "Resource": [
           "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
           "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
         ]
       }
     ]
   }
   ```

1. **정책 검토**를 선택합니다.
**참고**  
언제든지 **시각적 편집기** 및 **JSON** 탭을 전환할 수 있습니다. 그러나 변경을 수행하거나 **시각적 편집기** 탭에서 **정책 검토**를 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 *IAM 사용자 설명서*의 [정책 재구성](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)을 참조하세요.

1. **정책 검토** 페이지에서 생성하려는 정책의 **이름**과 **설명**(선택 사항)을 입력합니다. 정책 **요약**을 검토하여 정책이 부여한 권한을 확인합니다. 그런 다음 **정책 생성**을 선택하여 작업을 저장합니다.

### 전체 액세스 정책 생성
<a name="getting-started-standard-mode-full-access"></a>

표준 권한 모드에서 QLDB 원장의 모든 테이블에 대한 전체 액세스 정책을 만들려면 다음 작업을 수행합니다.
+ 다음 정책 문서를 사용하여 [이전 단계](#getting-started-standard-mode-read-only)를 반복합니다. 이 예제 정책은 와일드카드(\$1)를 사용하여 원장 내의 모든 PartiQL 작업과 모든 리소스를 포함함으로써 원장의 *모든 테이블*의 *모든 PartiQL 명령*에 대한 액세스 권한을 부여합니다.
**주의**  
이 예제에서는 와일드카드 문자(\$1)를 사용하여 QLDB 원장의 모든 테이블에 대한 관리 및 읽기/쓰기 작업을 비롯한 모든 PartiQL 작업을 허용합니다. 대신 허용할 각 작업과 해당 사용자, 역할 또는 그룹에 필요한 작업만 명시적으로 지정하는 것이 좋습니다.

  이 정책을 사용하려면 예제의 *us-east-1*, *123456789012*, *myExampleLedger*를 사용자 고유의 정보로 바꾸세요.

  ```
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Sid": "QLDBSendCommandPermission",
        "Effect": "Allow",
        "Action": "qldb:SendCommand",
        "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
      },
      {
        "Sid": "QLDBPartiQLFullPermissions",
        "Effect": "Allow",
        "Action": [
          "qldb:PartiQL*"
        ],
        "Resource": [
          "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*",
          "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables"
        ]
      }
    ]
  }
  ```

### 특정 테이블에 대한 읽기 전용 정책 생성
<a name="getting-started-standard-mode-read-only-table"></a>

표준 권한 모드에서 QLDB 원장의 특정 테이블에 대한 읽기 전용 액세스 정책을 만들려면 다음 작업을 수행합니다.

1. 를 사용하거나 시스템 카탈로그 테이블을 쿼리 AWS Management Console 하여 테이블의 ARN을 찾습니다`information_schema.user_tables`. 지침은 [테이블 ID 및 ARN 찾기](#security_iam_partiql-ref.table-arn) 섹션을 참조하세요.

1. 테이블 ARN을 사용하여 테이블에 대한 읽기 전용 액세스를 허용하는 정책을 생성합니다. 이렇게 하려면 다음 정책 문서를 사용하여 [이전 단계](#getting-started-standard-mode-read-only)를 반복합니다.

   이 예제 정책은 *지정된 테이블 전용* *읽기 전용* 액세스를 부여합니다. 이 예시에서의 테이블 ID는 `Au1EiThbt8s0z9wM26REZN`입니다. 이 정책을 사용하려면 예제의 *us-east-1*, *123456789012*, *myExampleLedger*, *Au1EiThbt8s0z9wM26REZN*를 사용자 고유의 정보로 바꾸세요.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Sid": "QLDBSendCommandPermission",
         "Effect": "Allow",
         "Action": "qldb:SendCommand",
         "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger"
       },
       {
         "Sid": "QLDBPartiQLReadOnlyPermissions",
         "Effect": "Allow",
         "Action": [
           "qldb:PartiQLSelect",
           "qldb:PartiQLHistoryFunction"
         ],
         "Resource": [
           "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN"
         ]
       }
     ]
   }
   ```

### 권한 할당
<a name="getting-started-standard-mode-assign-permissions"></a>

QLDB 권한 정책을 생성한 후 다음과 같이 권한을 할당합니다.

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요:
+ 의 사용자 및 그룹 AWS IAM Identity Center:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용 설명서*의 [권한 세트 생성](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ 보안 인증 공급자를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음)정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서**에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따르십시오.