web-dev-qa-db-ja.com

AWS API Gateway:ユーザーanonymousはAPIの実行を許可されていません

APIゲートウェイで作成したAPIに投稿しようとしています:

{
    "Message": "User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:us-west-2:***********:jrr7u1ekrr/v0/POST/user"
}

CloudFormationのポリシーを更新して、POST=エンドポイントを一般に利用可能にするにはどうすればよいですか?AWS::ApiGateway::RestApiリソースタイプでAPIを宣言しています。

aPIポリシープロパティは次のとおりです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "execute-api:/*/POST/user"
        }
    ]
} 
10
tgk

「API GatewayコンソールでAPIが以前にデプロイされている場合は、リソースポリシーを有効にするためにAPIを再デプロイする必要があります。」

https://docs.aws.Amazon.com/apigateway/latest/developerguide/apigateway-resource-policies-create-attach.html

6
Travis Bear

問題はおそらくメソッド宣言の部分にあります。 AWS::ApiGateway::Method宣言でauthorizationTypeNONEに設定する必要があります。

1
roxxypoxxy

"Resource": "execute-api:/*/POST/user"

Account ID の代わりに *

そして、再デプロイします。

Kr、

0
Rshad

ポリシーを変更したら、変更を伝達するためにアプリケーションをデプロイする必要があります。再デプロイするには-1. API Gatewayに移動します。 2.リソースに移動します。 3.アクションドロップダウンをクリックします。 [Deploy API]をクリックします。

0