設定 AWS Identity and Access Management (IAM) 政策 - Amazon Aurora

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

設定 AWS Identity and Access Management (IAM) 政策

在 Secrets Manager 中建立秘密後,您建立可存取這些秘密的 IAM 政策。如需使用 IAM 的一般資訊,請參閱 Amazon Aurora 的 Identity and access management

提示

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

如何建立可存取 Secrets Manager 私密以與代理搭配使用的 IAM 政策
  1. 登入 IAM 主控台。遵循建立角色程序,如建立 IAM 角色,選擇建立角色以將權限委派給 AWS 服務中所述。

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

  2. 對於新角色,請執行新增內嵌政策步驟。使用與編輯 IAM 政策中所述的相同一般程序。將下列 JSON 貼入 JSON 文字方塊中。替換為您自己的帳戶 ID。以您的 AWS 地區代替us-east-2。以 Amazon Resource Names (ARNs) 替代您建立的秘密,請參閱在 IAM 政策陳述式中指定 KMS 金鑰。對於kms:Decrypt動作,請替換預設值的 ARN AWS KMS key 或您自己的 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" } } } ] }