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

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

授权开发工具包指标在中收集和发送指标。AmazonSDK for PHP 版本 3

收集指标Amazon开发工具包使用Amazon SDK Metrics for Enterprise Support企业客户必须创建 IAM 角色,该角色授予 CloudWatch 代理从其 Amazon EC2 实例或生产环境收集数据的权限。

使用下面的 PHP 代码示例或Amazon为 CloudWatch 代理创建 IAM 策略和角色,以访问环境中的开发工具包指标。

了解有关如何将开发工具包指标与设置。AmazonSDK for PHP为设置开发工具包指标AmazonSDK for PHP 版本 3。有关开发工具包指标的更多信息,请参阅适用于开发工具包指标的 IAM 权限

使用设置访问权限AmazonSDK 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. 选择Amazon服务,然后选择EC2

  5. 选择 Next:。Permissions (下一步:权限)

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

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

  8. 添加其他权限

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

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

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