2017-03-02 7 views
1

特定のIAMロール(ポリシー)を持つユーザーのみが利用できるようにするいくつかのAPIゲートウェイ「メソッド」(エンドポイント)があります。私はこれをするために私が考えることができるすべてについてちょうど試みました。AWS APIゲートウェイエンドポイントへのアクセスを制御する方法

基本的には、アクセストークンをAPIゲートウェイに(ヘッダー経由で)渡し、アクセストークンがどの役割に属しているのかを把握し、APIゲートウェイに基づいてその役割に付随するポリシーに基づいています。ベースから離れていますか?

答えて

1

あなたはメソッド要求に>認証設定をAWS_IAM認証を設定し、APIのメソッドを呼び出すときにAuthorization HTTPリクエストヘッダを渡す必要があります。

ヘッダーには、署名された要求のデジタル署名を計算する必要があります。

あなたの要求に署名する

このreferenceは、あなたの署名要求のためのデジタル署名を計算するのに必要な手順を説明します。

あなただけPostmanを使用して、APIをテストする場合、これは認証]タブを選択し、承認タイプためAWS署名を選択することによって行うことができます。 AccessKey入力フィールドに入力し、IAMユーザの秘密鍵をSecretKeyに入力し、適切なAWS Regionを指定して、呼び出しURLで指定された領域と一致するように指定します。 execute-apiサービス名を入力します。あなたの答えのための

POST /prod/yourapi HTTP/1.1 
Host: XXXXXXXXXX.execute-api.us-east-1.amazonaws.com 
Content-Type: application/json 
X-Amz-Date: 20170302T080546Z 
Authorization: AWS4-HMAC-SHA256 Credential=YOURACCESSKEY/20170302/us-east-1/execute-api/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=000000000000000000000000000000000000000000000000000000 
Cache-Control: no-cache 
+0

ありがとう:

これは、次のようなヘッダを構築する必要があります。私はこのような何かを望んでいた:私はいくつかのサードパーティ製(またはカスタム)データベースまたは任意のユーザーを作成する...ユーザーが彼の資格情報を使用してログイン...その後、私はいくつかの並べ替えのデータベースを作成し、そのユーザーが属するIAMロールのリストを保持します。ユーザーがエンドポイントにヒットすると、AWSはユーザーが所属するロールを特定し、その時点で承認を行います。 –

+0

私はあなたの必要に応じて、[API Gateway Custom Authorizer](http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html)を実装する必要があると思いますDBにIAMロールを格納します。各ユーザーのアクセスレベルは、カスタム許可者に渡される(たとえば、アプリ内のユーザーグループを介して)各ユーザーにリンクされている承認トークンに従って評価されます。 –

+0

Cognitoのユーザープールはまさにあなたが探しているものです。 APIゲートウェイは、機能の開始以来、コグニートのユーザープールをサポートしていました。http://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html –

関連する問題