コネクタと接続 > データ取り込みおよびレプリケーション接続プロパティ > Amazon S3 V2接続プロパティ
  

Amazon S3 V2接続プロパティ

Amazon S3に対して読み取りおよび書き込みを行うAmazon S3 V2接続を作成します。

認証の準備

Amazon S3にアクセスするために、複数の認証タイプを設定できます。
接続プロパティを設定する前に、使用する認証のタイプに基づいて認証の詳細を用意しておく必要があります。

最小限のAmazon IAMポリシーの作成

AWSコンソールでIAMポリシーを設定できます。AWS IAM認証を使用すると、Amazon S3リソースへのアクセスを安全に制御できます。
ユーザーが、Amazon S3バケットからデータの読み取りを行うことができるようにするには、次に示す最低限必要なポリシーを使用します。
ユーザーが、Amazon S3バケットにデータの書き込みを行うことができるようにするには、次に示す最低限必要なポリシーを使用します。
次のサンプルポリシーは、Amazon S3バケットにデータを書き込むための最小限のAmazon IAMポリシーを示しています。
{
"Version": "2012-10-17",
"Statement":
[
{
"Effect": "Allow",
"Action":[
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::<bucket_name>/*",
"arn:aws:s3:::<bucket_name>"
]
}
]
}
詳細モードでバケットレベルのアクセスを行うには、ListBucketMultipartUploads権限とともに、バケットレベルでAllowListBucketMultipartUploads権限を付与する必要があります。
次のサンプルポリシーは、詳細モードのバケットレベルでS3バケットにアクセスするための最小限のAmazon IAMポリシーを示しています。
{
"Sid": "AllowListBucketMultipartUploads",
"Action": [
"s3:ListBucketMultipartUploads"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::infa.qa.minimum.access.bucket"
]
},
詳細モードのマッピングの場合、同じAWSリージョン内で異なるAWSアカウントを使用できます。マッピングで使用するAWSアカウントへのアクセスがAmazon IAMポリシーで承認されていることを確認します。

IAM認証

IAM認証を設定するには、Secure AgentをAmazon Elastic Compute Cloud(EC2)システム上で実行する必要があります。キーを指定したり、IAMロールARNを使用したりしない場合は、S3バケットにアクセスできるEC2に最小限のポリシーを割り当てます。
接続でアクセスキーとシークレットキーが指定されていない場合、Amazon S3 V2コネクタでは、必要に応じてAWS資格情報プロバイダチェーンが使用され、資格情報が次の順序で検索されます。
  1. 1AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYまたはAWS_ACCESS_KEYAWS_SECRET_KEY環境変数。
  2. 2aws.accessKeyIdaws.secretKey javaシステムプロパティ。
  3. 3デフォルトの場所~/.aws/credentialsにある資格情報プロファイルファイル。
  4. 4Amazon EC2メタデータサービスによって配信されるインスタンスプロファイル資格情報。
EC2でIAM認証を設定するには、次の手順を実行します。
  1. 1最小限のAmazon IAMポリシーを作成します。
  2. 2Amazon EC2ロールを作成します。Amazon EC2ロールは、EC2システムを作成する場合に使用されます。Amazon EC2ロールの作成の詳細については、AWSのマニュアルを参照してください。
  3. 3最小限のAmazon IAMポリシーをAmazon EC2ロールにリンクします。
  4. 4EC2インスタンスを作成します。手順2で作成したAmazon EC2ロールをEC2インスタンスに割り当てます。
  5. 5EC2システムにセキュアエージェントをインストールします。

EC2ロールとIAMユーザーを使用したAssumeRole

EC2ロールまたはIAMユーザーを使用したAssumeRoleを設定し、Amazon S3に接続できます。
AssumeRoleを使用した一時的なセキュリティ資格情報を使用すると、同じAWSアカウントまたは異なるAWSアカウントからAWSリソースにアクセスできます。
EC2ロールまたはIAMユーザーを使用したAssumeRoleを設定する場合は、一時的なセキュリティ資格情報を使用するために、[sts:AssumeRole]権限とAWSアカウント内で確立された信頼関係があることを確認してください。信頼関係は、ロールを作成するときに、IAMロールの信頼ポリシーで定義されます。IAMロールにより、EC2ロールまたはIAMユーザーを信頼されたエンティティとして追加し、EC2ロールまたはIAMユーザーに一時的なセキュリティ資格情報の使用とAWSアカウントへのアクセスを許可します。
信頼関係を構築する方法の詳細については、AWSのマニュアルを参照してください。
信頼されたEC2ロールまたはIAMユーザーが一時的なセキュリティ資格情報を要求すると、AWS Security Token Service(AWS STS)によって、指定した期間有効な一時的なセキュリティ資格情報が動的に生成され、信頼されたEC2ロールまたはIAMユーザーにその資格情報が提供されます。

EC2ロールを使用したAssumeRole

[IAMロールARN]接続プロパティで指定したIAMロールを引き受けるようにEC2ロールを設定するには、Amazon S3 V2接続プロパティの[ロールの引き受けにEC2ロールを使用]チェックボックスをオンにします。
Amazon EC2ロールにより、永続的なアクセスキーとシークレットキーを必要とせずに、同じAWSアカウントまたは異なるAWSアカウントから別のIAMロールを引き受けることができます。Amazon EC2ロールにより、別のリージョンから別のIAMロールを引き受けることもできます。
EC2ロールを使用したAssumeRoleを設定する前に、次の前提条件を考慮してください。

IAMユーザーを使用したAssumeRole

IAMユーザーを使用したAssumeRoleを設定するには、Amazon S3 V2接続の作成時に[IAMロールARN]接続プロパティの値を指定します。IAMロールARNは、AWSリソースを一意に識別します。次に、[一時的な資格情報の期間]詳細ソースプロパティおよびターゲットプロパティで、一時的なセキュリティ資格情報を使用できる期間を秒単位で指定します。
IAMユーザーを使用してAssumeRoleを設定する場合は、いくつかのガイドラインに従う必要があります。詳細については、「」を参照してください。

外部ID

Amazon S3バケットが同じAWSアカウントまたは異なるAWSアカウントにある場合に、Amazon S3バケットへのより安全なアクセスのために、AWSアカウントの外部IDを指定できます。
必要に応じて、AWS Security Token Service(STS)へのAssumeRole要求で外部IDを指定できます。
外部IDは文字列である必要があります。
次のサンプルは、引き継がれたIAMロールの信頼ポリシー内の外部ID条件を示しています。
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AWS_Account_ID : user/user_name"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "dummy_external_id"
}
}
}
]

AssumeRoleポリシー

一時的なセキュリティ資格情報を使用してAWSリソースにアクセスするには、IAMユーザーとIAMロールの両方にポリシーが必要です。
次のセクションに、IAMユーザーとIAMロールに必要なポリシーを示します。
IAMユーザー
IAMユーザーは、同じAWSアカウントまたは異なるAWSアカウントで一時的なセキュリティ資格情報を使用するために、sts:AssumeRoleポリシーを持っている必要があります。
次のサンプルポリシーでは、IAMユーザーにAWSアカウントで一時的なセキュリティ資格情報を使用することを許可しています。
{
"Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":"sts:AssumeRole", "Resource":"arn:aws:iam::<ACCOUNT-HYPHENS>:role/<ROLE-NAME>" }
}
次のサンプルポリシーでは、中国地域のIAMユーザーにAWSアカウントで一時的なセキュリティ資格情報を使用することを許可しています。
{
"Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":"sts:AssumeRole", "Resource":"arn:aws-cn:iam::<ACCOUNT-HYPHENS>:role/<ROLE-NAME>" }
}
IAMロール
IAMロールは、IAMユーザーに一時的なセキュリティ資格情報を使用してAWSリソースにアクセスすることを許可するために、sts:AssumeRoleポリシーと、IAMロールにアタッチされた信頼ポリシーを持っている必要があります。ポリシーは、IAMユーザーがアクセスできるAWSリソースと、IAMユーザーが実行できるアクションを指定します。信頼ポリシーは、AWSリソースにアクセスできるAWSアカウントのIAMユーザーを指定します。
次のポリシーは、サンプルの信頼ポリシーです。
{
"Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::AWS-account-ID:root" },
"Action":"sts:AssumeRole" }
]
}
}
このポリシーでは、Principal属性で、IAMユーザーのARNを入力して、指定されたユーザーが一時的なセキュリティ資格情報を動的に生成できるようにすることもでき、それ以上のアクセスを制限できます。
以下に例を示します。
"Principal" : { "AWS" : "arn:aws:iam:: AWS-account-ID :user/ user-name " }

資格情報プロファイルファイルの認証

Amazon S3との接続を確立するために必要な資格情報は、資格情報プロファイルファイルで指定できます。
認証情報プロファイルファイルのパスを指定しない場合は、デフォルトの認証情報ファイルのパスが使用されます。プロファイル名を指定しない場合、認証情報は認証情報ファイルのデフォルトプロファイルから使用されます。
認証情報プロファイルファイルについては、次のルールを考慮してください。
次の例は、資格情報プロファイルファイルを示しています:
[default]

aws_access_key_id = 1233333

aws_secret_access_key = abcabcabc


[test-profile]

aws_access_key_id = 1233333

aws_secret_access_key = abcabcabc

aws_session_token = jahaheieomdrtflmlioerp
aws_access_key_idaws_secret_access_keyは、ユーザーを認証するための認証情報の一部として使用されるAWSアクセスキーとシークレットキーです。
aws_session_tokenは、ユーザーを認証するための認証情報の一部として使用されるAWSセッショントークンです。セッショントークンは、一時的なセキュリティ認証情報を指定する場合にのみ必要です。

Amazon S3への接続

Amazon S3に接続するようにAmazon S3接続プロパティを設定してみましょう。

始める前に

開始する前に、設定する認証タイプに基づいてAmazon S3アカウントから情報を取得する必要があります。
認証の前提条件の詳細については、認証の準備を参照してください。

接続の詳細

次の表に、基本接続プロパティを示します。
プロパティ
説明
接続名
接続の名前。
各接続名は組織内で一意である必要があります。接続名には、英数字、スペース、および次の特殊文字を含めることができます。_ .+ -,
最大長は255文字です。
説明
接続の説明。最大長は4000文字です。
タイプ
Amazon S3 V2
シークレットコンテナの使用
組織に対して設定されているSecrets Managerにこの接続の機密資格情報を保存します。
このプロパティは、組織にSecrets Managerが設定されている場合にのみ表示されます。
このプロパティは、データ取り込みおよびレプリケーションではサポートされていません。
接続でシークレットコンテナを有効にすると、Secure AgentがSecrets Managerからどの資格情報を取得するかを選択できます。このオプションを無効にした場合、資格情報は組織の設定方法に応じてリポジトリまたはローカルSecure Agentに保存されます。
Secrets Managerを設定および使用する方法については、Secrets manager configurationを参照してください。
ランタイム環境
タスクを実行するランタイム環境の名前。
ホステッドエージェントまたはサーバーレスランタイム環境でアプリケーション取り込みとレプリケーションタスクまたはデータベース取り込みとレプリケーションを実行することはできません。

認証タイプ

Amazon S3にアクセスするには、基本認証、AWS Identity and Access Management(IAM)、一時的なセキュリティ認証情報、EC2のロールの引き受け、資格情報プロファイルファイル、およびフェデレーティッドユーザーシングルサインオン認証タイプを設定します。
必要な認証方法を選択し、認証固有のパラメータを設定します。

詳細設定

次の表に、詳細接続のプロパティを示します。
プロパティ
説明
S3アカウントタイプ
Amazon S3アカウントのタイプ。
次のオプションから選択します。
  • - Amazon S3ストレージ。Amazon S3サービスを使用できるようにします。
  • - S3互換ストレージ。Scality RINGやMinIOなどのサードパーティのストレージプロバイダのエンドポイントを使用できるようにします。
デフォルトはAmazon S3ストレージです。
RESTエンドポイント
S3互換ストレージに必要なS3ストレージエンドポイント。
S3ストレージエンドポイントをHTTPまたはHTTPS形式で入力します。
例えば、http://s3.isv.scality.comと指定します。
S3 VPCエンドポイントタイプ
Amazon S3用のAmazon Virtual Private Cloudエンドポイントのタイプ。
VPCエンドポイントを使用して、Amazon S3とのプライベート通信を有効にすることができます。
次のいずれかのオプションを選択します。
  • - なし。VPCエンドポイントを使用しない場合に選択します。
  • - ゲートウェイエンドポイント。インタフェースエンドポイントを介してAmazon S3とのプライベート通信を確立する場合に選択します。ゲートウェイエンドポイントは、S3トラフィックをS3ゲートウェイエンドポイントに転送するために使用されるルートテーブル内のルートのターゲットです。
  • - インタフェースエンドポイント。サブネットのIPアドレス範囲のプライベートIPアドレスを使用するインタフェースエンドポイント経由でAmazon S3とのプライベート通信を確立する場合に選択します。これは、AWSのサービス宛てのトラフィックのエントリポイントとして機能します。
デフォルトは[なし]です。
アプリケーション取り込みとレプリケーションタスク、またはデータベース取り込みとレプリケーションタスクには適用されません。
Amazon S3のエンドポイントDNS名
Amazon S3インタフェースエンドポイントのDNS名。
DNS名は以下の形式で入力します。
bucket.<インタフェースエンドポイントのDNS名>
アプリケーション取り込みとレプリケーションタスク、またはデータベース取り込みとレプリケーションタスクには適用されません。
STS VPCエンドポイントタイプ
AWS Security Token Service用のAmazon Virtual Private Cloudエンドポイントのタイプ。
このオプションは、S3 VPCインタフェースエンドポイントを選択し、IAMユーザーまたはEC2ロール認証またはフェデレーションSSO IdP認証を介してAssumeRoleを使用する場合に適用されます。
アプリケーション取り込みとレプリケーションタスク、ストリーミング取り込みとレプリケーションタスク、またはデータベース取り込みとレプリケーションタスクには適用されません。
AWS STSのエンドポイントDNS名
AWS STSインタフェースエンドポイントのDNS名。
アプリケーション取り込みとレプリケーションタスク、またはデータベース取り込みとレプリケーションタスクには適用されません。
KMS VPCエンドポイントタイプ
AWS Key Management Service用のAmazon Virtual Private Cloudエンドポイントのタイプ。
このオプションは、S3 VPCインタフェースエンドポイントを選択したときに適用され、カスタママスターキーIDを指定するときに必要になります。
アプリケーション取り込みとレプリケーションタスク、またはデータベース取り込みとレプリケーションタスクには適用されません。
AWS KMSのエンドポイントDNS名
AWS KMSインタフェースエンドポイントのDNS名。
アプリケーション取り込みとレプリケーションタスク、またはデータベース取り込みとレプリケーションタスクには適用されません。
マスタ対称キー
クライアントサイド暗号化を使用する場合の、Base64形式で示す256ビットのAES暗号化キー。暗号化キーは、サードパーティ製ツールを使用して生成できます。
アプリケーション取り込みとレプリケーションタスク、データベース取り込みとレプリケーションタスク、またはストリーミング取り込みとレプリケーションタスクには適用されません。
顧客マスタキーID
AWS Key Management Service(AWS KMS)によって生成された顧客マスタキーIDまたはエイリアス名、またはアカウント間アクセス用のカスタムキーのAmazonリソース名(ARN)。
Amazon S3バケットが存在するリージョンの顧客マスタキーを生成する必要があります。
次のマスタキーを指定できます。
  • - 顧客が生成した顧客マスタキー。クライアントサイドまたはサーバーサイドの暗号化を有効にします。
  • - デフォルトの顧客マスタキー。クライアントサイドまたはサーバーサイドの暗号化を有効にします。アカウントの管理者ユーザーのみがデフォルトの顧客マスタキーIDを使用してクライアントサイド暗号化を有効にできます。
アプリケーション取り込みとレプリケーションタスク、データベース取り込みとレプリケーションタスク、またはストリーミング取り込みとレプリケーションタスクには適用されません。

Amazon S3とのプライベート通信

Amazon S3とのプライベート通信は、AWSコンソールとAmazon S3 V2接続で、ゲートウェイエンドポイントまたはインタフェースエンドポイントを設定することで有効にできます。
トラフィックをパブリックインターネットに公開せずにAmazon S3とのプライベート通信を確立するようにAmazon S3 V2コネクタを設定できます。Amazon S3にアクセスするには、Secure AgentがAWS Virtual Private Cloud(VPC)のサブネットの一部であることを確認します。AWS S3 VPCエンドポイントを使用すると、サブネットをインターネットゲートウェイに接続せずに、S3要求をAmazon S3サービスにルーティングできます。インタフェースエンドポイントまたはゲートウェイエンドポイントを作成できます。
詳細については、「Configuring private communication with Amazon S3 using the Amazon S3 V2 Connector」を参照してください。

KMSを使用したサーバーサイド暗号化

AWS Key Management Service(AWS KMS)によって管理される顧客マスタキーを使用し、KMSによる暗号化を有効にするには、KMSポリシーを作成する必要があります。
次の操作を実行すると、一時的なセキュリティ資格情報を使用し、KMSを使用した暗号化を有効にすることができます。
参考までに、次のサンプルKMSポリシーを参照してください。
{
"Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "kms:GenerateDataKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": ["arn:aws:kms:region:account:key/<KMS_key>"]
}
]
}
KMSを設定し、中国地域のAmazon S3エンドポイントにアクセスする場合は、次のサンプルポリシーを使用します。
{
"Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "kms:GenerateDataKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": ["arn:aws-cn:kms:region:account:key/<KMS_key>"]
}
]
}

プロキシサーバーの設定

組織で送信プロキシサーバーを使用してインターネットに接続する場合、Secure Agentは、そのプロキシサーバー経由でInformatica Intelligent Cloud Servicesに接続します。
WindowsおよびLinuxで、プロキシサーバーを使用するようにSecure Agentを設定できます。
認証されていないプロキシサーバーのみを使用してInformatica Intelligent Cloud Servicesに接続できます。
Secure Agentのプロキシの設定を行うには、次のタスクを実行します。
注: HTTPプロキシとSOCKSプロキシの両方を有効にすると、デフォルトではSOCKSプロキシが使用されます。SOCKSプロキシの代わりにHTTPプロキシを使用する場合は、システムプロパティで[DisableSocksProxy]プロパティの値をtrueに設定します。

プロキシサーバーのバイパス

組織で送信プロキシサーバーを使用してインターネットに接続している場合、Secure Agentは、そのプロキシサーバー経由でInformatica Intelligent Cloud Servicesに接続します。
ただし、特定のIPアドレスとホスト名をプロキシから除外する場合は、プロキシをバイパスできます。proxy.iniファイルでInfaAgent.NonProxyHostプロパティを設定し、Secure AgentプロパティのJVMオプションで-Dhttp.nonProxyHostsプロパティを設定して、除外するIPアドレスとホスト名を含めます。
次の表は、proxy.iniファイルまたはJVMオプションを使用して設定できるプロキシ設定を示しています。
プロキシ設定
プロキシフラグの設定
Proxy.ini
InfaAgent.NonProxyHost=localhost| <your_bucket_name>.s3.|127.*|[\:\:1]
例えば、単一のS3バケットiam.qa.bucketをバイパスするには、次のプロキシ設定を使用します。
InfaAgent.NonProxyHost=localhost|iam.qa.bucket.s3.|127.*|[\:\:1]
すべてのS3バケットをバイパスするには、次のプロキシ設定を使用します。
InfaAgent.NonProxyHost=localhost|*.s3.*|127.*|[\:\:1]
JVMオプション
-Dhttp.nonProxyHosts=localhost| <your_bucket_name>.s3.|127.* |[\:\:1]
例えば、単一のS3バケットiam.qa.bucketをバイパスするには、次のプロキシ設定を使用します。
-Dhttp.nonProxyHosts=localhost|iam.qa.bucket.s3.|127.*|[\:\:1]
すべてのS3バケットをバイパスするには、次のプロキシ設定を使用します。
-Dhttp.nonProxyHosts=localhost|*.s3.*|127.*|[\:\:1]

詳細モードでのプロキシサーバーのバイパス

プロキシサーバーをバイパスするには、proxy.iniファイルのNonProxyHost値を更新する必要があります。エージェントコアパスでプロパティを設定して、詳細クラスタ設定でNonProxyHostを設定できます。
Amazon S3エンドポイントでプロキシをバイパスするには、次の手順を実行します。
  1. 1proxy.iniファイルを編集し、NonProxyHostのプロパティにクラスタリージョンを設定します。
  2. 2適切なリージョン名をプロパティに次の形式で入力します。
  3. InfaAgent.NonProxyHost=localhost|127.*|[\:\:1]|169.254.169.254|.<REGION_NAME>.elb.amazonaws.com|*.<REGION_NAME>.elb.amazonaws.com
    次の例は、proxy.iniファイルでの、米国西部リージョンの場合のNonProxyHostを更新する方法を示しています。
    InfaAgent.NonProxyHost=localhost|127.*|[\:\:1]|169.254.169.254|.us-west-2.elb.amazonaws.com|*.us-west-2.elb.amazonaws.com|s3.us-west-2.amazonaws.com|*.s3.us-west-2.amazonaws.com|s3.amazonaws.com
  4. 3proxy.iniファイルを編集したら、詳細クラスタのランタイムプロパティで、プロパティccs.enable.storage.proxy.settingsをfalseに設定する必要があります。
  5. プロパティを設定するには、次の手順を実行します。
    1. aAdministratorに移動します。
    2. b[詳細クラスタ]ページで、編集する設定の名前を詳細設定のリストから選択します。
    3. cプロパティccs.enable.storage.proxy.settingsをfalseに設定し、クラスタ設定を特定のクラスタの[ランタイムプロパティ]に保存します。
    4. 次の図は、設定したクラスタのランタイムプロパティを示しています。
    5. S3バイパスのためのプロキシiniフラグ

IAMユーザー経由のAssumeRoleのルールとガイドライン認証

IAMユーザー認証によるロールの引き受けについては、次のガイドラインを考慮してください。

AWSリージョンのルールとガイドライン

接続プロパティでバケットのリージョン名を設定する場合は、次のルールとガイドラインを考慮してください。

S3互換ストレージのルールおよびガイドライン

Amazon S3 V2接続でS3互換のストレージを設定する場合は、次のルールとガイドラインを考慮してください。