本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
模式會啟用分類帳的存取控制,並持續支援,但不建議對QLDB分類帳啟用 API層級精細度。此模式允許使用者SendCommand
API在許可政策指定的分類帳中的任何資料表上執行所有 PartiQL 命令 (因此,「允許所有」PartiQL 命令)。
您可以將現有分類帳的許可模式從 變更為 ALLOW_ALL
STANDARD
。如需相關資訊,請參閱 移轉至標準權限模式。
若要在標準模式中允許命令,您必須在 IAM 中針對特定資料表資源和 PartiQL 動作建立許可政策。這是 分類帳的 SendCommand
API許可以外的項目。為了在此模式下促進政策, 為 PartiQL 命令QLDB引進了一組IAM動作,為QLDB資料表引進了 Amazon Resource Names (ARNs)。如需QLDB資料物件模型的詳細資訊,請參閱 Amazon 的核心概念和術語 QLDB。
PartiQL 許可參考
下表列出每個 QLDB PartiQL 命令、您必須授予 執行命令許可的對應IAM動作,以及您可以授予許可 AWS 的資源。您在政策的 Action
欄位中指定動作,然後在政策的 Resource
欄位中指定資源值。
重要
-
IAM 授予這些 PartiQL 命令許可的政策只有在
STANDARD
許可模式指派給分類帳時,才會套用至您的分類帳。此類政策不適用於ALLOW_ALL
許可模式中的分類帳。若要了解如何在建立或更新分類帳時指定許可模式,請參閱 Amazon QLDB 分類帳的基本操作或 主控台入門 步驟 1:建立新的分類帳中的 。
-
若要在分類帳上執行任何 PartiQL 命令,您還必須授予分類帳資源
SendCommand
API動作的許可。這是在下表中列出的 PartiQL 動作和資料表資源之外的附加項目。如需詳細資訊,請參閱執行資料交易。
Command | 必要許可 (IAM 動作) | 資源 | 相依動作 |
---|---|---|---|
CREATE TABLE | qldb:PartiQLCreateTable |
|
qldb:TagResource (用於建立時標記) |
DROP TABLE | qldb:PartiQLDropTable |
|
|
UNDROP TABLE | qldb:PartiQLUndropTable |
|
|
CREATE INDEX | qldb:PartiQLCreateIndex |
|
|
DROP INDEX | qldb:PartiQLDropIndex |
|
|
DELETE | qldb:PartiQLDelete |
|
qldb:PartiQLSelect |
FROM-REMOVE (適用於整個文件) | |||
INSERT | qldb:PartiQLInsert |
|
|
UPDATE | qldb:PartiQLUpdate |
|
qldb:PartiQLSelect |
FROM(INSERTREMOVE、或SET) | |||
REDACT_REVISION (存放程序) | qldb:PartiQLRedact |
|
|
qldb:PartiQLSelect |
|
||
qldb:PartiQLSelect |
|
||
qldb:PartiQLHistoryFunction |
|
如需授予這些 PartiQL 命令許可IAM的政策文件範例,請繼續快速入門教學課程:建立許可政策或參閱 Amazon 的身分型政策範例 QLDB。
尋找資料表 ID 和 ARN
您可以使用 AWS Management Console 或查詢資料表 information_schema.user_tables 來尋找資料表 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的 (主控台)
登入 AWS Management Console,然後在 https://console.aws.amazon.com/qldb
開啟 Amazon QLDB主控台。 -
在導覽窗格中,選擇 Ledgers 。
-
在 Ledgers 清單中,選擇ARN您要尋找其資料表的分類帳名稱。
-
在分類帳詳細資訊頁面的資料表索引標籤下,找到ARN您要尋找的資料表名稱。若要複製 ARN,請選擇其旁邊的複製圖示 ( )。
標記資料表
您可以標記資料表資源。若要管理現有資料表的標籤,請使用 AWS Management Console 或 API操作 TagResource
、 UntagResource
和 ListTagsForResource
。如需詳細資訊,請參閱標記 Amazon QLDB 資源。
注意
資料表資源不會繼承其根分類帳資源的標籤。
建立時標記資料表目前僅支援STANDARD
許可模式下的分類帳。
您也可以在建立資料表時,使用QLDB主控台或在 CREATE TABLE
PartiQL 陳述式中指定資料表標籤,藉此定義資料表標籤。下列範例Vehicle
會使用標籤 建立名為 的資料表environment=production
。
CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)
建立時標記資料表需要同時存取 qldb:PartiQLCreateTable
和 qldb:TagResource
動作。
藉由在建立時為資源建立標籤,您可以消除在資源建立後執行自訂標籤指令碼的必要。標記資料表之後,您可以根據這些標籤控制對資料表的存取。例如,您只能將完整存取權授予具有特定標籤的資料表。如需JSON政策範例,請參閱 根據資料表標籤完整存取所有動作。
您也可以在建立資料表時,使用QLDB主控台定義資料表標籤。
在建立時標記資料表 (主控台)
登入 AWS Management Console,然後在 https://console.aws.amazon.com/qldb
開啟 Amazon QLDB主控台。 -
在導覽窗格中,選擇 Ledgers 。
-
在 Ledgers 清單中,選擇要在其中建立資料表的分類帳名稱。
-
在分類帳詳細資訊頁面的資料表索引標籤下,選擇建立資料表 。
-
在建立資料表頁面上,執行下列動作:
-
資料表名稱 – 輸入資料表名稱。
-
標籤 – 透過將標籤附加為鍵值對,將中繼資料新增至資料表。您可以將標籤新增至資料表,以協助組織和識別標籤。
選擇新增標籤 ,然後視需要輸入任何鍵值對。
-
-
當您滿意設定後,請選擇 Create table (建立資料表)。
快速入門教學課程:建立許可政策
本教學課程會引導您逐步在 中為 IAMAmazon QLDB 分類帳在許可模式中建立STANDARD
許可政策。然後,您可以將許可指派給您的使用者、群組或角色。
如需授予 PartiQL 命令和資料表資源許可IAM的政策文件範例,請參閱 Amazon 的身分型政策範例 QLDB。
必要條件
開始之前,請確定您執行下列動作:
-
如果您尚未這樣做訪問 Amazon QLDB,請遵循 中的 AWS 設定指示。這些步驟包括註冊 AWS 和建立管理使用者。
-
建立新的分類帳,並選擇分類帳的
STANDARD
許可模式。若要了解如何使用,請參閱 主控台入門 、 或 步驟 1:建立新的分類帳中的 Amazon QLDB 分類帳的基本操作。
建立唯讀政策
若要使用JSON政策編輯器,在標準許可模式下為分類帳中的所有資料表建立唯讀政策,請執行下列動作:
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在左側的導覽欄中,選擇 Policies (政策)。
如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)。
-
在頁面頂端,選擇 Create policy (建立政策)。
-
選擇 JSON 索引標籤。
-
複製並貼上下列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" ] } ] } -
選擇檢閱政策。
注意
您可以隨時在視覺化編輯器和JSON索引標籤之間切換。不過,如果您在視覺化編輯器索引標籤中進行變更或選擇檢閱政策, IAM可能會重組您的政策,以將其最佳化為視覺化編輯器。如需詳細資訊,請參閱 IAM 使用者指南 中的政策重組。
-
在 Review policy (檢閱政策) 頁面上,為您正在建立的政策輸入選用的 Name (名稱) 與 Description (描述)。檢閱政策 Summary (摘要) 來查看您的政策所授予的許可。然後選擇 Create policy (建立政策) 來儲存您的工作。
建立完整存取政策
若要在標準許可模式中為QLDB分類帳中的所有資料表建立完整存取政策,請執行下列動作:
-
使用下列政策文件重複上述步驟。此範例政策透過使用萬用字元 (*) 來涵蓋分類帳下的所有 PartiQL 動作和所有資源,授予對分類帳中所有資料表所有 PartiQL 命令的存取權。 PartiQL
警告
這是使用萬用字元 (*) 允許所有 PartiQL QLDB 動作的範例,包括對分類帳中所有資料表的管理和讀寫操作。反之,最佳實務是明確指定要授予的每個動作,以及只指定該使用者、角色或群組所需的動作。
若要使用此政策,請取代
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分類帳中的特定資料表建立唯讀存取政策,請執行下列動作:
-
使用 AWS Management Console 或 查詢系統目錄ARN資料表 來尋找資料表的
information_schema.user_tables
。如需說明,請參閱 尋找資料表 ID 和 ARN。 -
使用 資料表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 透過身分提供者在 中管理的使用者:
建立聯合身分的角色。請遵循 IAM 使用者指南 中為第三方身分提供者 (聯合) 建立角色的指示。
-
IAM 使用者:
-
建立您的使用者可擔任的角色。請遵循 IAM 使用者指南 中為IAM使用者建立角色的指示。
-
(不建議) 將政策直接附加至使用者,或將使用者新增至使用者群組。請遵循 IAM 使用者指南 中將許可新增至使用者 (主控台) 中的指示。
-