授权开发工具包指标收集和发送指标。AWS SDK for PHP版本 3 - 适用于 PHP 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

授权开发工具包指标收集和发送指标。AWS SDK for PHP版本 3

要使用适用于企业支持的 AWS 开发工具包指标从 AWS 开发工具包收集指标,企业客户必须创建 IAM 角色,该角色授予 CloudWatch 代理从 Amazon EC2 实例或生产环境收集数据的权限。

使用以下 PHP 代码示例或 AWS 控制台来创建 IAM 策略和角色,使得 CloudWatch 代理能够访问您的环境中的开发工具包指标。

要了解如何将开发工具包指标与AWS SDK for PHP结合使用的更多信息,请参阅为适用于 PHP 的 AWS 开发工具包版本 3 设置开发工具包指标。有关 的更多信息开发工具包指标请参阅开发工具包指标的 IAM 权限中的Amazon CloudWatch User Guide。

使用 AWS SDK for PHP 设置访问权限

为实例创建 IAM 角色,该角色有权访问 Amazon EC2 Systems Manager 和开发工具包指标。

首先,使用 CreatePolicy 创建策略。然后,使用 CreateRole 创建角色。最后,使用 AttachRolePolicy 将创建的策略附加到新角色。

导入

require 'vendor/autoload.php'; use Aws\Iam\IamClient; use Aws\Exception\AwsException;

示例代码

$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); $roleName = 'AmazonCSM'; $description = 'An Instance role that has permission for Amazon EC2 Systems Manager and SDK Metric Monitoring.'; $AmazonCSMPolicy = '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sdkmetrics-beta:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/AmazonCSM*" } ] }'; $rolePolicy = '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'; try { $iamPolicy = $client->createPolicy([ 'PolicyName' => $roleName . 'policy', 'PolicyDocument' => $AmazonCSMPolicy ]); if ($iamPolicy['@metadata']['statusCode'] == 200) { $policyArn = $iamPolicy['Policy']['Arn']; echo('<p> Your IAM Policy has been created. Arn - '); echo($policyArn); echo('<p>'); $role = $client->createRole([ 'RoleName' => $roleName, 'Description' => $description, 'AssumeRolePolicyDocument' => $rolePolicy, ]); echo('<p> Your IAM User Role has been created. Arn: '); echo($role['Role']['Arn']); echo('<p>'); if ($role['@metadata']['statusCode'] == 200) { $result = $client->attachRolePolicy([ 'PolicyArn' => $policyArn, 'RoleName' => $roleName, ]); var_dump($result) } else { echo('<p> There was an error creating your IAM User Role </p>'); var_dump($role); } } else { echo('<p> There was an error creating your IAM Policy </p>'); var_dump($iamPolicy); } } catch (AwsException $e) { // output error message if fails echo $e; error_log($e->getMessage()); }

使用 IAM 控制台设置访问权限

或者,您可以使用 IAM 控制台创建角色。

  1. 转至 IAM 控制台,然后创建角色以使用 Amazon EC2。

  2. 在导航窗格中,选择 Roles (角色)

  3. 选择 Create role (创建角色)

  4. 选择 AWS Service (AWS 服务),然后选择 EC2

  5. 选择后续:权限。

  6. 附加权限策略下,选择创建策略

  7. 对于服务,选择 Systems Manager。对于 Actions (操作),展开 Read,然后选择 GetParameters。对于资源,指定您的 CloudWatch 代理。

  8. 添加其他权限

  9. 选择选择服务,然后选择手动输入服务。对于服务,输入 sdkmetrics。选择所有 sdkmetrics 操作和所有资源,然后选择查看策略

  10. 角色命名为 AmazonSDKMetrics,然后添加描述。

  11. 选择 Create role (创建角色)