

# PayPal 接続の設定
<a name="paypal-configuring-connections"></a>

PayPal は、OAuth2 の CLIENT CREDENTIALS 許可タイプをサポートしています。
+ このグラントタイプは、クライアントがユーザーのコンテキスト外でアクセストークンを取得するために使用するため、2-legged の OAuth 2.0 と見なされます。AWS Glue は、クライアント ID とクライアントシークレットを使用して、定義したカスタムサービスによって提供される PayPal API を認証できます。
+ 各カスタムサービスは、特定のアクションを実行することをサービスに許可する一連のロールとアクセス許可を持つ API 専用ユーザーによって所有されます。アクセストークンは 1 つのカスタムサービスに関連付けられています。
+ このグラントタイプは、有効期間が短いアクセストークンになり、`/v2/oauth2/token` エンドポイントを再び呼び出すことで更新される場合があります。
+ クライアント認証情報を使用した OAuth 2.0 の PayPal の公開ドキュメントについては、[「認証](https://developer.paypal.com/api/rest/authentication/)」を参照してください。

PayPal 接続を設定するには:

1. AWS Secrets Manager で、次の詳細を含むシークレットを作成します。

   1. カスタマーマネージド接続アプリケーションの場合、シークレットには、`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` を使用して接続されたアプリケーションのコンシューマーシークレットをキーとして含める必要があります。

   1. 注: AWS Glue で接続にシークレットを作成する必要があります。

1. AWS Glue Glue Studio で、以下の手順に従って **[データ接続]** の下に接続を作成します。

   1. **[接続タイプ]** を選択する際に、[PayPal] を選択します。

   1. 接続先の PayPal インスタンスの `INSTANCE_URL` を指定します。

   1. 次のアクションを実行でき、AWS Glue がその権限を持つ AWS IAM ロールを選択します。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. AWS Glue でこの接続に使用する `secretName` を選択して、トークンを配置します。

   1. ネットワークを使用する場合は、ネットワークオプションを選択します。

1. AWS Glue ジョブに関連付けられている IAM ロールに `secretName` を読み取るアクセス許可を付与します。

## OAuth 2.0 認証情報の取得
<a name="paypal-getting-oauth-20-credentials"></a>

Rest API を呼び出すには、クライアント ID とクライアントシークレットをアクセストークンと交換する必要があります。詳細については、「[PayPal REST API の使用を開始する](https://developer.paypal.com/api/rest/)」を参照してください。