本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
授权 SDK Metrics 在 AWS SDK for Ruby 中收集和发送指标。
要为企业支持使用 SDKs 从 AWS SDK Metrics 收集指标,企业客户必须创建 IAM 角色,该角色授予 CloudWatch 代理从 Amazon EC2 实例或生产环境收集数据的权限。
使用以下 Ruby 代码示例或 AWS 控制台来创建 IAM 策略和角色,使得 CloudWatch 代理能够访问您的环境中的 SDK Metrics。
要了解如何将 SDK Metrics 与 AWS SDK for Ruby 结合使用,请参阅在适用于 Ruby 的 AWS 开发工具包中设置开发工具包指标。
使用 AWS SDK for Ruby 设置访问权限
为实例创建 IAM 角色,该角色有权访问 Amazon EC2 Systems Manager 和 SDK Metrics。
首先,使用 CreatePolicy 创建策略。然后,使用 CreateRole 创建角色。最后,使用 AttachRolePolicy 将您创建的策略附加到新角色。
require 'aws-sdk-iam' # v2: require 'aws-sdk' role_name = 'AmazonCSM' client = Aws::IAM::Client.new(region: 'us-west-2') csm_policy = { 'Version': '2012-10-17', 'Statement': [ { 'Effect': 'Allow', 'Action': [ 'sdkmetrics:*' ], 'Resource': '*' }, { 'Effect': 'Allow', 'Action': [ 'ssm:GetParameter' ], 'Resource': 'arn:aws:ssm:*:*:parameter/AmazonCSM*' } ] } # Create policy resp = client.create_policy({ policy_name: role_name, policy_document: csm_policy.to_json, }) policy_arn = resp.policy.arn puts 'Created policy with ARN: ' + policy_arn policy_doc = { Version: '2012-10-17', Statement: [ { Effect: 'Allow', Principal: { Service: 'ec2.amazonaws.com' }, Action: 'sts:AssumeRole' },] } # Create role client.create_role( { role_name: role_name, description: 'An instance role that has permission for AWS Systems Manager and SDK Metric Monitoring.', assume_role_policy_document: policy_doc.to_json, }) puts 'Created role ' + role_name # Attach policy to role client.attach_role_policy( { policy_arn: policy_arn, role_name: role_name, }) puts 'Attached policy ' + role_name + 'policy to role: ' + role_name
使用 IAM 控制台设置访问权限
或者,您可以使用 IAM 控制台创建角色。
-
转至 IAM 控制台,然后创建角色以使用 Amazon EC2。
-
在导航窗格中,选择 Roles。
-
选择 Create Role (创建角色)。
-
选择 AWS 服务,然后选择 EC2。
-
选择 Next: (下一步:)。权限。
-
在附加权限策略下,选择创建策略。
-
对于服务,选择 Systems Manager。对于 Actions (操作),展开 Read (读取),然后选择
GetParameters
。 对于资源,请指定您的 CloudWatch 代理。 -
添加其他权限
-
选择选择服务,然后选择手动输入服务。对于 Service (服务),输入
sdkmetrics
。 选择所有sdkmetrics
操作和所有资源,然后选择 Review Policy (查看策略)。 -
将角色命名为
AmazonSDKMetrics
,然后添加描述。 -
选择 Create Role (创建角色)。