選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用機密存取 AWS Database Migration Service 端點

焦點模式
使用機密存取 AWS Database Migration Service 端點 - AWS 資料庫遷移服務

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

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

對於 AWS DMS,秘密是一種加密金鑰,您可以使用它來代表一組使用者登入資料,透過秘密身分驗證來驗證支援的 AWS DMS 來源或目標端點的資料庫連線。對於也使用 Oracle Automatic Storage Management (ASM) 的 Oracle 端點, AWS DMS 需要代表使用者登入資料的額外秘密才能存取 Oracle ASM。

您可以建立使用 秘密身分驗證 AWS DMS 所需的秘密或秘密 AWS Secrets Manager,該服務用於安全地建立、儲存和擷取登入資料,以存取雲端和內部部署中的應用程式、服務和 IT 資源。這項服務的支援包括無需您操作即可自動定期輪換加密機密值,為您的憑證提供額外的安全性層級。在 中啟用秘密值輪換 AWS Secrets Manager 可確保此秘密值輪換對依賴秘密的任何資料庫遷移沒有任何影響。若要秘密地驗證端點資料庫連線,請建立身分或 ARN 指派給 SecretsManagerSecretId 的機密,並將其包含在端點設定中。若要秘密地驗證 Oracle ASM 為 Oracle 端點的一部分,請建立身分或 ARN 指派給 SecretsManagerOracleAsmSecretId 的機密,並將其包含在端點設定中。

注意

您無法使用由 Amazon RDS Aurora 管理的主要憑證。這些登入資料不包含主機或連接埠資訊,這些資訊 AWS DMS 需要建立連線。作為替代,請建立新的使用者和機密。如需建立使用者和機密的相關資訊,請參閱下列的 使用 AWS Management Console 建立秘密和秘密存取角色

如需詳細資訊 AWS Secrets Manager,請參閱AWS Secrets Manager 《 使用者指南》中的什麼是 AWS Secrets Manager?

AWS DMS 在支援的來源和目標端點上支援下列內部部署或 AWS受管資料庫的秘密身分驗證:

  • Amazon DocumentDB

  • IBM Db2 LUW

  • Microsoft SQL Server

  • MongoDB

  • MySQL

  • Oracle

  • PostgreSQL

  • Amazon Redshift

  • SAP ASE

若要連線到這些資料庫中的任何一個,您可以選擇輸入下列其中一組值 (但不能同時輸入兩組值) 作為端點設定的一部分:

  • 純文字值,以使用 UserNamePasswordServerNamePort 設定來驗證資料庫連線。對於同樣使用 Oracle ASM 的 Oracle 端點,請包括其他純文字值,以便使用 AsmUserNameAsmPasswordAsmServerName 設定來驗證 ASM。

  • 使用 SecretsManagerSecretIdSecretsManagerAccessRoleArn 設定值的機密驗證。對於使用 Oracle ASM 的 Oracle 端點,請包含 SecretsManagerOracleAsmSecretIdSecretsManagerOracleAsmAccessRoleArn 設定的其他值。這些設定的機密值包括下列項目:

    • SecretsManagerSecretId – 您在 AWS Secrets Manager中為端點資料庫存取權所建立機密的完整 Amazon Resource Name (ARN)、部分 ARN 或易記名稱。

    • SecretsManagerAccessRoleArn – 您在 IAM 中建立的秘密存取角色 ARN,以代表您提供此SecretsManagerSecretId秘密的 AWS DMS 存取權。

    • SecretsManagerOracleAsmSecretId – 您在 AWS Secrets Manager中為 Oracle ASM 存取權所建立機密的完整 Amazon Resource Name (ARN)、部分 ARN 或易記名稱。

    • SecretsManagerOracleAsmAccessRoleArn – 您在 IAM 中所建立機密存取角色的 ARN,用於代表您將 AWS DMS 存取權提供此 SecretsManagerOracleAsmSecretId 機密。

    注意

    您也可以使用單一秘密存取角色來提供對SecretsManagerSecretId秘密和SecretsManagerOracleAsmSecretId秘密的 AWS DMS 存取。如果您為這兩個機密建立此單一機密存取角色,請確定將此存取角色的相同 ARN 指派給 SecretsManagerAccessRoleArnSecretsManagerOracleAsmAccessRoleArn。例如,如果兩個機密的機密存取角色都將其 ARN 指派給變數 ARN2xsecrets,您可以按照下列方式設定這些 ARN:

    SecretsManagerAccessRoleArn = ARN2xsecrets; SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;

    如需建立這些值的詳細資訊,請參閱:使用 AWS Management Console 建立秘密和秘密存取角色

為端點建立並指定所需的機密和機密存取角色端點設定後,請在將要執行 CreateEndpointModifyEndpoint API 要求的使用者帳戶上使用這些機密詳細資料更新許可。確保這些帳戶許可包含秘密存取角色的IAM:GetRole許可和秘密的SecretsManager:DescribeSecret許可。 AWS DMS 需要這些許可來驗證存取角色及其秘密。

若要提供和驗證所需的使用者許可
  1. 登入 AWS Management Console 並在 開啟 AWS Identity and Access Management 主控台https://console.aws.amazon.com/iam/

  2. 選擇使用者,然後選取用於呼叫 CreateEndpointModifyEndpoint API 的使用者 ID

  3. 許可索引標籤中,選擇 {} JSON

  4. 請確定使用者具有以下列出的許可。

    { "Statement": [{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "SECRET_ACCESS_ROLE_ARN" }, { "Effect": "Allow", "Action": "secretsmanager:DescribeSecret", "Resource": "SECRET_ARN" } ] }
  5. 如果使用者沒有這些許可,請新增許可。

  6. 如果您是使用 IAM 角色進行 DMS API 呼叫,請針對個別角色重複上述步驟。

  7. 開啟終端機,並使用 AWS CLI 來驗證是否已透過擔任上述角色或使用者正確授予許可。

    1. 使用 IAM get-role 命令驗證使用者對 SecretAccessRole 的許可。

      aws iam get-role --role-name ROLE_NAME

      ROLE_NAME 替換為 SecretsManagerAccessRole 的名稱。

      如果命令傳回錯誤訊息,請確定已正確授予權限。

    2. 使用 Secrets Manager describe-secret 命令驗證使用者對機密的許可。

      aws secretsmanager describe-secret --secret-id SECRET_NAME OR SECRET_ARN --region=REGION_NAME

      使用者可以是易記名稱、部分 ARN 或完整的 ARN。如需詳細資訊,請參閱 describe-secret

      如果命令傳回錯誤訊息,請確定已正確授予權限。

使用 AWS Management Console 建立秘密和秘密存取角色

您可以使用 來 AWS Management Console 建立端點身分驗證的秘密,以及建立允許 代表您 AWS DMS 存取秘密的政策和角色。

使用 建立秘密 AWS Management Console ,該 AWS DMS 可用來驗證來源和目標端點連線的資料庫
  1. 登入 AWS Management Console 並在 開啟 AWS Secrets Manager 主控台https://console.aws.amazon.com/secretsmanager/

  2. 選擇儲存新機密

  3. 儲存一個新的機密頁面的選取機密類型下,選擇其他類型的機密,接著選擇純文字

    注意

    從這點開始連線到端點資料庫,這是您唯一需要輸入純文字憑證的位置。

  4. 純文字欄位中:

    • 對於您將身分指派給 SecretsManagerSecretId 的機密,請輸入下列 JSON 結構。

      { "username": db_username, "password": db_user_password, "port": db_port_number, "host": db_server_name }
      注意

      這是驗證端點資料庫所需的最低限度 JSON 成員清單。您可以將任何其他 JSON 端點設定以全小寫的形式新增為 JSON 成員。不過, AWS DMS 在端點驗證時會忽略任何其他 JSON 成員。

      其中,db_username 是存取資料庫的使用者名稱,db_user_password 是資料庫使用者的密碼,db_port_number 是存取資料庫的連接埠號碼,而 db_server_name 是 Web 上的資料庫服務器名稱 (地址),如下列範例所示。

      { "username": "admin", "password": "some_password", "port": "8190", "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com" }
    • 對於您將身分指派給 SecretsManagerOracleAsmSecretId 的機密,請輸入下列 JSON 結構。

      { "asm_user": asm_username, "asm_password": asm_user_password, "asm_server": asm_server_name }
      注意

      這是驗證 Oracle 端點 Oracle ASM 所需的最低限度 JSON 成員清單。這也是您能夠根據可用 Oracle ASM 端點設定值指定的完整清單。

      其中,asm_username 是存取 Oracle ASM 的名稱,asm_user_password 是 Oracle ASM 使用者的密碼,而 asm_server_name 是 Web 上的 Oracle ASM 伺服器名稱 (地址),包括連接埠,如下列範例所示。

      { "asm_user": "oracle_asm_user", "asm_password": "oracle_asm_password", "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" }
  5. 選取 AWS KMS 加密金鑰來加密秘密。您可以接受 AWS Secrets Manager 為服務建立的預設加密金鑰,或選取您建立的 AWS KMS 金鑰。

  6. 指定要參照此機密的名稱及選用描述。這是您用來作為 SecretsManagerSecretIdSecretsManagerOracleAsmSecretId 值的易記名稱。

  7. 如果您想要在秘密中啟用自動輪換,則需要選取或建立具有許可的 AWS Lambda 函數,以輪換秘密的登入資料,如所述。但是,在設定自動輪換以使用 Lambda 函數之前,請確定函數的組態設定會在 EXCLUDE_CHARACTERS 環境變數的值中新增以下四個字元。

    ;.:+{}

    AWS DMS 不允許在用於端點登入資料的密碼中包含這些字元。請設定 Lambda 函數以排除這些字元,以防止 AWS Secrets Manager 在產生輪換密碼值時包含這些字元。在您將自動輪換設定為使用 Lambda 函數後, AWS Secrets Manager 會立即輪換秘密以驗證您的秘密組態。

    注意

    根據您的資料庫引擎組態不同,資料庫可能無法擷取輪換的認證。在此情況下,您需要手動重新啟動任務以重新整理憑證。

  8. 檢閱並存放您的秘密 AWS Secrets Manager。然後,您可以依其易記名稱在 中查詢每個秘密 AWS Secrets Manager,然後擷取秘密 ARN 做為 的值,SecretsManagerSecretIdSecretsManagerOracleAsmSecretId視需要驗證對端點資料庫連線和 Oracle ASM (如果使用的話) 的存取。

建立秘密存取政策和角色以設定您的 SecretsManagerAccessRoleArnSecretsManagerOracleAsmAccessRoleArn,以允許 AWS DMSAWS Secrets Manager 存取您的適當秘密
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/iam/:// 開啟 AWS Identity and Access Management (IAM) 主控台。

  2. 選擇政策,然後選擇建立政策

  3. 選擇 JSON 並輸入以下政策以啟用機密的存取和解密。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": secret_arn, }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": kms_key_arn, } ] }

    其中,secret_arn 是機密的 ARN,您可以視情況取得 SecretsManagerSecretIdSecretsManagerOracleAsmSecretId,而 kms_key_arn 是用來加密 AWS KMS 的金鑰 ARN,如下列範例所示。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd" } ] }
    注意

    如果您使用 建立的預設加密金鑰 AWS Secrets Manager,則不必指定 的 AWS KMS 許可kms_key_arn

    如果您希望政策提供對這兩個機密的存取權,只需為另一個 secret_arn 指定額外的 JSON 資源對象即可。

    如果您的機密位於不同的帳戶中,則 SecretsManagerAccessRoleArn 角色需要額外的政策才能驗證跨帳戶機密。對於這類使用案例,請將動作 secretsmanager:DescribeSecret 新增至政策。如需設定跨帳戶秘密的詳細資訊,請參閱不同帳戶中使用者的 AWS Secrets Manager 秘密許可

  4. 檢閱並使用易記名稱建立政策,並視需要提供說明。

  5. 選擇角色,然後選擇建立角色

  6. 選擇 AWS 服務作為信任的實體類型。

  7. 從服務清單中選擇 DMS 作為信任的服務,然後選擇下一步:許可

  8. 查詢並附加您在步驟 4 中建立的政策,然後繼續新增任何標籤並檢閱您的角色。此時,請編輯角色的信任關係,以使用您的 AWS DMS 區域服務委託人做為信任的實體。此主體的格式如下。

    dms.region-name.amazonaws.com

    其中,region-name 是區域的名稱,例如 us-east-1。因此,此區域的 AWS DMS 區域服務主體如下。

    dms.us-east-1.amazonaws.com
  9. 編輯角色的受信任實體之後,請使用易記名稱和選用說明建立角色。您現在可以透過 IAM 中的易記名稱查詢新角色,然後擷取角色 ARN 作為 SecretsManagerAccessRoleArnSecretsManagerOracleAsmAccessRoleArn 值以驗證端點資料庫連線。

若要使用 Secrets Manager 搭配私有子網路中的複寫執行個體
  1. 建立 Secrets Manager VPC 端點,並記下端點的 DNS。如需建立 Secrets Manager VPC 端點的詳細資訊,請參閱《AWS Secrets Manager 使用指南》中的「透過 VPC 端點連線至 Secrets Manager」。

  2. 將複寫執行個體安全群組連接至密碼管理員 VPC 端點。

  3. 針對複寫執行個體安全群組輸出規則,允許目的地 0.0.0.0/0 的所有流量。

  4. 設定端點額外連線屬性 secretsManagerEndpointOverride=secretsManager endpoint DNS 以提供 Secret Manager VPC 端點 DNS,如下列範例所示。

    secretsManagerEndpointOverride=vpce-1234a5678b9012c-12345678.secretsmanager.eu-west-1.vpce.amazonaws.com
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。