首页 > 解决方案 > 如何使用 AWS CLI 创建策略

问题描述

我正在尝试使用 AWS CLI 创建策略。在这个命令中,file://policy指的是什么?

aws iam create-policy --policy-name my-policy --policy-document file://policy

我试过了:

aws iam create-policy --policy-name mypolicy --policy-document file://mypolicy.json

这是创建策略的正确方法吗?

另外,当我们使用 AWS CLI 创建策略时,有没有办法可以直接使用策略 json 内容?如果是,请分享一些例子。

标签: amazon-web-servicesamazon-iam

解决方案


我不知道“直接使用json”到底是什么意思。如果您以编程方式创建 json,则可以使用进程替换作为 aws-cli 的文件。

说我有这个“template.json”

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "arn:aws:secretsmanager:REGION:ACCOUNT:secret:SECRET"
    }
  ]
}

sed在这里,我将用(我已包含命令的标准输出)替换这些值:

% sed 's/REGION/my-region-1/; s/ACCOUNT/my-account-id/; s/SECRET/my-secret-id/' template.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "arn:aws:secretsmanager:my-region-1:my-account-id:secret:my-secret-id"
    }
  ]
}

并提供此命令作为进程替换(如临时文件):

aws iam create-policy \
  --policy-name MyPolicy \
  --policy-document file://<(sed 's/REGION/my-region-1/; s/ACCOUNT/my-account-id/; s/SECRET/my-secret-id/' template.json)

推荐阅读