AWSSupport-TroubleshootRDSIAMAuthentication - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWSSupport-TroubleshootRDSIAMAuthentication

描述

AWSSupport-TroubleshootRDSIAMAuthentication这有助于排除适用于 Postgre 的亚马逊、我的亚马逊RDSSQL、MariaDB RDS 的亚马逊SQL、亚马逊 A RDS urora SQL Postgre 和亚马逊 Aurora My 实例的 AWS Identity and Access Management (IAM) 身份验证。SQL使用此运行手册验证使用亚马逊RDS实例或 Aurora 集群进行IAM身份验证所需的配置。它还提供了纠正与亚马逊RDS实例或 Aurora 集群的连接问题的步骤。

重要

本运行手册不支持亚马逊RDS版甲骨文版或亚马逊版RDS微软SQL服务器。

重要

如果提供了源 Amazon EC2 实例,而目标数据库是 AmazonRDS,则会调用子AWSSupport-TroubleshootConnectivityToRDS级自动化来排除TCP连接故障。输出还提供了可在您的 Amazon EC2 实例或源计算机上运行的命令,以便使用IAM身份验证连接到 Amazon RDS 实例。

如何工作?

本运行手册包含六个步骤:

  • 步骤 1validateInputs:验证自动化的输入。

  • 步骤 2 branchOnSourceEC2Provided:验证输入参数中是否提供了源 Amazon EC2 实例 ID。

  • 步骤 3validateRDSConnectivity:验证来自源亚马逊EC2实例(如果提供)的亚马逊RDS连接。

  • 步骤 4validateRDSIAMAuthentication:验证IAM身份验证功能是否已启用。

  • 步骤 5validateIAMPolicies:验证所提供的IAM用户/角色中是否存在所需的IAM权限。

  • 步骤 6generateReport:生成先前执行步骤的结果报告。

运行此自动化(控制台)

文档类型

自动化

所有者

Amazon

平台

Linux

参数

  • AutomationAssumeRole

    类型:字符串

    描述:(可选)允许 Systems ARN Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 ()。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。

  • RDSType

    类型:字符串

    描述:(必填):选择要连接并进行身份验证的关系数据库的类型。

    允许的值:Amazon RDSAmazon Aurora Cluster.

  • DBInstanceIdentifier

    类型:字符串

    描述:(必填)目标 Amazon RDS 数据库实例或 Aurora 数据库集群的标识符。

    允许的模式:^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$

    最大字符数:63

  • SourceEc2 InstanceIdentifier

    类型:AWS::EC2::Instance::Id

    描述:(可选)如果您从在同一账户和地区运行的亚马逊实例连接到亚马逊RDS数据库EC2实例,则为亚马逊实例 ID。EC2如果源不是亚马逊EC2实例,或者目标亚马逊RDS类型是 Aurora 数据库集群,则不要指定此参数。

    默认:""

  • DBIAMRoleName

    类型:字符串

    描述:(可选)用于IAM基于身份验证的IAM角色名称。仅在未提供参数DBIAMUserName时提供,否则将其留空。DBIAMUserName必须提供DBIAMRoleName或。

    允许的模式:^[a-zA-Z0-9+=,.@_-]{1,64}$|^$

    最大字符数:64

    默认:""

  • DBIAMUserName

    类型:字符串

    描述:(可选)用于IAM基于身份验证的IAM用户名。仅在未提供DBIAMRoleName参数时提供,否则将其留空。DBIAMUserName必须提供DBIAMRoleName或。

    允许的模式:^[a-zA-Z0-9+=,.@_-]{1,64}$|^$

    最大字符数:64

    默认:""

  • DBUserName

    类型:字符串

    描述:(可选)映射到IAM角色/用户的数据库用户名,以便在数据库中进行IAM基于身份验证。默认选项用于*评估是否允许数据库中的所有用户拥有该rds-db:connect权限。

    允许的模式:^[a-zA-Z0-9+=,.@*_-]{1,64}$

    最大字符数:64

    默认:*

所需IAM权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

  • ec2:DescribeInstances

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • iam:GetPolicy

  • iam:GetRole

  • iam:GetUser

  • iam:ListAttachedRolePolicies

  • iam:ListAttachedUserPolicies

  • iam:ListRolePolicies

  • iam:ListUserPolicies

  • iam:SimulatePrincipalPolicy

  • rds:DescribeDBClusters

  • rds:DescribeDBInstances

  • ssm:DescribeAutomationStepExecutions

  • ssm:GetAutomationExecution

  • ssm:StartAutomationExecution

说明

  1. 导航到 AWS Systems Manager 控制台roubleshootRDSIAMAuthentication中的 AWSSupport-T

  2. 选择 Execute automation(执行自动化)

  3. 要输入参数,请输入内容:

    • AutomationAssumeRole(可选):

      () 角色的亚马逊资源名称 (ARN), AWS Identity and Access Management 允许 Systems Manager Automation 代表您执行操作。IAM如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。

    • RDSType(必填):

      选择您RDS要连接并进行身份验证的 Amazon 类型。从两个允许的值中进行选择:Amazon RDSAmazon Aurora Cluster.

    • DBInstanceIdentifier(必填):

      输入您尝试连接的目标 Amazon RDS 数据库实例或 Aurora 集群的标识符,并使用IAM证书进行身份验证。

    • SourceEc2InstanceIdentifier(可选):

      如果您要从同一账户和地区的亚马逊EC2实例连接到亚马逊RDS数据库实EC2例,请提供亚马逊实例 ID。如果来源不是亚马逊,EC2或者目标亚马逊RDS类型是 Aurora 集群,则留空。

    • DBIAMRoleName(可选):

      输入用于IAM基于身份验证的IAM角色名称。仅在未提供DBIAMUserName时提供;否则,请留空。DBIAMUserName必须提供DBIAMRoleName或。

    • DBIAMUserName(可选):

      输入用于IAM基于身份验证的IAM用户。仅DBIAMRoleName在未提供时提供,否则留空。DBIAMUserName必须提供DBIAMRoleName或。

    • DBUserName(可选):

      输入映射到IAM角色/用户的数据库用户,以便在数据库中进行IAM基于身份验证。默认选项*用于评估;此字段中未提供任何内容。

  4. 选择执行

  5. 请注意,自动化已启动。

  6. 文档将执行以下步骤:

    • 步骤 1:validateInputs:

      验证自动化的输入-SourceEC2InstanceIdentifier(可选)、DBInstanceIdentifierClusterIDDBIAMRoleNameDBIAMUserName。它会验证您输入的输入参数是否存在于您的账户和区域中。它还会验证用户是否输入了其中一个IAM参数(例如,DBIAMRoleNameDBIAMUserName)。此外,它还会执行其他验证,例如提及的数据库是否处于 “可用” 状态。

    • 第 2 步: branchOnSourceEC2Provided:

      验证输入参数中EC2是否提供了 Source Amazon 且数据库是否为 Amazon RDS。如果是,则继续执行步骤 3。否则,它将跳过步骤 3(即亚马逊 EC2-亚马逊RDS连接验证),继续执行步骤 4。

    • 第 3 步:validateRDSConnectivity:

      如果输入参数中提供了来源 AmazonEC2,而数据库是 AmazonRDS,则步骤 2 将启动步骤 3。在此步骤中,将调用子AWSSupport-TroubleshootConnectivityToRDS级自动化来验证来自源亚马逊的亚马逊RDS连接EC2。儿童自动化运行手册AWSSupport-TroubleshootConnectivityToRDS会验证所需的网络配置(Amazon Virtual Private Cloud [Amazon VPCNACL]、安全组、网络访问控制列表 []、亚马逊RDS可用性)是否已到位,以便您可以从亚马逊EC2实例连接到亚马逊RDS实例。

    • 第 4 步:validateRDSIAMAuthentication:

      验证是否在 Amazon RDS 实例或 Aurora 集群上启用了IAM身份验证功能。

    • 第 5 步:validateIAMPolicies:

      验证所传递的IAM用户/角色中是否存在所需的IAM权限,以使指定数据库用户(如果有)的IAM凭证能够在 Amazon RDS 实例中进行身份验证。

    • 第 6 步:generateReport:

      获取前面步骤中的所有信息,并打印每个步骤的结果或输出。它还列出了使用IAM凭证连接到 Amazon RDS 实例时要参考和执行的步骤。

  7. 自动化完成后,请查看 “输出” 部分以了解详细结果:

    • 检查连接IAM数据库的用户/角色权限:

      验证所传递的IAM用户/角色中是否存在所需的IAM权限,以使指定数据库用户(如果有)的IAM凭证能够在 Amazon RDS 实例中进行身份验证。

    • IAM基于检查数据库的身份验证属性:

      验证是否为指定的 Amazon RDS 数据库/Aurora 集群启用了IAM身份验证功能。

    • 检查从亚马逊EC2实例到亚马逊RDS实例的连接:

      验证所需的网络配置(亚马逊VPC、安全组NACL、亚马逊RDS可用性)是否已到位,以便您可以从亚马逊EC2实例连接到亚马逊实RDS例。

    • 后续步骤:

      列出使用IAM凭证连接到 Amazon RDS 实例时要参考和执行的命令和步骤。

参考

Systems Manager Automation