

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

# Gremlin Amazon S3 エクスポート機能へのアクセスの許可
<a name="granting-access-gremlin"></a>

 **必要な IAM ポリシー** 

1.  **Neptune クエリの読み取りアクセス** 

   ```
   {
     "Sid": "NeptuneQueryRead",
     "Effect": "Allow",
     "Action": ["neptune-db:Read*"],
     "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD12/*"
   }
   ```

    **必要な理由:** このアクセス権限により、Neptune データベースからのデータの読み取りが許可されます。これは、エクスポートされる Gremlin クエリを実行するために必要です。前の例では、読み取りクエリを許可します。読み取り/書き込みクエリには、書き込み/削除のアクセス権限が必要です。

1.  **Amazon S3 のエクスポート許可** 

   ```
   {
     "Sid": "NeptuneS3Export",
     "Effect": "Allow",
     "Action": [
       "s3:ListBucket",
       "s3:PutObject",
       "s3:AbortMultipartUpload",
       "s3:GetBucketPublicAccessBlock"
     ],
     "Resource": "arn:aws:s3:::neptune-export-bucket/*"
   }
   ```

    **各アクセス権限が必要な理由:** 
   +  `s3:ListBucket`: バケットの存在を検証し、コンテンツを一覧表示するために必要です。
   +  `s3:PutObject`: エクスポートされたデータを Amazon S3 に書き込むために必要です。
   +  `s3:AbortMultipartUpload`: エクスポートが失敗した場合に、不完全なマルチパートアップロードをクリーンアップするために必要です。
   +  `s3:GetBucketPublicAccessBlock`: データをエクスポートする前にバケットがパブリックではないことを確認するためのセキュリティ対策として必要です。

1.  **AWS KMSpermissios** - オプション。カスタム AWS KMS 暗号化を使用する場合にのみ必要です。

   ```
   {
     "Sid": "NeptuneS3ExportKMS",
     "Effect": "Allow",
     "Action": [
       "kms:Decrypt",
       "kms:GenerateDataKey",
       "kms:DescribeKey"
     ],
     "Resource": "arn:aws:kms:<REGION>:<AWS_ACCOUNT_ID>:key/mrk-48971c37"
       "Condition": {
       "StringEquals": {
         "kms:ViaService": [
           "s3.<REGION>.amazonaws.com",
           "rds.<REGION>.amazonaws.com"
         ]
       }
     }
   }
   ```

    **各アクセス権限が必要な理由:** 
   +  `kms:Decrypt`: データ暗号化のAWS KMSキーを復号するために必要です。
   +  `kms:GenerateDataKey`: エクスポートされたデータを暗号化するデータキーを生成するために必要です。
   +  `kms:DescribeKey`: AWS KMSキーに関する情報を検証して取得するために必要です。
   +  `kms:ViaService`: キーがこのロールで他のAWSサービスに使用できないように強制することで、セキュリティを強化します。

**インポートの前提条件**
+  **IAM 認証:** これらのアクセス許可を適用するには、Neptune クラスターで有効にする必要があります。
+  **VPC エンドポイント:** 
  +  Neptune が Amazon S3 と通信できるようにするには、Amazon S3 のゲートウェイタイプの VPC エンドポイントが必要です。
  +  クエリでカスタムAWS KMS暗号化を使用するには、Neptune が と通信できるようにするには、 のインターフェイスタイプの VPC エンドポイントAWS KMSが必要ですAWS KMS。
+  **Amazon S3 バケットの設定** 
  +  パブリックにはできません。
  +  不完全なマルチパートアップロードをクリーンアップするライフサイクルルールが必要です。
  +  新しいオブジェクトを自動的に暗号化します。

 これらのアクセス権限と前提条件により、適切なアクセスコントロールとデータ保護対策を維持しながら、Gremlin クエリ結果を安全かつ確実にエクスポートできます。