

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# セキュリティの柱
<a name="security-pillar"></a>

のクラウドセキュリティが最優先事項 AWS です。お客様は AWS 、セキュリティを最も重視する組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャを活用できます。

セキュリティは、 AWS お客様とお客様の間の責任共有です。[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)では、これをクラウドのセキュリティおよびクラウド内のセキュリティとして説明しています。
+ **クラウドのセキュリティ** – AWS は、 AWS のサービス で実行されるインフラストラクチャを保護する責任を担います AWS クラウド。 は、お客様が安全に使用できるサービス AWS も提供します。サードパーティーの監査者は、[AWS コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)の一環として、 AWS セキュリティの有効性を定期的にテストおよび検証します。Amazon Neptune に適用されるコンプライアンスプログラムについては、[コンプライアンスプログラムによるAWS 対象範囲内のサービス](https://aws.amazon.com/compliance/services-in-scope/)を参照してください。
+ **クラウドのセキュリティ** – お客様の責任は、使用する によって決まり AWS のサービス ます。また、お客様は、お客様のデータの機密性、企業の要件、および適用可能な法律および規制などの他の要因についても責任を担います。データプライバシーの詳細については、「[データプライバシーのよくある質問](https://aws.amazon.com/compliance/data-privacy-faq)」を参照してください。欧州でのデータ保護の詳細については、「[AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/)」のブログ記事を参照してください。

[セキュリティの柱](https://docs.aws.amazon.com/wellarchitected/latest/framework/security.html)は、Neptune を使用する際に責任共有モデルを適用する方法を理解するのに役立ちます。以下のトピックでは、セキュリティおよびコンプライアンスの目的を達成するために Neptune を設定する方法を示します。また、Neptune リソースのモニタリングと保護 AWS のサービス に役立つ他の の使用方法についても説明します。

セキュリティの柱には、以下の主要な重点分野が含まれています。
+ データセキュリティ
+ ネットワークセキュリティ
+ 認証と認可

## データセキュリティの実装
<a name="data-security"></a>

データ漏洩やデータ侵害は顧客を危険にさらし、会社に大きな悪影響を与える可能性があります。以下のベストプラクティスは、顧客データを不注意による漏洩や悪意のある漏洩から保護するのに役立ちます。
+ クラスター名、タグ、パラメータグループ、 AWS Identity and Access Management (IAM) ロール、およびその他のメタデータには、請求ログや診断ログに表示される可能性があるため、機密情報や機密情報を含めないでください。
+ Neptune にデータとして保存されている外部サーバーへの URI またはリンクには、リクエストを検証するための認証情報を含めないでください。
+ Neptune の暗号化されたインスタンスは、基になるストレージへの不正アクセスからデータを保護することで、データ保護のレイヤーを追加します。Neptune の暗号化を使用すると、クラウドにデプロイされたアプリケーションのデータ保護を強化できます。Neptune 暗号化は、保管中のデータのコンプライアンス要件を満たすために使用することもできます。

  新しい Neptune DB インスタンスの暗号化を有効にするには、Neptune コンソールの **[暗号化の有効化]** セクションで **[はい]** (デフォルトで選択) を選択するか、 CloudFormationで [AWS::Neptune::DBCluster::StorageEncrypted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html#cfn-neptune-dbcluster-storageencrypted) プロパティを設定します。暗号化が有効になっている場合、Neptune は[デフォルトで Amazon Relational Database Service (Amazon RDS) AWS マネージドキー](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.Keys.html)を使用します。そうでない場合、[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)を作成できます。Neptune DB インスタンスの作成については、「[Creating a new Neptune DB cluster](https://docs.aws.amazon.com/neptune/latest/userguide/get-started-create-cluster.html)」を参照してください。詳細については、「[保管時の Neptune リソースの暗号化](https://docs.aws.amazon.com/neptune/latest/userguide/encrypt.html)」を参照してください。自動スナップショットと手動スナップショットは、Neptune クラスターに選択したのと同じ暗号化を使用します。
+ SPARQL 言語と openCypher 言語を使用する場合は、SQL インジェクションやその他の形式の攻撃を防ぐために、適切な入力検証手法およびパラメータ化の手法を実践してください。ユーザー指定の入力による文字列連結を使用するクエリは構築しないでください。パラメータ化されたクエリまたはプリペアドステートメントを使用して、入力パラメータをグラフデータベースに安全に渡します。詳細については、「[openCypher のパラメーター化されたクエリの例](https://docs.aws.amazon.com/neptune/latest/userguide/opencypher-parameterized-queries.html)」および「[SPARQL インジェンクション防御](https://owasp.org/www-pdf-archive/Onofri-NapolitanoOWASPDayItaly2012.pdf)」を参照してください。
+ Gremlin 言語の場合、潜在的なインジェクションの問題を回避するために、文字列ベースの Gremlin スクリプトを直接渡すのではなく [Gremlin 言語バリアント](https://tinkerpop.apache.org/docs/3.4.8/tutorials/gremlin-language-variants/#:~:text=A%20Gremlin%20language%20variant%20is,within%20their%20native%20programming%20language.)を使用します。

## ネットワークを保護する
<a name="network-security"></a>

Amazon Neptune DB クラスターは、 AWS上の仮想プライベートクラウド (VPC) でのみ作成できます。Neptune 1.4.6.0 まで、Neptune DB クラスターのエンドポイントには、その VPC 内でのみアクセスできました。Neptune 1.4.6.0 以降では、Neptune インスタンスを[インターネット経由でパブリックにアクセスできる](https://docs.aws.amazon.com/neptune/latest/userguide/neptune-public-endpoints.html)ように設定できます。開発者が Neptune に簡単にアクセスできるようにするには、この機能を非本番環境でのみ使用することがベストプラクティスです (ただし、パブリックアクセシビリティを有効にするには で IAM 認証が常に必要です）。パブリックアクセシビリティが有効になっている場合は、データベースポートのインバウンドセキュリティグループルールを既知の IP アドレストラフィックのみに設定することを検討してください。本番環境または機密データを含むクラスターでは、パブリックアクセシビリティを許可せず、Neptune DB クラスターがある VPC へのアクセスを制限することで、Neptune データを保護します。詳細については、「[Amazon Neptune ングラフへの接続](https://docs.aws.amazon.com/neptune/latest/userguide/get-started-connecting.html)」を参照してください。

転送中のデータを保護するために、Neptune は[安全なプロトコルと暗号](https://docs.aws.amazon.com/neptune/latest/userguide/security-ssl.html)を使用して、HTTPS を介した SSL 接続を任意のインスタンスまたはクラスターエンドポイントに強制します。Neptune は Neptune DB インスタンスの SSL 証明書を提供します。Neptune SSL 証明書は、クラスターエンドポイント、リーダーエンドポイント、インスタンスエンドポイントのホスト名のみをサポートします。

ロードバランサーまたはプロキシサーバー ([HAProxy](https://www.haproxy.org/) など) を使用している場合は、SSL ターミネーションを使用して独自の SSL 証明書をプロキシサーバーに保存する必要があります。提供された SSL 証明書はプロキシサーバーのホスト名と一致しないため、SSL パススルーは機能しません。SSL を使用して Neptune エンドポイントに接続する方法の詳細については、[Using the HTTP REST endpoint to connect to a Neptune DB instance](https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-sparql-http-rest.html)」を参照してください。

## 認証と認可を実装する
<a name="authentication-authorization"></a>

Neptune DB クラスターと DB インスタンスで Neptune 管理** **アクションを実行できるユーザーを制御するには、[IAM データベース認証を有効に](https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-enable.html)し、IAM 認証情報を使用します。IAM 認証情報を使用して AWS に接続するとき、IAM ロールには、Neptune 管理操作を実行するためのアクセス許可を付与する IAM ポリシーが必要です。[最小特権の原則](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)に従って、タスクを完了するために必要なアクセス許可のみを付与してください。詳細については、「[Neptune へのアクセスを制御するためのさまざまな種類の IAM ポリシーの使用](https://docs.aws.amazon.com/neptune/latest/userguide/security-iam-access-manage.html#iam-auth-policy)」および「[一時的な認証情報を使用した IAM 認証](https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-temporary-credentials.html)」を参照してください。

Neptune クラスターに接続してデータをクエリできるユーザーを制御するには、IAM を使用して Neptune DB インスタンスまたは DB クラスターを認証します。Neptune DB クラスターで IAM 認証を有効にした場合、DB クラスターにアクセスするすべてのユーザーを最初に認証する必要があります。詳細については、「[Enabling IAM database authentication in Neptune](https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-enable.html)」を参照してください。

IAM データベース認証が有効になっている場合、各リクエストは AWS 署名バージョン 4 を使用して署名する必要があります。IAM 認証が有効になっているすべての Neptune エンドポイントに署名付きリクエストを送信する方法については、「[Connecting and Signing with AWS Signature Version 4](https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-connecting.html)」を参照してください。[awscurl](https://github.com/okigan/awscurl) などの多くのライブラリやツールは、 AWS 署名バージョン 4 を既にサポートしています。

 他の とやり取りするために AWS のサービス、Amazon Neptune は IAM [サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用します。サービスにリンクされたロールは、Neptune に直接リンクされた一意のタイプの IAM ロールです サービスリンクロールは、Neptune によって事前定義されており、サービスがユーザーに代わって他の AWS のサービス を呼び出すために必要なすべてのアクセス許可が含まれています。詳細については、「[Using Service-Linked Roles for Neptune](https://docs.aws.amazon.com/neptune/latest/userguide/security-iam-service-linked-roles.html)」を参照してください。