本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 RDS Proxy 的 IAM 身分驗證
若要在 Amazon RDS 中設定 RDS Proxy 的 AWS Identity and Access Management (IAM) 身分驗證,請建立並設定授予必要許可的 IAM 政策。
本主題提供設定 RDS Proxy IAM 身分驗證的步驟,包括建立必要的 IAM 政策並將其連接至 IAM 角色。
提示
只有在您想要建立自己的 IAM 角色時,才需要此程序。否則,RDS 可以在設定代理時自動建立必要的角色,因此您可以略過這些步驟。
先決條件
設定 RDS Proxy 的 IAM 身分驗證之前,請確定您有下列項目:
-
AWS Secrets Manager – 至少有一個存放的秘密,其中包含資料庫憑證。如需如何建立秘密的指示,請參閱 設定 RDS Proxy 的資料庫登入資料。
如果您使用end-to-end 身分驗證,則不需要這麼做。
-
IAM 許可 – 具有在 AWS Secrets Manager中建立及管理 IAM 政策、角色和秘密之許可的 IAM 角色或使用者。
建立end-to-end IAM 身分驗證的 IAM 政策
使用end-to-end IAM 身分驗證時,RDS Proxy 會使用 IAM 身分驗證連線至資料庫,而不是從 Secrets Manager 擷取憑證。這需要為要與代理搭配使用的資料庫帳戶設定具有rds-db:connect許可的 IAM 角色。
若要使用 IAM 向資料庫驗證 RDS Proxy,請使用授予必要資料庫連線許可的政策來建立 IAM 角色。
使用代理建立end-to-end IAM 身分驗證的角色
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
建立角色的許可政策。如需一般步驟,請參閱建立 IAM 政策 (主控台)。
將此政策貼到 JSON 編輯器,並進行以下變更:。
-
替換為您自己的帳戶 ID。
-
us-east-2以代理必須所在的 取代 。 -
將資料庫資源 IDs和使用者名稱替換成您要使用的資料庫資源 ID 和使用者名稱。RDS 執行個體和 之間的資源 ID 格式不同Aurora clusters。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds-db:connect", "Resource": [ "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1", "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2" ] } ] } -
-
建立角色並將許可政策連接至其中。如需一般步驟,請參閱建立角色以將許可委派給 AWS 服務。
對於信任的實體類型,選擇 AWS 服務。在使用案例底下,選取 RDS,並為使用案例選擇 RDS - 將角色新增至資料庫。
-
對於許可政策,選擇您建立的政策。
-
對於選取受信任的實體,輸入角色的下列信任政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
若要使用 建立角色 AWS CLI,請傳送下列請求:
aws iam create-role \ --role-namemy_e2e_iam_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-namemy_e2e_iam_role_name\ --policy-namee2e_iam_db_connect_policy\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds-db:connect", "Resource": [ "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1", "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2" ] } ] }'
設定end-to-end IAM 身分驗證的 IAM 角色和許可後,您現在可以建立將 DefaultAuthScheme 設為 的代理IAM_AUTH。此代理會使用 IAM 直接驗證資料庫,而不需要 Secrets Manager 秘密。如需說明,請參閱為 Amazon Aurora 建立代理。
使用end-to-end IAM 身分驗證時,請確定您的資料庫使用者已設定為 IAM 身分驗證,如中所述使用 IAM 身分驗證建立資料庫帳戶。
建立 Secrets Manager 存取的 IAM 政策
若要允許 RDS Proxy 從 Secrets Manager 擷取資料庫憑證,請使用可授予必要許可的政策建立 IAM 角色。
建立可存取私密的角色以與代理搭配使用
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
建立角色的許可政策。如需一般步驟,請參閱建立 IAM 政策 (主控台)。
將此政策貼到 JSON 編輯器,並進行以下變更:。
-
替換為您自己的帳戶 ID。
-
將
us-east-2替代為代理所在的區域。 -
將秘密名稱替代為您建立的秘密名稱。如需詳細資訊,請參閱在 IAM 政策陳述式中指定 KMS 金鑰。
-
將 KMS 金鑰 ID 替代為您用來加密 Secrets Manager 秘密的金鑰 ID,可以是預設金鑰或您自己的金鑰。
-
-
建立角色並將許可政策連接至其中。如需一般步驟,請參閱建立角色以將許可委派給 AWS 服務。
對於信任的實體類型,選擇 AWS 服務。在使用案例底下,選取 RDS,並為使用案例選擇 RDS - 將角色新增至資料庫。
-
對於許可政策,選擇您建立的政策。
-
對於選取受信任的實體,輸入角色的下列信任政策:
若要使用 建立角色 AWS CLI,請傳送下列請求:
aws iam create-role \ --role-namemy_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-namemy_role_name\ --policy-namesecret_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 建立代理。