選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

DynamoDB 資源型政策範例

焦點模式
DynamoDB 資源型政策範例 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

當您在資源型政策的 Resource 欄位中指定 ARN 時,只有在指定的 ARN 與其連接的 DynamoDB 資源的 ARN 相符時,政策才會生效。

注意

請記得將斜體文字取代為您的資源特定資訊。

資料表的資源型政策

下列以資源為基礎的政策連接到名為 MusicCollection 的 DynamoDB 資料表,可讓 IAM 使用者 JohnJane 許可在 MusicCollection 資源上執行 GetItemBatchGetItem 動作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::111122223333:user/Jane" ] }, "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ] } ] }

串流的資源型政策

下列連接至名為 之 DynamoDB 串流的資源型政策,2024-02-12T18:57:26.492可讓 IAM 使用者 JohnJane 許可在2024-02-12T18:57:26.492資源上執行 GetRecordsGetShardIteratorDescribeStream API 動作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::111122223333:user/Jane" ] }, "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492" ] } ] }

以資源為基礎的政策,用於對指定資源執行所有動作的存取權

若要允許使用者對資料表執行所有動作,以及對資料表執行所有相關索引,您可以使用萬用字元 (*) 來代表與資料表相關聯的動作和資源。使用資源的萬用字元,將允許使用者存取 DynamoDB 資料表及其所有相關聯的索引,包括尚未建立的索引。例如,以下政策將授予使用者 John 許可,以對 MusicCollection 資料表及其所有索引執行任何動作,包括未來將建立的任何索引。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal":"arn:aws:iam::111122223333:user/John", "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/*" ] } ] }

跨帳戶存取的資源型政策

您可以為跨帳戶 IAM 身分指定存取 DynamoDB 資源的許可。例如,您可能需要信任帳戶的使用者才能存取 來讀取資料表的內容,條件是他們只會存取這些項目中的特定項目和特定屬性。下列政策允許使用者 John 從信任的 AWS 帳戶 ID 111111111111 存取,以使用 GetItem API 存取帳戶 123456789012 中資料表的資料。此政策可確保使用者只能存取具有主索引鍵 Jane 的項目,而且使用者只能擷取屬性 ArtistSongTitle,但不能擷取其他屬性。

重要

如果您未指定SPECIFIC_ATTRIBUTES條件,您會看到傳回項目的所有屬性。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountTablePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/John" }, "Action": "dynamodb:GetItem", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }

除了上述以資源為基礎的政策之外,連接至使用者的身分型政策 John 也需要允許跨帳戶存取的 GetItem API 動作運作。以下是您必須連接到使用者 John 的身分型政策範例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountIdentityBasedPolicy", "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }

使用者 John 可以透過在table-name參數中指定資料表 ARN 來提出GetItem請求,以存取帳戶 123456789012 中的資料表 MusicCollection

aws dynamodb get-item \ --table-name arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ --key '{"Artist": {"S": "Jane"}' \ --projection-expression 'Artist, SongTitle' \ --return-consumed-capacity TOTAL

具有 IP 地址條件的資源型政策

您可以套用條件來限制來源 IP 地址、虛擬私有雲端 (VPCs) 和 VPC 端點 (VPCE)。您可以根據原始請求的來源地址指定許可。例如,您可能想要僅允許使用者從特定 IP 來源存取 DynamoDB 資源,例如公司 VPN 端點。在 Condition陳述式中指定這些 IP 地址。

下列範例允許使用者 John 在來源 IPs 為 54.240.143.0/24和 時存取任何 DynamoDB 資源2001:DB8:1234:5678::/64

{ "Id":"PolicyId2", "Version":"2012-10-17", "Statement":[ { "Sid":"AllowIPmix", "Effect":"Allow", "Principal":"arn:aws:iam::111111111111:user/John", "Action":"dynamodb:*", "Resource":"*", "Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } } } ] }

您也可以拒絕對 DynamoDB 資源的所有存取,除非來源是特定 VPC 端點,例如 vpce-1a2b3c4d

{ "Id":"PolicyId", "Version":"2012-10-17", "Statement": [ { "Sid": "AccessToSpecificVPCEOnly", "Principal": "*", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals":{ "aws:sourceVpce":"vpce-1a2b3c4d" } } } ] }

使用 IAM 角色的資源型政策

您也可以在資源型政策中指定 IAM 服務角色。擔任此角色的 IAM 實體受到針對角色指定的允許動作,以及資源型政策中特定資源集的約束。

下列範例允許 IAM 實體在 MusicCollectionMusicCollection DynamoDB 資源上執行所有 DynamoDB 動作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/John" }, "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/*" ] } ] }

下一個主題:

考量事項

上一個主題:

IAM 授權
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。