設定 AWS Identity and Access Management (IAM) RDS 代理伺服器的原則 - Amazon Relational Database Service

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

設定 AWS Identity and Access Management (IAM) RDS 代理伺服器的原則

在 Secret Manager 中建立密碼之後,您可以建立可存取這些密碼的IAM原則。如需使用的一般資訊IAM,請參閱Amazon RDS Amazon 的身份和訪問管理

提示

如果您使用IAM主控台,則適用下列程序。如果您使用 AWS Management Console 的RDS,RDS可以自動為您建立IAM原則。在這種情況下,您可以略過下列程序。

建立存取秘密管理員密碼的IAM原則,以便與您的代理伺服器搭配使用
  1. 登入IAM主控台。遵循建立角色程序,如建立IAM角色,選擇建立角色以委派權限給 AWS 服務中所述。

    對於信任的實體類型,選擇 AWS 服務。在 [使用案例] 下,選RDS取 [其他 AWS 服務的使用案例] 下拉式清單 選取 RDS-將角色新增至資料庫

  2. 對於新角色,請執行新增內嵌政策步驟。使用與編輯IAM策略中相同的一般程序。JSON將以下內容貼到文JSON字方塊中。替換為您自己的帳戶 ID。將您的 AWS 地區替換為us-east-2。以 Amazon 資源名稱 (ARNs) 替代您建立的密碼,請參閱在IAM政策陳述式中指定KMS金鑰。對於kms:Decrypt動作,請替換默認 AWS KMS key 或您自己ARN的KMS密鑰。您使用哪一個取決於您已使用哪一個加密 Secrets Manager 秘密。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1", "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } } ] }
  3. 編輯此IAM角色的信任原則。JSON將以下內容貼到文JSON字方塊中。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

下列命令透過 AWS CLI執行相同的操作。

PREFIX=my_identifier USER_ARN=$(aws sts get-caller-identity --query "Arn" --output text) aws iam create-role --role-name my_role_name \ --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}' ROLE_ARN=arn:aws:iam::account_id:role/my_role_name aws iam put-role-policy --role-name my_role_name \ --policy-name $PREFIX-secret-reader-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1", "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } } ] }