跳到主要内容

AWS

在 SavingNow 中,AWS 按服务区域可以划分为AWS-Global 和 AWS-CN,两者在数据接入的操作没有差异。

新建一个连接

STEP1:授予跨账号角色

在多云接入的云厂商列表中,选择AWS-Global或AWS-CN,点击【+云账号】按钮,打开连接配置抽屉页。

系统提供了两种方式创建到某个云账号的连接:“使用角色进行跨账户访问”、“使用IAM访问密钥”。可选择任意一种方式进行配置。

  • 选择【使用角色进行跨账户访问

    • External ID & AWS Role ARN:均为必填。前者是AWS 中用于在允许外部实体假设IAM角色时提供额外的身份验证层;后者是唯一标识AWS IAM角色的字符串。操作步骤如下,

      • 在当前页面中,点击【启动CloudFormation堆栈】,在AWS中启动堆栈模板。

      • 在“快速创建堆栈”中 ,勾选【我确认】,点击 创建堆栈,完成堆栈创建。

      • 在堆栈页面中,转到“输出” 选项卡并复制 CrossAccountRoleArn Key的值,粘贴到对应文本框中。

      • 此时,系统将自动获取 External ID 信息,并自动回填到对应的文本框中。

    • 账号别名:必填;为了区分一串无序数字或字符串的云账号,可自定义别名以便在平台中加以区分。

    • 是否为支付账号:非必填,当且仅当该账号是支付账号或组织账号时勾选即可,勾选该选项可同步该支付账号和该支付账号下所有使用账号的CUR数据,以及该支付账号的成本优化报告权限的监控数据(不包括该支付账号下的使用账号);当只需要增加使用账号成本优化报告权限的数据时,不需要勾选该选项。

    • 备注:非必填,仅用于补充说明当前连接。

    点击【确认】按钮完成云账号接入;点击【取消】或【X】按钮则放弃接入,两种操作均返回云账号列表。

  • 选择【使用IAM访问密钥

    • Access Key ID & Secret Accsess ID:均为必填;前者是用于识别与AWS账户关联的IAM用户或IAM角色的访问密钥。后者是一个私有密钥,与Access Key ID成对使用,用于签名发送到AWS的请求。操作步骤如下:

      (1)当没有创建CUR时,请使用对应接入的云账号登录到AWS管理控制台,并进入“账单和成本管理”功能。在左侧菜单中选择【数据输出】,单击【创建】按钮,进行导出内容配置:

      • 导出类型:选择“旧版CUR导出”。

    • 导出名称:自定义输入导出名称。

    • 导出内容:其他导出内容勾选“包括资源ID”,数据刷新设置勾选“自动刷新”。

    • 数据导出交付选项:报告数据时间粒度勾选“每天”(根据需要选择每天或每小时),报告版本控制勾选“创建新的报告版本”,压缩类型选择“gzip”。

    • 数据导出存储设置:自定义输入S3存储桶名称和S3路径前缀。

    点击【创建报告】按钮,完成数据导出配置。

    (2)登录AWS管理控制台,并进入“IAM控制面板”功能。在左侧菜单中选择【策略】,单击【创建策略】按钮;可选通过可视化或JOSN两种方式来创建您所需要的一条或多条策略,推荐使用JOSN方式进行创建。

    • 通过可视化方式创建策略:选择服务并配置相关权限。

    • 通过JSON方式创建策略:添加代码到策略编辑器。

将以下代码复制到策略编辑器,注意替换存储桶名称。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ce:GetReservationUtilization",
"ce:GetSavingsPlansPurchaseRecommendation",
"ce:GetDimensionValues",
"ce:GetSavingsPlansUtilizationDetails",
"ce:StartSavingsPlansPurchaseRecommendationGeneration",
"ce:GetCostAndUsage",
"ce:GetReservationCoverage",
"ce:GetReservationPurchaseRecommendation",
"ce:GetSavingsPlansCoverage",
"ce:GetTags",
"ce:Get*",
"compute-optimizer:GetRecommendationSummaries",
"compute-optimizer:GetEC2InstanceRecommendations",
"compute-optimizer:GetEC2RecommendationProjectedMetrics",
"compute-optimizer:GetAutoScalingGroupRecommendations",
"compute-optimizer:GetEBSVolumeRecommendations",
"compute-optimizer:GetLambdaFunctionRecommendations",
"compute-optimizer:GetRecommendationPreferences",
"compute-optimizer:GetEffectiveRecommendationPreferences",
"compute-optimizer:GetECSServiceRecommendations",
"compute-optimizer:GetECSServiceRecommendationProjectedMetrics",
"compute-optimizer:GetLicenseRecommendations",
"cloudwatch:Describe*",
"cloudwatch:GenerateQuery",
"cloudwatch:Get*",
"cloudwatch:List*"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"cur:DescribeReportDefinitions",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::请输入桶名/*",
"arn:aws:s3:::请输入桶名"
]
}
]
}

当需要使用成本优化报告功能时,还需添加以下内容:

  • 云产品元数据和API权限:ReadOnlyAccess,用于获取资源计量计费特性等信息。典型如EC2、S3、RDS、AutoScaling、ElasticloadBalancing、Kafka、EMR、OpenSearch、ElastiCache、Redshift等。

    • EC2:

      [
      "ec2:Describe*",
      "ec2:Get*"
      ]
    • RDS:

      [
      "rds:Describe*",
      "rds:List*"
      ]
    • AutoScaling:

      [
      "autoscaling:Describe*"
      ]
    • ElasticloadBalancing:

      [
      "elasticloadbalancing:Describe*"
      ]
    • Kafka:

      [
      "kafka:Describe*",
      "kafka:DescribeCluster",
      "kafka:DescribeClusterOperation",
      "kafka:DescribeClusterV2",
      "kafka:DescribeConfiguration",
      "kafka:DescribeConfigurationRevision",
      "kafka:Get*",
      "kafka:GetBootstrapBrokers",
      "kafka:GetCompatibleKafkaVersions",
      "kafka:List*",
      "kafka:ListClusterOperations",
      "kafka:ListClusters",
      "kafka:ListClustersV2",
      "kafka:ListConfigurationRevisions",
      "kafka:ListConfigurations",
      "kafka:ListKafkaVersions",
      "kafka:ListNodes",
      "kafka:ListTagsForResource"
      ]
    • S3:

      [
      "s3:Get*",
      "s3:List*"
      ]
    • EMR:

      [
      "emr-containers:DescribeJobRun",
      "emr-containers:DescribeManagedEndpoint",
      "emr-containers:DescribeVirtualCluster",
      "emr-containers:ListJobRuns",
      "emr-containers:ListManagedEndpoints",
      "emr-containers:ListTagsForResource",
      "emr-containers:ListVirtualClusters",
      "emr-serverless:GetApplication",
      "emr-serverless:GetDashboardForJobRun",
      "emr-serverless:GetJobRun",
      "emr-serverless:ListApplications",
      "emr-serverless:ListJobRuns",
      "emr-serverless:ListTagsForResource"
      ]
    • OpenSearch:

      [
      "es:Describe*",
      "es:Get*",
      "es:List*"
      ]
    • ElastiCache:

      [
      "elasticache:Describe*",
      "elasticache:List*"
      ]
    • Redshift:

      [
      "redshift:Describe*",
      "redshift:View*"
      ]

      以上权限均在IAM的策略中配置。需要说明的是,您还可以根据实际情况,自行修改或新增云资源的相关数据权限。

      (3) 创建IAM用户:返回【IAM管理】界面,从左侧菜单中选择用户,然后单击【添加用户】按钮;键入新用户的名称并授予策略权限,根据需要定义“标签”,点击【创建用户】完成操作。

      • 获取AK/SK文件:在该用户下执行【创建访问秘钥】,再单击【下载. csv文件】将安全凭据保存到本地。

  • 回填AK/SK到系统:打开csv文件,复制访问密钥ID和秘密访问密钥,并将值粘贴到字段中。

  • 账号别名:必填;为了区分一串无序数字或字符串的云账号,可自定义别名以便在平台中加以区分。

  • 是否为支付账号:非必填,当且仅当该账号是支付账号或组织账号时勾选即可;否则,无需勾选。

  • 备注:非必填,仅用于补充说明当前连接。

点击【确认】按钮完成云账号接入;点击【取消】或【X】按钮则放弃接入,两种操作均返回云账号列表。

STEP2:指定账单数据源

说明:AWS CUR是一个可自定义的报告,提供了有关AWS账户中资源使用情况和成本的详细信息。通过CUR,您可以定期获取包含AWS资源使用情况和成本的CSV或Parquet格式的文件,这些文件存储在Amazon S3 bucket中。

SavingNow 在成本分析过程中的重要数据源之一就是账单数据,目前采用的是 AWS CUR。因此,在创建连接时,需要同步配置 CUR的数据源信息,以便系统能够按照特定的数据获取机制来获取最新的账单数据。

点击账号列表的操作列的【账单存储配置】按钮,点击进入详情页,其中:

  • 存储桶:必填;即指定该账号对应的S3下存储账单数据的具体Bucket名称。
  • 区域:必填;由于S3 存在多区域且不同区域Bucket可以重名的特点,进一步指定Bucket所在区域。
  • 账单报告名称:必填;在AWS CUR中创建且保存到上述Bucket 中的唯一报告名称。
  • 账单报告前缀:非必填;由AWS在创建CUR报告时自动生成的,以确保报告的唯一性和可识别性。

点击【确认】按钮完成云账号接入;点击【取消】或【X】按钮则放弃接入,两种操作均返回云账号列表。

管理接入信息

当前连接列表

在连接列表中,显示云服务商AWS-Global下目前已经创建的连接,具体信息包括:

  • 云账号:即通过指定的跨账号角色或AK&SK连接的云账号ID。
  • 账号别名:展示该云账号自定义的别名信息,以及接入时间。
  • 账号状态:显示该云账号的连接状态,主要是判断跨账号角色是否工作正常。
  • 存储桶:账单数据源对应的存储桶的状态,主要判断是否存在、是否访问正常。
  • 备注:当前连接的补充说明信息。

查看连接信息

选择某一条连接,点击【云账号ID】,查看当前连接详情,包括角色ARN、云账号ID、是否为支付账号、备注等。

编辑连接信息

在当前连接列表中,选择某个连接,在操作列点击【编辑】按钮,即可打开连接详情抽屉页。

根据需要自行修改External ID、Access Key ID、Secret Accsess ID等信息,具体步骤与新建连接一致,不作赘述。

删除某个连接

在连接列表中,可以选择一次性删除某个连接或者批量删除多个连接。注意:连接删除后,将无法再获取对应数据。

  • 删除某个连接:在列表中选择要删除的某个连接,点击操作列的【删除】按钮,确认后执行删除,反之放弃。
  • 批量删除连接:通过复选框勾选要删除的多个连接,点击列表右上方的【批量删除】按钮,进一步确认或取消。

编辑账号别名

针对某个连接,点击“账号别名”列的【编辑】图标按钮,打开弹窗进行修改并【确认】以作保存,反之放弃修改。

编辑备注信息

针对某个连接,点击“备注”列的【编辑】图标按钮,打开弹窗进行修改并【确认】以作保存,反之放弃修改。