使用 DynamoDB 中的資源型政策封鎖公開存取 - Amazon DynamoDB

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

使用 DynamoDB 中的資源型政策封鎖公開存取

封鎖公開存取 (BPA) 是一項功能,可識別和防止連接以資源為基礎的政策,以在您的 Amazon Web Services (AWS) 帳戶中授予對 DynamoDB 資料表、索引或串流的公開存取權。使用 BPA,您可以防止公開存取您的 DynamoDB 資源。BPA 會在建立或修改資源型政策期間執行檢查,並協助改善 DynamoDB 的安全狀態。

BPA 使用自動推理來分析資源型政策授予的存取權,並在管理資源型政策時發現此類許可時提醒您。分析會驗證所有以資源為基礎的政策陳述式、動作,以及政策中使用的一組條件索引鍵的存取權。

重要

BPA 透過直接連接到 DynamoDB 資源的資源型政策,例如資料表、索引和串流,來防止公開存取被授予,從而協助保護您的資源。除了使用 BPA 之外,請仔細檢查下列政策,以確認它們未授予公有存取權:

  • 連接到相關聯 AWS 主體的身分型政策 (例如 IAM 角色)

  • 連接至相關聯 AWS 資源的資源型政策 (例如 AWS Key Management Service (KMS) 金鑰)

您必須確保主體不包含*項目,或其中一個指定的條件金鑰限制主體對資源的存取。如果以資源為基礎的政策授予對資料表、索引或串流的公開存取權 AWS 帳戶,則 DynamoDB 會阻止您建立或修改政策,直到政策中的規格更正並視為非公開。

您可以透過在 Principal區塊內指定一或多個委託人,將政策設為非公有。下列資源型政策範例透過指定兩個主體來封鎖公開存取。

{ "Effect": "Allow", "Principal": { "AWS": [ "123456789012", "111122223333" ] }, "Action": "dynamodb:*", "Resource": "*" }

透過指定特定條件金鑰來限制存取的政策也不會被視為公開。除了評估以資源為基礎的政策中指定的委託人之外,以下受信任條件金鑰用於完成非公開存取的資源型政策評估:

  • aws:PrincipalAccount

  • aws:PrincipalArn

  • aws:PrincipalOrgID

  • aws:PrincipalOrgPaths

  • aws:SourceAccount

  • aws:SourceArn

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:UserId

  • aws:PrincipalServiceName

  • aws:PrincipalServiceNamesList

  • aws:PrincipalIsAWSService

  • aws:Ec2InstanceSourceVpc

  • aws:SourceOrgID

  • aws:SourceOrgPaths

此外,對於以資源為基礎的政策為非公有,Amazon Resource Name (ARN) 和字串索引鍵的值不得包含萬用字元或變數。如果您的資源型政策使用 aws:PrincipalIsAWSService金鑰,您必須確定已將金鑰值設定為 true。

下列政策限制對John指定帳戶中 使用者的存取。條件會使 Principal 受限,且不被視為公有。

{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "dynamodb:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:user/John" } } }

下列使用 sourceVPCStringEquals運算子的非公有資源型政策限制範例。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb::123456789012:table/MusicCollection", "Condition": { "StringEquals": { "aws:SourceVpc": [ "vpc-91237329" ] } } } ] }