4

Amplify Auth を使用した Android アプリがあります。ゲスト アクセスと秘密鍵は使用できますが、セッション トークンは使用できません。一時的な認証情報を使用する場合、 Postman はセッション トークンを必要とします。

Amplify のドキュメントに従って、次のコードを使用してキーを取得します。

Amplify.Auth.fetchAuthSession(
    result -> {
        Log.i(TAG, "inside getGuestCredentials()...result....." + result.toString());

        AWSCognitoAuthSession cognitoAuthSession = (AWSCognitoAuthSession) result;
        Log.i(TAG, "Is user signed in: " + cognitoAuthSession.isSignedIn());

        switch (cognitoAuthSession.getIdentityId().getType()) {
            case SUCCESS:
                Log.i(TAG, "Guest IdentityId: " + cognitoAuthSession.getIdentityId().getValue());
                Log.i(TAG, "Guest access key: " + cognitoAuthSession.getAWSCredentials().getValue().getAWSAccessKeyId());
                Log.i(TAG, "Guest secret key: " + cognitoAuthSession.getAWSCredentials().getValue().getAWSSecretKey());
                String sessionToken = ((AWSSessionCredentials) mobileClient.getCredentials()).getSessionToken();
                Log.i(TAG, "Guest sessionToken: " + sessionToken);
                break;
            case FAILURE:
                Log.i(TAG, "failure Guest IdentityId not present because: " + cognitoAuthSession.getIdentityId().getError().toString());
                break;
            default:
                Log.i(TAG, "default guest session: " + cognitoAuthSession.toString());
                break;
        }
    },
    error -> Log.i(TAG, error.toString())
);

AWSMobileClient次に、 (エスケープ ハッチを使用して取得した)のインスタンスを使用して、セッション トークンを取得します。

これはしばらくはうまくいきましたが、突然、次の 403 メッセージが表示されるようになりました。

"メッセージ": "ユーザー: arn:aws:sts::xxxxxx:assumed-role/amplify-xxxxxx-unauthRole/CognitoIdentityCredentials は実行する権限がありません: execute-api:Invoke on resource: arn:aws:execute-api:xxxxxyyyyyyzzzz "

セッション トークンを取得するにはどうすればよいですか?

4

0 に答える 0