有没有办法以编程方式列出 AWS 服务的所有可用操作?

Is there a way to programmatically list all of the available actions for an AWS service?

我正在寻找一种方法来列出可在 AWS IAM 策略中使用的所有操作。

这是一个使用 IAM 操作的示例策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1457442845000",
            "Effect": "Allow",
            "Action": [
                "iam:CreatePolicy",
                "iam:CreatePolicyVersion",
                "iam:GetGroupPolicy",
                "iam:CreateGroup",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRolePolicy",
                "iam:ListAttachedGroupPolicies"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

我想从一个文件中搜索动作,为此我想要所有可用的动作。我还找不到获取该列表的方法。任何方向表示赞赏。

每个服务的可用操作都在这些服务的文档中,例如 IAM 操作列表在 IAM documentation, and the list of EC2 actions is in the EC2 documentation

运行 进入同一个问题,除了正在寻找与不仅仅是 AWS 服务 IAM 相关的操作。解决者:

  • 为所有服务提取 Javascript 的 AWS SDK(参见 https://sdk.amazonaws.com/builder/js/)。
  • 加载生成的缩小 javascript 文件 ( aws-sdk-2.680.0.min.js ) 作为小型自定义 HTML 文档的一部分。
  • 编写一个 javascript 函数获取所需的服务,并循环遍历对象 AWS.apiLoader.services[ 'iam' ][ Version ].operations,拉取操作列表。 (请注意,'Version' 的格式为 yyyy-mm-dd,在缩小的 javascript 文件中,每个 AWS 服务只有一个条目。)
  • 正在导出结果。

希望有人觉得这很有帮助,因为这是我能够以编程方式获取与 AWS 服务关联的操作的完整列表的唯一方法...

可在此处的 IAM 参考文档中找到每项服务可用的所有操作的列表:

https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_actions-resources-contextkeys.html

定义了操作、资源和适用条件。

我喜欢 Trentium 的回答,但它需要维护。

我想我会使用 AWS Policy Generator call for the policies.js 文件

亚马逊提供了一个策略生成器,它自己知道当前时间点所有可能的 API 和操作。

可以从 AWS 策略生成器生成操作列表 policies.js:

curl --header 'Connection: keep-alive' \
     --header 'Pragma: no-cache' \
     --header 'Cache-Control: no-cache' \
     --header 'Accept: */*' \
     --header 'Referer: https://awspolicygen.s3.amazonaws.com/policygen.html' \
     --header 'Accept-Language: en-US,en;q=0.9' \
     --silent \
     --compressed \
     'https://awspolicygen.s3.amazonaws.com/js/policies.js' |
    cut -d= -f2 |
    jq -r '.serviceMap[] | .StringPrefix as $prefix | .Actions[] | "\($prefix):\(.)"' |
    sort |
    uniq

如果您的机器上安装了节点,只需在终端中输入 npx get-aws-actions。无需安装任何东西。此 npx 命令从 AWS 策略生成器文件 https://awspolicygen.s3.amazonaws.com/js/policies.js 中获取操作,并支持文本搜索以查明特定 AWS 服务的操作(例如,搜索 s3: 以列出所有 S3 操作)。