AWS 快速入门指南

关于

SevOne's AWS插件可让您从AWS环境中收集设备、元数据和指标。 该插件将 AWS CloudWatch 度量流用于超时数据以及用于元数据扩充的 API 调用。 AWS 插件允许您监视多个不同的 AWS 帐户和区域。

创建设备

SevOne NMS 在缺省情况下配置为定期调用 AWS API 以检索有关设备的信息,然后自动为每个 AWS 资源创建设备。

所需的基础设施 AWS

要监视 AWS 帐户,必须配置 AWS 中的以下必需基础结构
  • IAM 用户
  • IAM 收集器角色
  • SQS 队列
  • 度量流
  • 消防喉
  • S3 存储区

该基础架构用于收集 AWS 环境的指标,并将其提供给 SevOne NMS。 在继续使用 AWS 插件之前,请确保已对此进行了配置。

注: 可以通过两种方式设置 AWS 基础结构。

AWS 用户设置

要在 AWS 中设置所需基础结构并运行收集器时保持最低特权状态,建议执行以下操作。

  • 基础架构用户 -部署基础架构的用户。
  • 收集器用户 -收集器使用的用户。

基础设施用户设置

创建具有以下许可权的新 IAM 策略。


{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "StatementIAM",
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:UpdateAssumeRolePolicy",
        "iam:ListAttachedRolePolicies",
        "iam:CreateRole",
        "iam:ListRolePolicies",
        "iam:GetRolePolicy",
        "iam:PutRolePolicy",
        "ec2:DescribeRegions"
      ],
      "Resource":[
        "*"
      ]
    }
  ]
} 

创建新用户并使用上面创建的 IAM 策略将其附加。

注: 有关在 AWS 账户中创建 IAM 用户的更多详情,请参阅 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html

访问密钥证书

对于本指南中的以下部分,您将需要为收集器用户创建访问密钥凭证,并保留其访问密钥标识和密钥。 重要的是,创建证书后要立即复制秘钥,因为离开页面后秘钥将被永久隐藏。

如果使用 Terraform 部署基础架构,基础架构用户还需要访问密钥证书。 在这种情况下,您将需要此凭证的访问密钥标识和密钥。

注: 有关为 IAM 用户创建访问密钥的更多详情,请参阅 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html

使用 Terraform 进行部署

Terraform 是配置 AWS 资源的建议方法。 这将允许最快的启动时间,同时确保完全按预期配置资源。 要部署和配置所需资源,可在 /config/aws/terraform 目录中找到一组 Terraform 文件。 为了运行 Terraform 文件以创建资源,已定义角色以保持最低特权状态。 让我们将此角色称为 基础架构角色

创建供 Terraform 使用的基础设施角色

注: 可以通过两种方式创建基础结构角色。
  1. Terraform (建议) -有关详细信息,请继续本部分。
  2. AWS 管理控制台-有关详细信息,请参阅 附录 C: 通过 AWS Console for Terraform 创建基础架构角色以使用
创建基础结构角色后,继续下面的 运行 Terraform 以部署 AWS 资源 部分。

为 Terraform 创建基础结构角色

  1. 使用 ssh,以 支持 用户身份登录到 SevOne NMS 设备。
    ssh support@<NMS appliance>
  2. 在 NMS 容器中打开 shell。
    sudo podman exec -it nms-nms-nms /bin/bash
  3. 将目录切换到 /config/aws/terraform/envs/infrastructure_role
  4. 更新 terraform.tfvars中的以下值。
    重要: 变量前缀必须是、
    • 在 1 到 20 个字符之间
    • 仅包含小写字母,数字或连字符
    • 以字母或数字开头和结尾
    
    account_id         = <YOUR AWS ACCOUNT NUMBER>
    prefix             = <PREFIX TO UNIQUELY IDENTIFY RESOURCES>
    

    使用注释中的示例发布了空的 "terraform.tfvars" 文件

    
    ## Your 12 digit AWS account number
    # account_id              = 012345678901
    
    ## Prefix to uniquely identify resources that are created in AWS
    ## - Must be all lowercase due to S3 bucket naming restrictions
    # prefix                  = "sevone"
    
  5. 使用在 访问密钥凭证部分中创建的基础结构用户的访问密钥标识和密钥设置以下环境变量。 有关为 IAM 用户创建访问密钥的更多信息,请参阅 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
    
    export AWS_ACCESS_KEY_ID="mykey"
    export AWS_SECRET_ACCESS_KEY="mysecret"
    export AWS_REGION="us-east-1"
    
  6. 应用 Terraform 文件。
    
    terraform init
    terraform plan
    terraform apply
    
    重要信息: 请记下输出值 infrastructure_role_arn,因为在下面的 运行 Terraform 以部署 AWS 资源 部分中需要该值。

运行 Terraform 以部署 AWS 资源

  1. 将目录切换到 /config/aws/terraform/envs/collector_infrastructure
    cd /config/aws/terraform/envs/collector_infrastructure
  2. 更新 terraform.tfvars中的以下值。

    使用注释中的示例发布了空的 "terraform.tfvars" 文件

    
    ## Your 12 digit AWS account number
    # account_id              = 012345678901
     
    ## AWS IAM User ARN that will be used to run the collector
    # collector_user_arn      = "arn:aws:iam::012345678901:user/person@company.com"
     
    ## AWS IAM Role ARN that will be used to install infrastructure
    ## - This can be found in the output of applying the `infrastructure_role` Terraform config
    # infrastructure_role_arn = "arn:aws:iam::012345678901:role/sevone_infrastructure_role"
     
    ## List of regions that you want to monitor
    # regions                 = ["us-east-1", "us-west-1"]
     
    ## Prefix to uniquely identify resources that are created in AWS
    ## - Must be all lowercase due to S3 bucket naming restrictions
    # prefix                  = "sevone"
    
    要点: 变量 前缀 必须是创建基础结构角色时使用的 同一 前缀。
    重要信息: 必须在要监视的每个区域中创建资源。 添加多个区域以创建资源时,可以在 terraform.tfvars 文件中添加为

    示例

    
    regions = ["us-east-1", "eu-central-1"]
    
  3. 应用 Terraform 文件。
    
    cd gen
    terraform init
    terraform plan
    terraform apply
    cd ..
    terraform init
    terraform plan
    terraform apply
    
  4. 需要以下输出中的详细信息才能在 SevOne NMS 中创建设备。
    1. 帐户标识
    2. 收集器角色
    3. sqs_队列
    4. 区域

启用 AWS 插件

执行以下步骤以监视 AWS 帐户。 这将自动创建设备并为该帐户的所选区域中的各种 AWS 资源收集度量。

  1. 要从导航栏访问设备管理器,请单击 设备 菜单,然后选择 设备管理器
  2. 添加具有 AWS 插件的设备,或者编辑现有设备以启用 AWS 插件。
    • 单击 添加设备 以显示 " 新建设备 " 页面。
    • 单击 操作 列下的扳手图标以显示 " 编辑设备 " 页面。
  3. 单击插件下拉列表。 缺省情况下,它设置为 SNMP。 选择 AWS. awsPluginDeviceManager
  4. 选中 启用 AWS 集成 复选框。
  5. 帐户标识 字段中,输入要监视并从中收集数据的帐户的标识。
  6. 访问密钥标识 字段中,输入先前在 访问密钥凭证 中为收集器用户创建的访问密钥标识。
  7. 访问密钥 字段中,输入先前在 访问密钥凭证 中为收集器用户创建的密钥。
  8. SQS 队列 字段中,输入收集器将侦听度量流事件的 SQS 队列名称。 有关更多详细信息,请参阅 AWS中的必需基础结构部分。
  9. 收集器角色 ARN 字段中,输入收集器将采用的 IAM 角色的 ARN。 有关更多详细信息,请参阅 AWS中的必需基础结构部分。
  10. 选择/取消选择要从中收集数据的列标题或 AWS 区域代码。
    1. 选择或取消选择列标题 (例如,北美) 以对该标题下的所有区域启用或禁用集合。
    2. 选择或取消选择 AWS 区域代码 (例如, us-east-1) 以启用或禁用该区域的收集。
  11. 单击 另存为新项 以将当前更改另存为 新设备,或者单击 保存 以在 " 编辑设备 " 页面中确认更改。
  12. 保存所需更改后,单击 取消 按钮以返回到 " 设备管理器 " 页面。
    重要信息: 创建设备后,将在 SevOne NMS 上启动 AWS 资源集合。

在 SevOne NMS 中创建 TopN 视图,以查看 AWS 资源

SevOne NMS 包含具有特定于 AWS的 TopN 视图的包。 要导入,请执行以下命令。


ssh support@<NMS appliance>

sudo podman exec -it nms-nms-nms SevOne-import --file /config/aws/topn.spk 
重要信息: 除非 AWS 收集器已成功运行至少一次,否则导入将失败。

OOTB 报告

以下开箱即用 (OOTB) 报告作为 SevOne Data Insight 6.5 及更高版本的一部分提供。

  • AWS Direct Connect -显示 AWS Direct Connect 库存和网络性能的报告。
  • AWS EBS 卷 -显示 AWS EBS 卷性能的报告。
  • AWS EC2 报告 -显示 AWS EC2 库存, CPU ,磁盘和网络性能的报告。
  • AWS NAT 网关 -显示 AWS NAT 网关库存,吞吐量和连接统计信息的报告。
  • AWS 网络负载均衡器 -显示 AWS 网络负载均衡器统计信息的报告。
  • AWS S3 报告 -显示 AWS S3 库存和存储区统计信息的报告。
  • AWS 站点到站点 VPN -显示 AWS 站点到站点 VPN 度量的报告。
  • AWS Transit Gateways -显示 AWS Transit Gateway 库存,网络流量和丢弃的报告。
  • AWS Lambda - 报告显示 AWS Lambda 调用、异步调用、并发性和性能。
  • AWS 路由 53 - 报告显示 AWS 路由 53 健康检查统计信息和 AWS 路由 53 解析器统计信息。

更新 AWS 基础设施

SevOne NMS 支持比 更多的 监控资源,并整合了所需的 权限,以保持最小权限状态。 v7.1.0 v7.0.0 AWS AWS 因此,如果从SevOneNMS7.0.0或之前的版本升级到SevOneNMS7.1.0,则需要重新应用 Terraform 来更新收集器的基础架构。

销毁以前创建的 AWS 资源

执行以下步骤以销毁先前创建的 AWS 资源。
  1. 使用 ssh,以 支持 用户身份登录到 SevOne NMS 设备。
    ssh support@<NMS appliance>
    
  2. 在 NMS 容器中打开 shell。
    sudo podman exec -it nms-nms-nms /bin/bash
    
  3. 将目录切换到 /config/aws/terraform/envs/collector_infrastructure
    cd /config/aws/terraform/envs/collector_infrastructure
    
  4. 破坏 Terraform 状态。
    terraform destroy
    

销毁资源后,继续下一节。

更新基础设施作用

  1. 如果尚未使用,请使用 ssh支持 用户身份登录到 SevOne NMS 设备,并在 NMS 容器中打开 shell。
    
    ssh support@<NMS appliance>
    
    sudo podman exec -it nms-nms-nms /bin/bash
    
  2. 将目录切换到 /config/aws/terraform/envs/infrastructure_role
  3. 比较新的terraform.tfvars和备份terraform-v7.0.0.tfvars(如果存在)。
  4. 使用您选择的文本编辑器,通过取消注释变量赋值并将变量设置为正确的值来编辑 terraform.tfvars
  5. 应用 Terraform 文件。
    
    terraform init
    terraform plan
    terraform apply
    
重要信息: 请记下输出值 infrastructure_role_arn,因为在下面的 运行 Terraform 以部署 AWS 资源 部分中需要该值。

运行 Terraform 以部署 AWS 资源

  1. 将目录切换到 /config/aws/terraform/envs/collector_infrastructure
  2. 重新生成 Terraform 文件。
    
    cd gen
    terraform init
    terraform plan
    terraform apply
    cd ..
    
  3. 比较新的terraform.tfvars和备份terraform-v7.0.0.tfvars(如果存在)。
  4. 使用您选择的文本编辑器,通过取消注释变量赋值并将变量设置为正确的值来编辑 terraform.tfvars
    要点: 变量 前缀 必须是用于基础结构角色的 同一 前缀。
  5. 应用 Terraform 文件。
    
    terraform init
    terraform plan
    terraform apply
    

附录

标签 (可选)

Tags 列表添加到 /config/aws/config.yaml 文件。 如下例所示,在列表中添加要收集的标记名称。 OwnerCategory 是示例标签名称。

注意: 标记名称为 大小写敏感。 最大标签限制由 AWS 提供。

Tags:
  - "Owner"
  - "Category"

附录 A:网络代理设置

如果要使用 Web 代理来连接到 AWS 环境,那么可能需要设置 Web 代理。 URL 可以采用以下两种格式之一。
  1. 
    http://<user>:<password>@<domain name or IP address>:<port>
    
    or
    
    https://<user>:<password>@<domain name or IP address>:<port>
    
    其中,<user> 和 <password> 是 URL 编码字符串。
    这些 URL 是通过环境变量定义的。 例如,
    
    HTTP_PROXY=http://user1:password@proxy.corp.com:8080
    
    or 
    
    HTTPS_PROXY=https://user1:password@proxy.corp.com:8080
    
  2. 
    http://<domain name or IP address>:<port>
    
    or
    
    https://<domain name or IP address>:<port>
    

    如果没有与代理关联的用户名和密码。

    这些 URL 是通过环境变量定义的。 例如,
    
    HTTP_PROXY=http://proxy.corp.com:8080
    
    or 
    
    HTTPS_PROXY=https://proxy.corp.com:8080
    
由于 AWS 收集器是作为容器在 pod 中运行的,因此必须为该容器设置环境变量。 执行以下步骤。
  1. 使用 ssh,以 支持 用户身份登录到 SevOne NMS 设备。
    ssh support@<NMS appliance>
    
  2. 使用您选择的文本编辑器,编辑 /etc/sevone/nms-collectors.yaml 文件。
    sudo vi /etc/sevone/nms-collectors.yaml
    
  3. 在此文件中,查找 spec.containers 部分,并查找与 AWS 收集器关联的容器; 它应该称为 aws-collector
  4. 在此部分中,根据需要在 env 块下添加环境变量。
    
    "env":
      - "name": "SSL_CERT_DIR"
        "value": "/secrets/nginx"
      - "name": "HTTP_PROXY"
        "value": "http://proxy.corp.com:8080"
      - "name": "HTTPS_PROXY"
        "value": "http://proxy.corp.com:8080"
    "image": "docker.s1artrtp1.s1.devit.ibm.com/cloud-monitoring/aws-nms-collector:3e3f2279"
    "imagePullPolicy": "IfNotPresent"
    "name": "aws-collector"
    
  5. 重新启动 nms-Collector 服务。
    sudo systemctl restart nms-collectors;
    

附录 B:使用 AWS 控制台部署 AWS 资源

AWS Console 允许您在不使用 Terraform 的情况下创建所需的 AWS 资源。 虽然建议使用 Terraform ,但当不可能时,这是一个可行的选项。

创建度量流

  1. 导航至 CloudWatch > 公制流cloudWatchMetricStreams
  2. 单击 创建度量流 以启动向导。
  3. 选择 选择度量
  4. 选择 包含
  5. 选择以下名称空间,然后选择 Use: "AWS/<namespace> = All metrics names" 以获取所选名称空间的所有度量。
    1. AWS/EC2
    2. AWS/S3
    3. AWS /NATGateway
    4. AWS/TransitGateway
    5. AWS /DX
    6. AWS/EBS
    7. AWS/NetworkELB
    8. AWS /VPN
    9. AWS /Lambda
    10. AWS/Route53
    11. AWS/Route53Resolver
    awsMetricStream
  6. 命名度量流。
    注: 您将需要下一节的 将资源添加到帐户 部分中的 S3 存储区的名称。
  7. 单击 创建度量流 以完成配置。

创建收集器角色

为 AWS 插件创建 IAM 角色以用于以下策略。
注: 您将需要此角色的 ARN 来启用 AWS 插件。
策略 "aws_collector_directconnect_policy"

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "directconnect:DescribeLocations",
                "directconnect:DescribeConnections"
            ],
            "Resource": "*"
        }
    ]
}
策略 "sevone_collector_cloudwatch_policy"

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "cloudwatch:GetMetricData",
            "Resource": "*"
        }
    ]
}
策略 "sevone_collector_ec2_policy"

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeNatGateways", 
                "ec2:DescribeTransitGateways",
                "ec2:DescribeVolumes", 
                "ec2:DescribeVolumeStatus", 
                "ec2:DescribeVpnConnections"
            ],
            "Resource": "*"
        }
    ]
}
策略 "sevone_collector_elasticloadbalancing_policy"

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DescribeTags",
                "elasticloadbalancing:DescribeLoadBalancers"
            ],
            "Resource": "*"
        }
    ]
}
策略 "sevone_collector_s3_policy"
注:BUCKET_NAME 替换为 创建度量流 中 S3 存储区的名称。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Sid": "", 
            "Effect": "Allow", 
            "Action": [ 
                "s3:ListAllMyBuckets",
                "s3:GetBucketTagging" 
            ], 
            "Resource": "*" 
        }, 

        { 
            "Sid": "", 
            "Effect": "Allow", 
            "Action": [ 
                "s3:GetObject" 
            ], 
            "Resource": "arn:aws:s3:::BUCKET_NAME*" 
        }, 
    ] 
}
策略 "sevone_collector_sqs_policy"
注:QUEUE_NAME 替换为 设置 S3 Event Notifications 部分中 SQS 队列的名称,并将 ACCOUNT_ID 替换为 SQS 队列的 AWS 帐户标识。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Sid": "", 
            "Effect": "Allow", 
            "Action": [ 
                "sqs:ReceiveMessage", 
                "sqs:GetQueueUrl", 
                "sqs:DeleteMessage" 
            ], 
            "Resource": "arn:aws:sqs:*:ACCOUNT_ID:QUEUE_NAME" 
        } 
    ] 
} 
策略 "sevone_collector_lambda_policy

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Action": [ 
                "lambda:ListTags", 
                "lambda:ListFunctions" 
            ],
            "Effect":"Allow", 
            "Resource":"*"
        } 
    ] 
} 
策略 'sevone_collector_route53_policy'

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Action": [ 
                "route53:ListTagsForResource", 
                "route53:ListHealthChecks" 
            ],
            "Effect":"Allow", 
            "Resource":"*"
        } 
    ] 
} 
策略 'sevone_collector_route53resolver_policy'

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Action": [ 
                "route53resolver:ListTagsForResource", 
                "route53resolver:ListResolverEndPoints" 
            ],
            "Effect":"Allow", 
            "Resource":"*"
        } 
    ] 
} 
最后,您将需要允许 Collector 用户承担新创建的角色。
  1. 浏览至 IAM> 角色。
  2. 搜索您最近创建的收集器角色
  3. 单击该角色。
    注: 如果尚未复制此角色的 ARN ,那么现在可以执行此操作。 您将需要它来启用 AWS 插件。
  4. 单击 "信任关系" 选项卡。
  5. 请确保收集器用户具有承担该角色的许可权。
    • 如果收集器用户不具有许可权,那么可以通过单击 "编辑信任策略" 按钮将新语句添加到信任策略 (与收集器用户 ARN 类似,如下所示)。
注:COLLECTOR_USER_ARN 替换为收集器用户 ARN。

{ 
  "Version": "2012-10-17", 
  "Statement": [
     { 
       "Sid": "", 
	   "Effect": "Allow", 
   	"Principal": { 
		       "AWS": "COLLECTOR_USER_ARN" 
		       }, 
   	"Action": "sts:AssumeRole" 
        } 
    ] 
} 

完成所有步骤后,您可以 启用 AWS 插件

附录 C:通过 AWS 控制台创建基础设施角色供 Terraform 使用

创建策略

要创建角色以供 Terraform 使用,必须首先定义将添加到角色的策略。

  1. 浏览至 IAM > 策略
  2. 单击 " 创建策略 "按钮启动向导。 awsPolicies
  3. 策略编辑器 切换到 JSON
  4. 粘贴以下策略定义。
    重要: 变量前缀必须是、
    1. 在 1 到 20 个字符之间
    2. 仅包含小写字母,数字或连字符
    3. 以字母或数字开头和结尾
    此前缀用于 Terraform ,并在 Terraform 运行时附加到为 AWS 插件创建的所有资源。
    注: 您需要将以下策略语句中 PREFIX 的实例替换为您选取的前缀,然后将 ACCOUNT_ID 的实例替换为将在其中创建资源的帐户的 AWS 帐户标识。
    
    { 
        "Version": "2012-10-17", 
        "Statement": [ 
            { 
                "Action": [ 
                    "cloudwatch:TagResource", 
                    "cloudwatch:ListTagsForResource" 
                ], 
                "Effect": "Allow", 
                "Resource": "arn:aws:cloudwatch:*:ACCOUNT_ID:*PREFIX*", 
                "Sid": "" 
            }, 
            { 
                "Action": [ 
                    "firehose:ListTagsForDeliveryStream", 
                    "firehose:DescribeDeliveryStream", 
                    "firehose:DeleteDeliveryStream", 
                    "firehose:CreateDeliveryStream" 
                ], 
                "Effect": "Allow", 
                "Resource": "arn:aws:firehose:*:ACCOUNT_ID:deliverystream/PREFIX*", 
                "Sid": "" 
            }, 
            { 
                "Action": [ 
                    "iam:TagRole", 
                    "iam:PutRolePolicy", 
                    "iam:PassRole", 
                    "iam:ListRolePolicies", 
                    "iam:ListInstanceProfilesForRole", 
                    "iam:ListAttachedRolePolicies", 
                    "iam:GetRolePolicy", 
                    "iam:GetRole", 
                    "iam:DeleteRolePolicy", 
                    "iam:DeleteRole", 
                    "iam:CreateRole" 
                ], 
                "Effect": "Allow", 
                "Resource": " arn:aws:iam::ACCOUNT_ID:role/PREFIX*", 
                "Sid": "" 
            }, 
            { 
                "Action": [ 
                    "cloudwatch:StopMetricStreams", 
                    "cloudwatch:StartMetricStreams", 
                    "cloudwatch:PutMetricStream", 
                    "cloudwatch:ListMetricStreams", 
                    "cloudwatch:GetMetricStream", 
                    "cloudwatch:DeleteMetricStream" 
                ], 
                "Effect": "Allow", 
                "Resource": " arn:aws:cloudwatch:*:ACCOUNT_ID:*PREFIX*", 
                "Sid": "" 
            }, 
            { 
                "Action": [ 
                    "s3:PutObject", 
                    "s3:PutLifecycleConfiguration", 
                    "s3:PutBucketTagging", 
                    "s3:PutBucketPublicAccessBlock", 
                    "s3:PutBucketNotification", 
                    "s3:PutBucketAcl",
                    "s3:ListBucket", 
                    "s3:ListAllMyBuckets", 
                    "s3:GetReplicationConfiguration", 
                    "s3:GetLifecycleConfiguration", 
                    "s3:GetEncryptionConfiguration", 
                    "s3:GetBucketWebsite", 
                    "s3:GetBucketVersioning", 
                    "s3:GetBucketTagging", 
                    "s3:GetBucketRequestPayment",
                    "s3:GetBucketPublicAccessBlock", 
                    "s3:GetBucketPolicyStatus", 
                    "s3:GetBucketPolicy", 
                    "s3:GetBucketObjectLockConfiguration", 
                    "s3:GetBucketNotification", 
                    "s3:GetBucketLogging", 
                    "s3:GetBucketLocation", 
                    "s3:GetBucketCORS", 
                    "s3:GetBucketAcl",
                    "s3:GetAccelerateConfiguration", 
                    "s3:DeleteBucket",
                    "s3:CreateBucket" 
                ],
                "Effect": "Allow", 
                "Resource": "arn:aws:s3:::*PREFIX*", 
                "Sid": "" 
            }, 
            { 
                "Action": [ 
                    "sqs:TagQueue", 
                    "sqs:SetQueueAttributes", 
                    "sqs:ListQueues", 
                    "sqs:ListQueueTags", 
                    "sqs:GetQueueUrl", 
                    "sqs:GetQueueAttributes", 
                    "sqs:DeleteQueue", 
                    "sqs:CreateQueue" 
                ], 
                "Effect": "Allow", 
                "Resource": "arn:aws:sqs:*:ACCOUNT_ID:*PREFIX*", 
                "Sid": "" 
            } 
        ] 
    } 
    
    awsSpecifyPermissions
  5. 单击下一步
  6. 策略详细信息下,输入 策略名称
  7. 单击 创建策略

创建角色

创建策略后,现在可以创建 IAM 角色。

  1. 浏览至 IAM > 角色
  2. 单击 " 创建角色 "按钮启动向导。 awsRoles
  3. 可信实体类型下,选择 AWS 帐户
  4. AWS 账户下,选择此账户awsTrustedEntity
  5. 单击下一步
  6. 许可权策略 下,搜索您在上一步中创建的策略的名称。
  7. 单击上一步中创建的策略旁边的复选框。 awsTrustedEntity
  8. 单击下一步
  9. 角色详细信息下,输入 角色名称
  10. 单击 创建角色
注: 请记下新角色的 ARN ,因为在 运行 Terraform 以部署 AWS 资源中将需要该角色。