本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Aurora 中創建、修改和刪除資源的許可政策 RDS
下列各節提供授與及限制資源存取權限的權限原則範例:
允許使用者在 AWS 帳戶中建立資料庫執行個體
以下是範例政策,允許具有 ID 123456789012
的帳戶為您的 AWS 帳戶建立資料庫執行個體。此政策需要新資料庫執行個體的名稱以 test
開頭。新的資料庫執行個體也必須使用 My SQL 資料庫引擎和資料db.t2.micro
庫執行個體類別。此外,新的資料庫執行個體還須使用選項群組,以及以 default
開頭的資料庫參數群組,而且它還須使用 default
子網路群組。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDBInstanceOnly", "Effect": "Allow", "Action": [ "rds:CreateDBInstance" ], "Resource": [ "arn:aws:rds:*:123456789012:db:test*", "arn:aws:rds:*:123456789012:og:default*", "arn:aws:rds:*:123456789012:pg:default*", "arn:aws:rds:*:123456789012:subgrp:default" ], "Condition": { "StringEquals": { "rds:DatabaseEngine": "mysql", "rds:DatabaseClass": "db.t2.micro" } } } ] }
政策包括單一陳述式,指定 使用者的下列許可:
此原則允許帳戶使用 C reateDBInstance API 作業建立資料庫執行個體 (這也適用於create-db-instance AWS CLI 命令和 AWS Management Console)。
Resource
元素指定使用者可對資源或搭配資源執行動作。您可以使用 Amazon 資源名稱 (ARN) 指定資源。這ARN包括資源所屬的服務名稱 (rds
)、「 AWS 區域」(*
表示此範例中的任何區域)、 AWS 帳號 (在此範例中123456789012
是帳號) 以及資源類型。如需建立的更多資訊ARNs,請參閱Amazon 資源名稱(ARNs)RDS。範例中的
Resource
元素對使用者的資源指定下列政策限制:新資料庫執行個體的資料庫執行個體識別符必須以
test
開頭 (例如,testCustomerData1
、test-region2-data
)。新資料庫執行個體的選項群組必須以
default
開頭。新資料庫執行個體的資料庫參數群組必須以
default
開頭。新資料庫執行個體的子網路群組必須是
default
子網路群組。
Condition
元素指定資料庫引擎必須是 My,SQL而資料庫執行個體類別必須是db.t2.micro
。Condition
元素指定政策應該生效時的條件。您可以使用Condition
元素來新增其他許可或限制。如需指定條件的詳細資訊,請參閱Aurora 的政策條件索引鍵。此範例指定rds:DatabaseEngine
和rds:DatabaseClass
條件。如需有關的有效條件值的資訊rds:DatabaseEngine
,請參閱 C 中Engine
參數下方的清單reateDBInstance。如需rds:DatabaseClass
的有效條件值的相關資訊,請參閱 資料庫執行個體類別的支援資料庫引擎。
此政策不指定 Principal
元素,因為您不會在以身分為基礎的政策中,指定取得許可的主體。當您將政策連接至使用者時,這名使用者即為隱含主體。將權限原則附加至角色時,在IAM角色的信任原則中識別的主參與者會取得權限。
若要查看 Aurora 動作清單,請參閱服務授權參考RDS中 Amazon 定義的動作。
允許使用者對任何RDS資源執行任何描述動作
下列許可政策會授予使用者執行開頭為 Describe
之所有動作的許可。這些動作會顯示資RDS源的相關資訊,例如資料庫執行個體。元素中的萬用字Resource
元 (*) 表示該帳戶擁有的所有 Aurora 資源都允許執行這些動作。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRDSDescribe", "Effect": "Allow", "Action": "rds:Describe*", "Resource": "*" } ] }
允許使用者建立可使用指定資料庫參數群組和子網路群組的資料庫執行個體
以下許可政策授予許可,以允許使用者只能建立一個必須使用 mydbpg
資料庫參數群組和 mydbsubnetgroup
資料庫子網路群組的資料庫執行個體。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "rds:CreateDBInstance", "Resource": [ "arn:aws:rds:*:*:pg:mydbpg", "arn:aws:rds:*:*:subgrp:mydbsubnetgroup" ] } ] }
利用具有兩個不同值的特定標籤,對資源上的動作授予許可
您可以使用身分型政策中的條件,根據標籤控制對 Aurora 資源的存取。下列原則允許在stage
標籤設為development
或的資料庫執行個體上執行CreateDBSnapshot
API作業的權限test
。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowAnySnapshotName", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:snapshot:*" }, { "Sid":"AllowDevTestToCreateSnapshot", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }
下列原則允許在stage
標籤設為development
或的資料庫執行個體上執行ModifyDBInstance
API作業的權限test
。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowChangingParameterOptionSecurityGroups", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource": [ "arn:aws:rds:*:123456789012:pg:*", "arn:aws:rds:*:123456789012:secgrp:*", "arn:aws:rds:*:123456789012:og:*" ] }, { "Sid":"AllowDevTestToModifyInstance", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }
防止使用者刪除資料庫執行個體
以下許可政策授予許可,以防止使用者刪除特定的資料庫執行個體。例如,您可能想拒絕給予任何非管理員使用者刪除生產資料庫執行個體的能力。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDelete1", "Effect": "Deny", "Action": "rds:DeleteDBInstance", "Resource": "arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance" } ] }
拒絕對資源的所有存取
您可以明確拒絕對資源的存取權。拒絕政策優先於允許政策。下列政策明確拒絕使用者管理資源的能力:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "rds:*", "Resource": "arn:aws:rds:us-east-1:123456789012:db:mydb" } ] }