Salesforce 接続の設定
Salesforce 接続を設定するには:
AWS Secrets Manager で、次の詳細を含むシークレットを作成します。
JWT_TOKEN グラントタイプの場合 - シークレットには、JWT_TOKEN キーとその値が含まれている必要があります。
AuthorizationCode グラントタイプの場合:
AWS マネージド接続アプリケーションの場合、空のシークレット、または一時的な値を持つシークレットを指定する必要があります。
カスタマーマネージド接続アプリケーションの場合、シークレットには、
USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET
をキーとした接続アプリConsumer Secret
を含める必要があります。
注: AWS Glue で接続ごとにシークレットを作成する必要があります。
AWS Glue データカタログで、以下の手順に従って接続を作成します。
[接続タイプ] を選択する際に、[Salesforce] を選択します。
接続する Salesforce インスタンスの INSTANCE_URL を指定します。
Salesforce 環境を指定します。
次のアクションを実行でき、AWS Glue がその権限を持つ AWS IAM ロールを選択します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterface", "ec2:DeleteNetworkInterface", ], "Resource": "*" } ] }
接続に使用する OAuth2 グラントタイプを選択します。グラントタイプは、AWS Glue が Salesforce と通信してデータへのアクセスをリクエストする方法を決定します。選択すると、接続を作成する前に満たす必要がある要件に影響します。次のいずれかのタイプを選択できます。
JWT_BEARER グラントタイプ: この付与タイプは、Salesforce インスタンス内の特定のユーザーのアクセス許可を使用して JSON Web トークン (JWT) を事前に作成できるため、オートメーションシナリオに適しています。作成者は、JWT の有効期間を制御できます。AWS Glue は JWT を使って、Salesforce API の呼び出しに使用されるアクセストークンを取得できます。
このフローでは、ユーザーが Salesforce インスタンスで接続されたアプリケーションを作成し、ユーザーに JWT ベースのアクセストークンを発行できるようにする必要があります。
JWT ベアラ OAuth フロー用の接続されたアプリケーションの作成については、「OAuth 2.0 JWT bearer flow for server-to-server integration
」を参照してください。Salesforce 接続アプリケーションで JWT ベアラフローを設定するには、「Salesforce の JWT ベアラ OAuth フローを設定する」を参照してください。 AUTHORIZATION_CODE グラントタイプ: この付与タイプは、ユーザーを認証するためにサードパーティーの認証サーバーにユーザーをリダイレクトすることに依存するため、「three-legged」の OAuth と見なされます。AWS Glue コンソール経由で接続を作成するときに使用されます。接続を作成するユーザーは、デフォルトで AWS Glue 接続されたアプリケーション (AWS Glue マネージドクライアントアプリケーション) に依存する場合があります。この場合、Salesforce インスタンス URL 以外の OAuth 関連情報を提供する必要はありません。AWS Glue コンソールでは、ユーザーが Salesforce にリダイレクトされます。ここではユーザーがログインし、Salesforce インスタンスにアクセスするためのリクエストされた権限を AWS Glue に許可する必要があります。
ユーザーは、Salesforce で独自の接続アプリケーションを作成し、AWS Glue コンソールを介して接続を作成するときに独自のクライアント ID とクライアントシークレットを提供することを選択できます。このシナリオでは、引き続き Salesforce にリダイレクトされてログインし、リソースへアクセスするために AWS Glue を承認します。
このグラントタイプは、更新トークンとアクセストークンになります。アクセストークンの有効期間は短く、更新トークンを使用してユーザーとやり取りすることなく自動的に更新される場合があります。
OAuth 認証コードフローでの接続アプリケーションの作成の詳細については、「Salesforce の認証コードフローの設定」を参照してください。
AWS Glue でこの接続に使用する
secretName
を選択して、OAuth 2.0 トークンを配置します。ネットワークを使用する場合は、ネットワークオプションを選択します。
AWS Glue ジョブ設定で、[追加のネットワーク接続] として
connectionName
を指定します。AWS Glue ジョブに関連付けられている IAM ロールに
secretName
を読み取るアクセス許可を付与します。ネットワークオプションを提供する場合は、IAM ロールに次のアクセス許可も付与します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterface", "ec2:DeleteNetworkInterface", ], "Resource": "*" } ] }
AWS CLI による Salesforce 接続の設定
CLI を使用して Salesforce AWS 接続を作成できます。
aws glue create-connection --connection-input \ "{\"Name\": \"salesforce-conn1\",\"ConnectionType\": \"SALESFORCE\",\"ConnectionProperties\": {\"ROLE_ARN\": \"arn:aws:iam::123456789012:role/glue-role\",\"INSTANCE_URL\": \"https://example.my.salesforce.com\"},\"ValidateCredentials\": true,\"AuthenticationConfiguration\": {\"AuthenticationType\": \"OAUTH2\",\"SecretArn\": \"arn:aws:secretsmanager:us-east-1:123456789012:secret:salesforce-conn1-secret-IAmcdk\",\"OAuth2Properties\": {\"OAuth2GrantType\": \"JWT_BEARER\",\"TokenUrl\": \"https://login.salesforce.com/services/oauth2/token\"}}}" \ --endpoint-url https://glue.us-east-1.amazonaws.com \ --region us-east-1