本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
手動建立SQL伺服器稽核IAM的角色
一般而言,當您建立新的選項時, 會為您 AWS Management Console 建立IAM角色和IAM信任政策。不過,您可以手動建立新的IAM角色以搭配SQL伺服器稽核使用,以便使用您可能有的任何其他需求來自訂角色。若要這麼做,您可以建立IAM角色並委派許可,讓 Amazon RDS服務可以使用您的 Amazon S3 儲存貯體。建立此IAM角色時,您會連接信任和許可政策。信任政策允許 Amazon RDS擔任此角色。許可政策定義此角色可以執行的動作。如需詳細資訊,請參閱 AWS Identity and Access Management 使用者指南中的建立角色以將許可委派給 AWS 服務。
您可以使用本節的範例建立您需要的信任關係和許可政策。
下列範例顯示SQL伺服器稽核的信任關係。它使用 服務主體rds.amazonaws.com
來允許 RDS寫入 S3 儲存貯體。服務主體是用來將許可授予給服務的識別符。每當您rds.amazonaws.com
以這種方式允許存取 時,您RDS即允許 代表您執行動作。如需服務主體的詳細資訊,請參閱AWS JSON政策元素:主體 。
範例 SQL Server Audit 的信任關係
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "
rds.amazonaws.com
" }, "Action": "sts:AssumeRole" } ] }
建議您在資源型信任關係中使用 aws:SourceArn
和 aws:SourceAccount
全域條件內容金鑰,將服務的許可限定於特定資來源。這是防止混淆代理人問題最有效的方式。
您可以同時使用全域條件內容索引鍵和包含帳號 ID 的 aws:SourceArn
值。在此情況下,當在相同陳述式中使用 aws:SourceAccount
值和 aws:SourceArn
裡的帳户時,兩者必須使用同樣的帳户 ID。
-
如果您想要跨服務存取單一資源,請使用
aws:SourceArn
。 -
如果您想要允許該帳戶中的任何資源與跨服務使用相關聯,請使用
aws:SourceAccount
。
在信任關係中,請務必使用aws:SourceArn
全域條件內容索引鍵搭配存取角色之資源的完整 Amazon Resource Name (ARN)。對於SQL伺服器稽核,請務必同時包含資料庫選項群組和資料庫執行個體,如下列範例所示。
範例 SQL Server Audit 與全域條件內容索引鍵的信任關係
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:rds:
Region
:my_account_ID
:db:db_instance_identifier
", "arn:aws:rds:Region
:my_account_ID
:og:option_group_name
" ] } } } ] }
在下列SQL伺服器稽核許可政策範例中,我們為 Amazon S3 ARN 儲存貯體指定 。您可以使用 ARNs 來識別您想要授予存取權的特定帳戶、使用者或角色。如需使用 的詳細資訊ARNs,請參閱 Amazon 資源名稱 (ARNs)。
範例 SQL Server Audit 的許可政策
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/key_prefix
/*" } ] }
注意
驗證同一 AWS 帳戶同時擁有 S3 儲存貯體和SQL伺服器資料庫執行個體時,需要此s3:ListAllMyBuckets
動作。此動作會列出帳戶中儲存貯體的名稱。
S3 儲存貯體命名空間是全域的。如果您不小心刪除了儲存貯體,其他使用者可在不同帳戶中建立相同名稱的儲存貯體。然後,SQL伺服器稽核資料會寫入新的儲存貯體。