設定 RDS Proxy 的 IAM 身分驗證 - Amazon Aurora

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

設定 RDS Proxy 的 IAM 身分驗證

若要在 Amazon RDS 中設定 RDS Proxy 的 AWS Identity and Access Management (IAM) 身分驗證,請建立並設定授予必要許可的 IAM 政策。RDS Proxy 使用 AWS Secrets Manager 來安全地管理資料庫登入資料,這可讓應用程式透過代理進行身分驗證,而無需直接處理登入資料。

本主題提供為 RDS Proxy 設定 IAM 身分驗證的步驟,包括建立所需的 IAM 政策並將其連接至 IAM 角色。

提示

只有在您想要建立自己的 IAM 角色時,才需要此程序。否則,RDS 可以在設定代理時自動建立必要的角色,因此您可以略過這些步驟。

先決條件

設定 RDS Proxy 的 IAM 身分驗證之前,請確定您有下列項目:

建立 Secrets Manager 存取的 IAM 政策

若要允許 RDS Proxy 從 Secrets Manager 擷取資料庫憑證,請使用授予必要許可的政策來建立 IAM 角色。

建立 角色以存取秘密,以搭配代理使用
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 建立角色的許可政策。如需一般步驟,請參閱建立 IAM 政策 (主控台)

    將此政策貼入 JSON 編輯器,並進行下列變更:

    • 替換為您自己的帳戶 ID。

    • us-east-2 將 取代為代理所在的區域。

    • 將秘密名稱替換為您建立的秘密名稱。如需詳細資訊,請參閱在 IAM 政策陳述式中指定 KMS 金鑰

    • 將 KMS 金鑰 ID 替換為您用來加密 Secrets Manager 秘密的金鑰 ID,可以是預設金鑰或您自己的金鑰。

    { "Version": "2012-10-17", "Statement": [ { "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" ] }, { "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. 建立角色並將許可政策連接至該角色。如需一般步驟,請參閱建立角色以將許可委派給 AWS 服務

    針對信任的實體類型,選擇 AWS 服務。在使用案例下,選取 RDS 並選擇 RDS - 為使用案例將角色新增至資料庫

  4. 針對許可政策,選擇您建立的政策。

  5. 針對選取信任的實體,輸入角色的下列信任政策:

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

若要使用 建立角色 AWS CLI,請傳送下列請求:

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"}]}'

然後,將政策連接至角色:

aws iam put-role-policy \ --role-name my_role_name \ --policy-name 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" } } } ] }'

設定 IAM 角色和許可後,您現在可以建立代理並將其與此角色建立關聯。這可讓代理從應用程式安全地擷取資料庫憑證, AWS Secrets Manager 並啟用 IAM 身分驗證。如需說明,請參閱「為 Amazon Aurora 建立代理」。