AWS AppSync の Security Hub コントロール
これらの Security Hub コントロールは、AWS AppSync サービスとリソースを評価します。
これらのコントロールは、すべての AWS リージョン で使用できるとは限りません。詳細については、「リージョン別のコントロールの可用性」を参照してください。
[AppSync.1] AWS AppSync API キャッシュは保管時に暗号化する必要があります
カテゴリ: 保護 > データ保護 > 保管中のデータの暗号化
重要度: 中
リソースタイプ :AWS::AppSync::GraphQLApi
AWS Config ルール :appsync-cache-ct-encryption-at-rest
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、AWS AppSync API キャッシュが保管中に暗号化されているかどうかを確認します。API キャッシュが保管時に暗号化されていない場合、コントロールは失敗します。
保管中のデータとは、永続的な不揮発性ストレージに任意の期間保管されているデータを指します。保管中のデータを暗号化すると、その機密性が保護され、権限のないユーザーがアクセスするリスクが低減されます。
修正
AWS AppSync API のキャッシュを有効にした後は、暗号化設定を変更することはできません。代わりに、キャッシュを削除し、暗号化を有効にして再作成する必要があります。詳細については、「AWS AppSync デベロッパーガイド」の「キャッシュ暗号化」を参照してください。
[AppSync.2] AWS AppSync はフィールドレベルのログ記録を有効にする必要があります
関連する要件: PCI DSS v4.0.1/10.4.2
カテゴリ: 識別 > ログ記録
重要度: 中
リソースタイプ :AWS::AppSync::GraphQLApi
AWS Config ルール :appsync-logging-enabled
スケジュールタイプ: 変更がトリガーされた場合
パラメータ :
| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub のデフォルト値 |
|---|---|---|---|---|
|
|
フィールドのログ記録レベル |
列挙型 |
|
|
このコントロールは、AWS AppSync API のフィールドレベルのログ記録がオンになっているかどうかをチェックします。フィールドリゾルバーのログレベルが [なし] に設定されている場合、コントロールは失敗します。特定のログタイプを有効にする必要があることを示すカスタムパラメータ値を指定しない限り、フィールドリゾルバーのログレベルが ERROR または ALL であれば、Security Hub は成功の検出結果を生成します。
ログおよびメトリクスを使用して、GraphQL クエリを特定、トラブルシューティング、最適化できます。AWS AppSyncGraphQL のログ記録を有効にすると、API のリクエストとレスポンスに関する詳細な情報の取得、問題の特定と対応、および規制要件の遵守に役立ちます。
修正
AWS AppSync のログ記録を有効にするには、「AWS AppSync デベロッパーガイド」の「セットアップと構成」を参照してください。
[AppSync.4] AWS AppSync GraphQL API にはタグを付ける必要があります
カテゴリ: 識別 > インベントリ > タグ付け
重大度: 低
リソースタイプ :AWS::AppSync::GraphQLApi
AWS Config ルール: tagged-appsync-graphqlapi (カスタム Security Hub ルール)
スケジュールタイプ: 変更がトリガーされた場合
パラメータ :
| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub のデフォルト値 |
|---|---|---|---|---|
requiredTagKeys
|
評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは、大文字と小文字が区別されます。 | StringList (最大 6 項目) | AWS 要件を満たす 1~6 個のタグキー。 | デフォルト値なし |
このコントロールは、AWS AppSync GraphQL API にパラメータ requiredTagKeys で定義された特定のキーを持つタグがあるかどうかをチェックします。GraphQL API にタグキーがない場合、またはパラメータ requiredTagKeys で指定されたすべてのキーがない場合、コントロールは失敗します。パラメータ requiredTagKeys が指定されていない場合、コントロールはタグキーの存在のみをチェックし、GraphQL API にキーがタグ付けされていない場合は失敗します。自動的に適用され、aws: で始まるシステムタグは無視されます。
タグは AWS リソースに割り当てることができるラベルで、各タグはキーとオプションの値で構成されます。タグを作成することで、リソースを目的、所有者、環境その他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用する場合、タグに基づいてアクセス許可を定義する認証戦略として属性ベースのアクセス制御 (ABAC) を実装できます。タグは、IAM エンティティ (ユーザーまたはロール)、および AWS リソースにアタッチできます。IAM プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、「IAM ユーザーガイド」の「What is ABAC for AWS?」を参照してください。
注記
タグには、個人を特定できる情報 (PII) や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグは、AWS Billing を含む多くの AWS のサービス からアクセスできます。タグ付けのベストプラクティスの詳細については、「AWS 全般のリファレンス」の「AWS リソースのタグ付け」を参照してください。
修正
AWS AppSync GraphQL API にタグを追加するには、「AWS AppSync API リファレンス」の「TagResource」を参照してください。
[AppSync.5] AWS AppSync GraphQL API は API キーで認証されるべきではありません
関連する要件: 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
カテゴリ: 保護 > セキュアなアクセス管理 > パスワードレス認証
重要度: 高
リソースタイプ :AWS::AppSync::GraphQLApi
AWS Config ルール :appsync-authorization-check
スケジュールタイプ: 変更がトリガーされた場合
パラメータ :
AllowedAuthorizationTypes:AWS_LAMBDA, AWS_IAM, OPENID_CONNECT, AMAZON_COGNITO_USER_POOLS(カスタマイズ不可)
このコントロールは、アプリケーションが API キーを使用して AWS AppSync GraphQL API とやり取りしているかどうかを確認します。AWS AppSync GraphQL API が API キーで認証された場合、コントロールは失敗します。
API キーは、アプリケーションにハードコードされた値です。認証されていない GraphQL エンドポイントを作成するときに AWS AppSync サービスによって生成されます。この API キーが侵害されると、エンドポイントは意図しないアクセスに対して脆弱になります。一般にアクセス可能なアプリケーションやウェブサイトをサポートしている場合を除き、API キーを認証に使用することはお勧めしません。
修正
AWS AppSync GraphQL API の認証オプションを設定するには、「AWS AppSync デベロッパーガイド」の「認可と認証」を参照してください。
[AppSync.6] AWS AppSync API キャッシュは転送中に暗号化する必要があります
カテゴリ: 保護 > データ保護 > 転送中のデータの暗号化
重要度: 中
リソースタイプ :AWS::AppSync::ApiCache
AWS Config ルール :appsync-cache-ct-encryption-in-transit
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、AWS AppSync API キャッシュが転送中に暗号化されているかどうかを確認します。API キャッシュが転送中に暗号化されていない場合、コントロールは失敗します。
転送中のデータとは、クラスター内のノード間やクラスターとアプリケーション間など、ある場所から別の場所に移動するデータを指します。データはインターネット内またはプライベートネットワーク内を移動する場合があります。転送中のデータを暗号化することで、権限のないユーザーがネットワークトラフィックを盗聴するリスクが軽減されます。
修正
AWS AppSync API のキャッシュを有効にした後は、暗号化設定を変更することはできません。代わりに、キャッシュを削除し、暗号化を有効にして再作成する必要があります。詳細については、「AWS AppSync デベロッパーガイド」の「キャッシュ暗号化」を参照してください。