web-dev-qa-db-ja.com

ユーザーには、実行する権限がありません:cloudformation:CreateStack

AWS Lambdaを作成するために サーバーレス を試していますが、コマンドserverless project createを使用してプロジェクトを作成しているときに、次のエラーが表示されます。

AccessDenied: User: arn:aws:iam::XXXXXXXXX:user/XXXXXXXXX is not authorized to perform: cloudformation:CreateStack on resource: arn:aws:cloudformation:us-east-1:XXXXXXXXX:stack/XXXXXXXXX-development-r/*

ユーザーを作成し、次の権限をユーザーに付与しました。

  1. AWSLambdaFullAccess
  2. AmazonS3FullAccess
  3. CloudFrontFullAccess
  4. AWSCloudFormationReadOnlyAccess(付与するAWSCloudFormationFullAccessはありませんでした)

どうすれば続行できますか?他にどのような許可を与える必要がありますか?

あなたが言及した最も近いものはAWSCloudFormationReadOnlyAccessですが、明らかにそれは読み取り専用であり、cloudformation:CreateStackが必要です。次をユーザーポリシーとして追加します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1449904348000",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

たとえば、EC2インスタンスを起動したり、セキュリティグループを(再)構成したりするために、より多くのアクセス許可が必要になる可能性があります。

77
tedder42

@ tedder42が言ったことですが、Visual Studio内からlambdaにデプロイする前に、グループポリシーに以下を追加する必要がありました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1449904348000",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:CreateChangeSet",
                "cloudformation:ListStacks",
                "cloudformation:UpdateStack",
                "cloudformation:DescribeChangeSet",
                "cloudformation:ExecuteChangeSet"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
30
Chris Masterton

私の最近の経験では、必要なポリシーは

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1449904348000",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:CreateChangeSet",
                "cloudformation:ListStacks",
                "cloudformation:UpdateStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResource",
                "cloudformation:DescribeStackEvents",
                "cloudformation:ValidateTemplate",
                "cloudformation:DescribeChangeSet",
                "cloudformation:ExecuteChangeSet"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
5
mancvso

上記の短いバージョンを動作させることができませんでした。私を直したのは@mancvsoの答えをわずかに拡張することでした:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1449904348000",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:CreateChangeSet",
                "cloudformation:ListStacks",
                "cloudformation:UpdateStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResource",
                "cloudformation:DescribeStackEvents",
                "cloudformation:ValidateTemplate",
                "cloudformation:DescribeChangeSet",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:GetTemplateSummary"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
2
TimD

これら2つは私がラインを越えるのを助けました...

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "apigateway:*",
            "Resource": "*"
        }
    ]
}

そして

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListStacks",
                "cloudformation:DescribeStackEvents",
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DescribeStackResource",
                "cloudformation:CreateChangeSet",
                "cloudformation:DescribeChangeSet",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        }
    ]
}
1
Akber Iqbal

次のポリシーを作成します。

  1. [ポリシー]-> [ポリシーの作成]をクリックします。
  2. サービスの選択-EKSと入力し、「EKS」を選択します
  3. アクション:[すべてのEKSアクション]を選択します
  4. リソースの下:「すべてのリソース」を選択するか、ARNを追加します。
  5. レビューポリシーをクリック
  6. ポリシーの名前を入力して、ポリシーを作成します。

次に、このポリシーをユーザーアカウントに関連付けます。これで問題が解決し、スタックを作成できるはずです。

0
Razikh

複数のAWSプロファイルがある場合は、明示的に

export AWS_ACCESS_KEY_ID=<value>
export AWS_SECRET_ACCESS_KEY=<value>

試みる前に

serverless deploy
0
Iridium Admin

セクションがあります ドキュメント内 これについて(少なくとも今)。

要点 推奨されるポリシーJSONを表示します。

0
ryanjdillon

AWSの最近の更新では、次のインラインポリシーも機能します。

{
   "Version": "2012-10-17",
   "Statement": [
       {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "cloudformation:DeleteStack"
            ],
            "Resource": "*"
        }
    ]
}
0
v7n6