Amazon에서 표준 권한 모드 시작하기 QLDB - Amazon Quantum 원장 데이터베이스(Amazon QLDB)

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

Amazon에서 표준 권한 모드 시작하기 QLDB

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

STANDARD 권한 모드

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

참고

이전에는 원장에 사용할 수 있는 유일한 권한 모드는 ALLOW_ALL이었습니다. 이 ALLOW_ALL 모드는 원장의 API경우 수준 세분화를 통해 액세스 제어를 활성화하고 원장의 경우 계속 지원되지만 권장되지는 않습니다QLDB. 이 모드를 사용하면 SendCommand API 권한이 있는 사용자가 권한 정책에 의해 지정된 원장의 모든 테이블에서 모든 PartiQL 명령을 실행할 수 있습니다(따라서 “모든” PartiQL 명령 허용).

기존 원장의 권한 모드를 ALLOW_ALL에서 STANDARD로 변경할 수 있습니다. 자세한 내용은 표준 권한 모드로 마이그레이션을 참조하세요.

표준 모드에서 명령을 허용하려면 특정 테이블 리소스 및 PartiQL 작업에 IAM 대한 권한 정책을 에서 생성해야 합니다. 이는 원장에 대한 SendCommand API 권한에 추가됩니다. 이 모드에서 정책을 용이하게 하기 위해 는 PartiQL 명령에 대한 IAM 일련의 작업과 QLDB 테이블에 대한 Amazon 리소스 이름(ARNs)을 QLDB 도입했습니다. QLDB 데이터 객체 모델에 대한 자세한 내용은 섹션을 참조하세요아마존의 핵심 개념 및 용어 QLDB.

PartiQL 권한 참조

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

중요
  • IAM 이러한 PartiQL 명령에 권한을 부여하는 정책은 STANDARD 권한 모드가 원장에 할당된 경우에만 원장에 적용됩니다. 이러한 정책은 권한 모드의 ALLOW_ALL 원장에는 적용되지 않습니다.

    원장을 생성하거나 업데이트할 때 권한 모드를 지정하는 방법을 알아보려면 콘솔 시작하기Amazon QLDB 원장의 기본 작업 또는 1단계: 새 원장 생성 섹션을 참조하세요.

  • 원장에서 PartiQL 명령을 실행하려면 원장 리소스에 대한 SendCommand API 작업에 권한도 부여해야 합니다. 이는 다음 테이블에 나열된 PartiQL 작업 및 테이블 리소스에 추가됩니다. 자세한 내용은 데이터 트랜잭션 실행 단원을 참조하십시오.

Amazon QLDB PartiQL 명령 및 필수 권한
Command 필수 권한(IAM 작업) 리소스 종속 작업
CREATE TABLE qldb:PartiQLCreateTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/*

qldb:TagResource(생성 시 태그 지정용)
DROP TABLE qldb:PartiQLDropTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

UNDROP TABLE qldb:PartiQLUndropTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

CREATE INDEX qldb:PartiQLCreateIndex

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

DROP INDEX qldb:PartiQLDropIndex

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

DELETE qldb:PartiQLDelete

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

qldb:PartiQLSelect
FROM-REMOVE (전체 문서의 경우)
INSERT qldb:PartiQLInsert

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

UPDATE qldb:PartiQLUpdate

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

qldb:PartiQLSelect
FROM(INSERTREMOVE, 또는SET)
REDACT_REVISION(저장 프로시저) qldb:PartiQLRedact

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

SELECT FROM table_name

qldb:PartiQLSelect

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

SELECT FROM information_schema.user_tables

qldb:PartiQLSelect

arn:aws:qldb:region:account-id:ledger/ledger-name/information_schema/user_tables

SELECT FROM 기록(table_name)

qldb:PartiQLHistoryFunction

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

이러한 PartiQL 명령에 권한을 부여하는 IAM 정책 문서의 예는 로 진행빠른 시작 자습서: 권한 정책 생성하거나 섹션을 참조하세요Amazon의 자격 증명 기반 정책 예제 QLDB.

테이블 ID 및 찾기 ARN

를 사용하거나 테이블 information_schema.user_tables 를 쿼리 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 에 ARN 대한 테이블의 예입니다Au1EiThbt8s0z9wM26REZN.

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

QLDB 콘솔을 사용하여 테이블을 찾을 수도 있습니다ARN.

테이블ARN의 를 찾으려면(콘솔)
  1. 에 로그인 AWS Management Console하고 https://console.aws.amazon.com/qldb 에서 Amazon QLDB 콘솔을 엽니다.

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

  3. Ledgers 목록에서 테이블을 찾으ARN려는 원장 이름을 선택합니다.

  4. 원장 세부 정보 페이지의 테이블 탭에서 찾으ARN려는 테이블 이름을 찾습니다. 를 복사하려면 옆의 복사 아이콘( Copy icon. )을 ARN선택합니다.

태그 지정 테이블

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

참고

테이블 리소스는 루트 원장 리소스의 태그를 상속하지 않습니다.

테이블 생성 시 태그 지정은 현재 ‭STANDARD 권한 모드의 원장에만 지원됩니다.

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

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

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

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

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

생성 시 테이블 태그 지정하기(콘솔)
  1. 에 로그인 AWS Management Console하고 https://console.aws.amazon.com/qldb 에서 Amazon QLDB 콘솔을 엽니다.

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

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

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

  5. 테이블 생성 페이지에서 다음 작업을 수행합니다.

    • 테이블 이름 - 테이블 이름을 입력합니다.

    • 태그 - 태그를 키-값 쌍으로로 연결하여 메타데이터를 테이블에 추가합니다. 테이블을 정리하고 식별하는 데 도움이 되도록 테이블에 태그를 추가할 수 있습니다.

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

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

빠른 시작 자습서: 권한 정책 생성

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

PartiQL 명령 및 테이블 리소스에 권한을 부여하는 IAM 정책 문서의 자세한 예는 섹션을 참조하세요Amazon의 자격 증명 기반 정책 예제 QLDB.

사전 조건

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

  1. 아직 설정하지 않았다면 의 AWS 설정 지침을 따르아마존 액세스 QLDB세요. 이러한 단계에는 관리 사용자 가입 AWS 및 생성이 포함됩니다.

  2. 새 원장을 생성하고 해당 원장의 STANDARD 권한 모드를 선택합니다. 방법을 알아보려면 콘솔 시작하기1단계: 새 원장 생성 또는 Amazon QLDB 원장의 기본 작업 섹션을 참조하세요.

읽기 전용 정책 생성

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

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

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

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

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

  4. JSON 탭을 선택합니다.

  5. 다음 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" ] } ] }
  6. 정책 검토를 선택합니다.

    참고

    언제든지 시각적 편집기JSON 탭 간에 전환할 수 있습니다. 그러나 시각적 편집기 탭에서 정책을 변경하거나 검토하기를 선택하면 IAM는 시각적 편집기에 맞게 정책을 최적화하도록 정책을 재구성할 수 있습니다. 자세한 내용은 IAM 사용 설명서정책 재구성을 참조하세요.

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

전체 액세스 정책 생성

표준 권한 모드에서 QLDB 원장의 모든 테이블에 대한 전체 액세스 정책을 생성하려면 다음을 수행합니다.

  • 다음 정책 문서를 사용하여 이전 단계를 반복합니다. 이 예제 정책은 와일드카드(*)를 사용하여 원장 내의 모든 PartiQL 작업과 모든 리소스를 포함함으로써 원장의 모든 테이블모든 PartiQL 명령에 대한 액세스 권한을 부여합니다.

    주의

    다음은 와일드카드 문자(*)를 사용하여 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" ] } ] }

특정 테이블에 대한 읽기 전용 정책 생성

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

  1. 를 사용하거나 시스템 카탈로그 테이블ARN을 쿼리 AWS Management Console 하여 테이블용 를 찾습니다information_schema.user_tables. 지침은 테이블 ID 및 찾기 ARN 단원을 참조하십시오.

  2. 테이블ARN을 사용하여 테이블에 대한 읽기 전용 액세스를 허용하는 정책을 생성합니다. 이렇게 하려면 다음 정책 문서를 사용하여 이전 단계를 반복합니다.

    이 예제 정책은 지정된 테이블 전용 읽기 전용 액세스를 부여합니다. 이 예시에서의 테이블 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" ] } ] }

권한 할당

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

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요:

  • 의 사용자 및 그룹 AWS IAM Identity Center:

    권한 세트를 생성합니다. AWS IAM Identity Center 사용 설명서권한 세트 생성의 지침을 따릅니다.

  • 자격 증명 공급자를 IAM 통해 에서 관리되는 사용자:

    ID 페더레이션을 위한 역할을 생성합니다. IAM 사용 설명서타사 자격 증명 공급자(페더레이션)에 대한 역할 생성의 지침을 따릅니다.

  • IAM 사용자:

    • 사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용 설명서 IAM 사용자 역할 생성의 지침을 따릅니다.

    • (권장되지 않음)정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서사용자(콘솔)에 권한 추가의 지침을 따릅니다.