使用資源型原則封鎖公用存取 - Amazon 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 資源名稱 (ARN) 和字串金鑰的值不得包含萬用字元或變數。如果以資源為基礎的政策使用aws:PrincipalIsAWSService金鑰,則必須確定已將索引鍵值設定為 true。

以下策略限制了對指定帳戶John中的用戶的訪問。該條件使得Principal約束,不被視為公共。

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

下列以非公開資源為基礎的原則範例會限制sourceVPC使用運算子。StringEquals

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