AWS AppSync controls
These controls are related to AWS AppSync resources.
These controls may not be available in all AWS Regions. For more information, see Availability of controls by Region.
[AppSync.2] AWS AppSync should have field-level logging enabled
Category: Identify > Logging
Severity: Medium
Resource type:
AWS::AppSync::GraphQLApi
AWS Config rule:
appsync-logging-enabled
Schedule type: Change triggered
Parameters:
Parameter | Description | Type | Allowed custom values | Security Hub default value |
---|---|---|---|---|
|
Field logging level |
Enum |
|
|
This control checks whether an AWS AppSync API has field-level logging turned on. The control fails
if the field resolver log level is set to None. Unless you provide custom
parameter values to indicate that a specific log type should be enabled, Security Hub produces a passed finding if the field resolver log level is either ERROR
or
ALL
.
You can use logging and metrics to identify, troubleshoot, and optimize your GraphQL queries. Turning on logging for AWS AppSync GraphQL helps you get detailed information about API requests and responses, identify and respond to issues, and comply with regulatory requirements.
Remediation
To turn on logging for AWS AppSync, see Setup and configuration in the AWS AppSync Developer Guide.
[AppSync.5] AWS AppSync GraphQL APIs should not be authenticated with API keys
Related requirements: NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-6
Category: Protect > Secure access management > Passwordless authentication
Severity: High
Resource type:
AWS::AppSync::GraphQLApi
AWS Config rule:
appsync-authorization-check
Schedule type: Change triggered
Parameters:
AllowedAuthorizationTypes
:AWS_LAMBDA, AWS_IAM, OPENID_CONNECT, AMAZON_COGNITO_USER_POOLS
(not customizable)
This control checks whether your application uses an API key to interact with an AWS AppSync GraphQL API. The control fails if an AWS AppSync GraphQL API is authenticated with an API key.
An API key is a hard-coded value in your application that is generated by the AWS AppSync service when you create an unauthenticated GraphQL endpoint. If this API key is compromised, your endpoint is vulnerable to unintended access. Unless you are supporting a publicly accessible application or website, we don't recommend using an API key for authentication.
Remediation
To set an authorization option for your AWS AppSync GraphQL API, see Authorization and authentication in the AWS AppSync Developer Guide.