Amazon Data Firehose를 통한 액세스 제어 - Amazon Data Firehose

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Data Firehose를 통한 액세스 제어

다음 섹션에서는 Amazon Data Firehose 리소스와의 상호 액세스를 제어하는 방법을 다룹니다. 이들 섹션에서는 Firehose 스트림으로 데이터를 보낼 수 있도록 애플리케이션 액세스 권한을 부여하는 방법에 대한 정보도 다룹니다. 또한 Amazon Data Firehose에 Amazon Simple Storage Service(Amazon S3) 버킷, Amazon Redshift 클러스터 또는 Amazon OpenSearch Service 클러스터에 대한 액세스 권한과 Datadog, Dynatrace, MongoDB LogicMonitor, New Relic, Splunk 또는 Sumo Logic을 대상으로 사용할 때 필요한 액세스 권한을 부여하는 방법도 설명합니다. 마지막으로, 이 항목에서는 다른 AWS 계정에 속한 대상으로 데이터를 전송할 수 있도록 Amazon Data Firehose를 구성하는 방법에 관한 지침도 제공합니다. 이러한 모든 형태의 액세스를 관리하기 위한 기술은 AWS Identity and Access Management ()입니다IAM. IAM에 대한 자세한 내용은 IAM란 무엇인가요?를 참조하세요.

Firehose 리소스에 대한 액세스 권한 부여

Firehose 스트림에 애플리케이션 액세스 권한을 부여하려면 다음 예와 비슷한 정책을 사용하세요. Action 섹션을 수정하여 액세스 권한을 부여하는 개별 API 작업을 조정하거나를 사용하여 모든 작업에 대한 액세스 권한을 부여할 수 있습니다"firehose:*".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:DeleteDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ] }

Firehose에 프라이빗 Amazon MSK 클러스터에 대한 액세스 권한 부여

Firehose 스트림의 소스가 프라이빗 Amazon MSK 클러스터인 경우이 예제와 유사한 정책을 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "kafka:CreateVpcConnection" ], "Resource": "cluster-arn" } ] }

Firehose 서비스 보안 주체에게 Amazon MSK CreateVpcConnection API 작업을 호출할 수 있는 권한을 부여하려면 클러스터의 리소스 기반 정책에 이와 같은 정책을 추가해야 합니다.

Firehose가 IAM 역할을 수임하도록 허용

이 섹션에서는 소스에서 대상으로 데이터를 수집, 처리, 전송할 수 있는 액세스 권한을 Amazon Data Firehose에 부여하는 권한 및 정책을 설명합니다.

참고

콘솔을 사용하여 Firehose 스트림을 생성하고 옵션을 선택하여 새 역할을 생성하는 경우는 필요한 신뢰 정책을 역할에 AWS 연결합니다. Amazon Data Firehose가 기존 IAM 역할을 사용하도록 하거나 직접 역할을 생성하려면 Amazon Data Firehose가 수임할 수 있도록 다음 신뢰 정책을 해당 역할에 연결합니다. 정책을 편집하여를 AWS 계정 IDaccount-id로 바꿉니다. 역할의 신뢰 관계를 수정하는 방법에 대한 자세한 내용은 역할 수정을 참조하세요.

Amazon Data Firehose는 Firehose 스트림이 데이터를 처리하고 전송하는 데 필요한 모든 권한에 IAM 역할을 사용합니다. 다음과 같은 신뢰 정책이 해당 역할에 연결되어 있어야만 Amazon Data Firehose가 해당 역할을 사용할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "account-id" } } }] }

이 정책은 sts:ExternalId 조건 컨텍스트 키를 사용하여 AWS 계정에서 시작된 Amazon Data Firehose 활동만이 IAM 역할을 수임할 수 있도록 합니다. IAM 역할의 무단 사용을 방지하는 방법에 대한 자세한 내용은 IAM 사용 설명서혼동된 대리자 문제를 참조하세요.

Firehose 스트림의 소스MSK로 Amazon을 선택하는 경우 Amazon Data Firehose에 지정된 Amazon MSK 클러스터에서 소스 데이터를 수집할 수 있는 권한을 부여하는 다른 IAM 역할을 지정해야 합니다. 다음과 같은 신뢰 정책이 해당 역할에 연결되어 있어야만 Amazon Data Firehose가 해당 역할을 사용할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] }

Amazon Data Firehose에 지정된 Amazon MSK 클러스터에서 소스 데이터를 수집할 수 있는 권한을 부여하는이 역할이 다음 권한을 부여하는지 확인합니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "CLUSTER-ARN" }, { "Effect":"Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "TOPIC-ARN" }] }

데이터 형식 변환을 AWS Glue 위해 Firehose에에 대한 액세스 권한 부여

Firehose 스트림이 데이터 형식 변환을 수행하는 경우 Amazon Data Firehose는 AWS Glue에 저장된 테이블 정의를 참조합니다. Amazon Data Firehose에 필요한 액세스 권한을 부여하려면 정책에 다음 문을 AWS Glue추가합니다. 테이블ARN의를 찾는 방법에 대한 자세한 내용은 AWS Glue 리소스 지정을 참조하세요ARNs.

[{ "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": "table-arn" }, { "Sid": "GetSchemaVersion", "Effect": "Allow", "Action": [ "glue:GetSchemaVersion" ], "Resource": ["*"] }]

스키마를 스키마 레지스트리에서 가져오는 데 권장되는 정책에는 리소스 제한이 없습니다. 자세한 내용은 AWS Glue 개발자 안내서의 IAM 역직렬화기 예제를 참조하세요.

Firehose에 Amazon S3 대상에 대한 액세스 권한 부여

Amazon S3 대상을 사용하는 경우 Amazon Data Firehose는 S3 버킷에 데이터를 전송하고 선택적으로 데이터 암호화에 소유한 AWS KMS 키를 사용할 수 있습니다. 오류 로깅이 활성화된 경우 Amazon Data Firehose는 CloudWatch 로그 그룹 및 스트림으로 데이터 전송 오류도 전송합니다. Firehose 스트림을 생성할 때 IAM 역할이 있어야 합니다. Amazon Data Firehose는 해당 IAM 역할을 수임하고 지정된 버킷, 키, CloudWatch 로그 그룹 및 스트림에 액세스할 수 있습니다.

다음 액세스 정책을 이용해 Amazon Data Firehose이 S3 버킷 및 AWS KMS 키에 액세스할 수 있도록 합니다. S3 버킷을 소유하지 않은 경우 Amazon S3 작업 목록에 s3:PutObjectAcl을 추가합니다. 그렇게 하면 Amazon Data Firehose에서 전송한 객체에 대한 모든 액세스 권한이 버킷 소유자에게 부여됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

위의 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다. Amazon을 소스MSK로 사용하는 경우 해당 문을 다음으로 대체할 수 있습니다.

{ "Sid":"", "Effect":"Allow", "Action":[ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:cluster/{{mskClusterName}}/{{clusterUUID}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:topic/{{mskClusterName}}/{{clusterUUID}}/{{mskTopicName}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeGroup" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:group/{{mskClusterName}}/{{clusterUUID}}/*" }

다른 AWS 서비스가 리소스에 액세스하도록 허용하는 방법에 대한 자세한 내용은 IAM 사용 설명서AWS 서비스에 권한을 위임할 역할 생성을 참조하세요 AWS .

다른 계정의 Amazon S3 대상에 대한 액세스 권한을 Amazon Data Firehose에 부여하는 방법은 Amazon S3 대상으로 교차 계정 전송 섹션을 참조하세요.

Firehose에 Amazon S3 테이블에 대한 액세스 권한 부여

Firehose 스트림을 생성하기 전에 IAM 역할이 있어야 합니다. 다음 단계에 따라 정책 및 IAM 역할을 생성합니다. Firehose는이 IAM 역할을 수임하고 필요한 작업을 수행합니다.

에 로그인 AWS Management Console 하고에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/.

정책을 생성하고 정책 편집기JSON에서를 선택합니다. 읽기/쓰기 권한, 데이터 카탈로그의 테이블을 업데이트할 수 있는 권한 등과 같은 Amazon S3 권한을 부여하는 다음 인라인 정책을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3TableAccessViaGlueFederation", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:<region>:<account-id>:catalog/s3tablescatalog/*", "arn:aws:glue:<region>:<account-id>:catalog/s3tablescatalog", "arn:aws:glue:<region>:<account-id>:catalog", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:table/*/*" ] }, { "Sid": "S3DeliveryErrorBucketPermission", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<error delivery bucket>", "arn:aws:s3:::<error delivery bucket>/*" ] }, { "Sid": "RequiredWhenUsingKinesisDataStreamsAsSource", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" }, { "Sid": "RequiredWhenDoingMetadataReadsANDDataAndMetadataWriteViaLakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Sid": "RequiredWhenUsingKMSEncryptionForS3ErrorBucketDelivery", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<account-id>:key/<KMS-key-id>" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.<region>.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::<error delivery bucket>/prefix*" } } }, { "Sid": "LoggingInCloudWatch", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<account-id>:log-group:<log-group-name>:log-stream:<log-stream-name>" ] }, { "Sid": "RequiredWhenAttachingLambdaToFirehose", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>:<account-id>:function:<function-name>:<function-version>" ] } ] }

정책에는 Amazon Kinesis Data Streams에 대한 액세스, Lambda 함수 호출 및 AWS KMS 키에 대한 액세스를 허용하는 문이 있습니다. 이러한 리소스를 사용하지 않는 경우, 해당 문을 제거할 수 있습니다. 오류 로깅이 활성화된 경우 Amazon Data Firehose는 CloudWatch 로그 그룹 및 스트림으로 데이터 전송 오류도 전송합니다. 이 옵션을 사용하려면 로그 그룹 및 로그 스트림 이름을 구성해야 합니다. 로그 그룹 및 로그 스트림 이름은 ( CloudWatch 로그를 사용하여 Amazon Data Firehose 모니터링)(링크 필요)를 참조하세요.

인라인 정책에서 <error delivery bucket>를 Amazon S3 버킷 이름으로 바꾸aws-account-id고 리전을 리소스의 유효한 AWS 계정 숫자와 리전으로 바꿉니다.

정책을 생성한 후에서 IAM 콘솔을 열고를 신뢰할 수 있는 엔터티 유형AWS 서비스으로 사용하여 IAM 역할을 https://console.aws.amazon.com/iam/ 생성합니다.

서비스 또는 사용 사례에서 Kinesis를 선택합니다. 사용 사례 에서 Kinesis Firehose를 선택합니다.

다음 페이지에서는 이전 단계에서 생성한 정책을 선택하여 이 역할에 연결합니다. 검토 페이지에서이 역할을 수임할 수 있는 권한을 Firehose 서비스에 부여하는 신뢰 정책이이 역할에 이미 연결되어 있습니다. 역할을 생성할 때 Amazon Data Firehose는 역할을 수임하여 AWS Glue 및 S3 버킷에서 필요한 작업을 수행할 수 있습니다. Firehose 서비스 보안 주체를 생성된 역할의 신뢰 정책에 추가합니다. 자세한 내용은 Firehose가 IAM 역할을 수임하도록 허용을 참조하세요.

Firehose에 Apache Iceberg 테이블 대상에 대한 액세스 권한 부여

를 사용하여 Firehose 스트림 및 Apache Iceberg 테이블을 생성하기 전에 IAM 역할이 있어야 합니다 AWS Glue. 다음 단계에 따라 정책 및 IAM 역할을 생성합니다. Firehose는이 IAM 역할을 수임하고 필요한 작업을 수행합니다.

  1. 에 로그인 AWS Management Console 하고에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/.

  2. 정책을 생성하고 정책 편집기JSON에서를 선택합니다.

  3. 읽기/쓰기 권한, 데이터 카탈로그의 테이블 업데이트 권한 등의 Amazon S3 권한을 부여하는 다음 인라인 정책을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:catalog", "arn:aws:glue:<region>:<aws-account-id>:database/*", "arn:aws:glue:<region>:<aws-account-id>:table/*/*" ] }, { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>:<aws-account-id>:stream/<stream-name>" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<aws-account-id>:key/<key-id>" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:<log-group-name>:log-stream:<log-stream-name>" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>:<aws-account-id>:function:<function-name>:<function-version>" ] } ] }

    이 정책에는 Amazon Kinesis Data Streams에 대한 액세스, Lambda 함수 호출 및 KMS 키에 대한 액세스를 허용하는 문이 있습니다. 이러한 리소스를 사용하지 않는 경우, 해당 문을 제거할 수 있습니다.

    오류 로깅이 활성화된 경우 Firehose는 CloudWatch 로그 그룹 및 스트림으로 데이터 전송 오류도 전송합니다. 이를 위해서는 로그 그룹 및 로그 스트림 이름을 구성해야 합니다. 로그 그룹 및 로그 스트림 이름은 CloudWatch Logs를 사용하여 Amazon Data Firehose 모니터링 섹션을 참조하세요.

  4. 인라인 정책에서 amzn-s3-demo-bucket를 Amazon S3 버킷 이름으로 바꾸 aws-account-id고 리전을 리소스의 유효한 AWS 계정 숫자와 리전으로 바꿉니다.

    참고

    이 역할은 데이터 카탈로그의 모든 데이터베이스 및 테이블에 대한 권한을 부여합니다. 원하는 경우 특정 테이블 및 데이터베이스에 대해서만 권한을 부여할 수 있습니다.

  5. 정책을 생성한 후 IAM 콘솔을 열고를 신뢰할 수 있는 엔터티 유형AWS 서비스으로 사용하여 IAM 역할을 생성합니다.

  6. 서비스 또는 사용 사례에서 Kinesis를 선택합니다. 사용 사례Kinesis Firehose를 선택합니다.

  7. 다음 페이지에서는 이전 단계에서 생성한 정책을 선택하여 이 역할에 연결합니다. 검토 페이지에서 Firehose 서비스가 해당 역할을 수임할 수 있도록 권한을 부여하는 신뢰 정책이 이미 이 역할에 연결되어 있음을 확인할 수 있습니다. 역할을 생성하면 Amazon Data Firehose가 이 역할을 맡아 AWS Glue 및 S3 버킷에서 필요한 작업을 수행할 수 있습니다.

Firehose에 Amazon Redshift 대상에 대한 액세스 권한 부여

Amazon Redshift 대상을 사용하는 경우 Amazon Data Firehose에 액세스 권한을 부여할 때 다음 설명을 참조하세요.

IAM 역할 및 액세스 정책

Amazon Redshift 대상을 사용 중일 때 Amazon Data Firehose는 중간 위치인 S3 버킷으로 데이터를 전송합니다. 선택적으로 데이터 암호화에 소유한 AWS KMS 키를 사용할 수 있습니다. 그러면 Amazon Data Firehose는 S3 버킷의 데이터를 Amazon Redshift 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹으로 로드합니다. 오류 로깅이 활성화된 경우 Amazon Data Firehose는 CloudWatch 로그 그룹 및 스트림으로 데이터 전송 오류도 전송합니다. Amazon Data Firehose는 지정된 Amazon Redshift 사용자 이름과 암호를 사용하여 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹에 액세스하고 IAM 역할을 사용하여 지정된 버킷, 키, CloudWatch 로그 그룹 및 스트림에 액세스합니다. Firehose 스트림을 생성할 때 IAM 역할이 있어야 합니다.

다음 액세스 정책을 이용해 Amazon Data Firehose이 S3 버킷 및 AWS KMS 키에 액세스할 수 있도록 합니다. S3 버킷을 소유하지 않은 경우, Amazon S3 작업 목록에 s3:PutObjectAcl을 추가하여, Amazon Data Firehose에서 전송한 객체에 대한 모든 액세스 권한을 버킷 소유자에게 부여합니다. 이 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

다른 AWS 서비스가 리소스에 액세스하도록 허용하는 방법에 대한 자세한 내용은 IAM 사용 설명서AWS 서비스에 권한을 위임할 역할 생성을 참조하세요 AWS .

VPC Amazon Redshift 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹에 대한 액세스

Amazon Redshift 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹이 가상 프라이빗 클라우드(VPC)에 있는 경우 퍼블릭 IP 주소로 공개적으로 액세스할 수 있어야 합니다. 또한 Amazon Data Firehose IP 주소를 차단 해제하여 Amazon Redshift 프로비저닝 클러스터 또는 Amazon Redshift Serverless 작업 그룹에 대한 액세스 권한을 Amazon Data Firehose에 부여하세요. Amazon Data Firehose는 현재 사용 가능한 각 리전에 대해 하나의 CIDR 블록을 사용합니다.

리전 CIDR 블록
미국 동부(오하이오)

13.58.135.96/27

미국 동부(버지니아 북부) 52.70.63.192/27
미국 서부(캘리포니아 북부) 13.57.135.192/27
미국 서부(오레곤) 52.89.255.224/27
AWS GovCloud (미국 동부) 18.253.138.96/27
AWS GovCloud (미국 서부) 52.61.204.160/27
캐나다(중부) 35.183.92.128/27
캐나다 서부(캘거리) 40.176.98.192/27
아시아 태평양(홍콩) 18.162.221.32/27
아시아 태평양(뭄바이) 13.232.67.32/27
아시아 태평양(하이데라바드) 18.60.192.128/27
아시아 태평양(서울) 13.209.1.64/27
아시아 태평양(싱가포르) 13.228.64.192/27
아시아 태평양(시드니) 13.210.67.224/27
아시아 태평양(자카르타) 108.136.221.64/27
아시아 태평양(도쿄) 13.113.196.224/27
아시아 태평양(오사카) 13.208.177.192/27
중국(베이징) 52.81.151.32/27
중국(닝샤) 161.189.23.64/27
유럽(취리히) 16.62.183.32/27
유럽(프랑크푸르트) 35.158.127.160/27
유럽(아일랜드) 52.19.239.192/27
유럽(런던) 18.130.1.96/27
유럽(파리) 35.180.1.96/27
유럽(스톡홀름) 13.53.63.224/27
중동(바레인) 15.185.91.0/27
남아메리카(상파울루) 18.228.1.128/27
유럽(밀라노) 15.161.135.128/27
아프리카(케이프타운) 13.244.121.224/27
중동(UAE) 3.28.159.32/27
이스라엘(텔아비브) 51.16.102.0/27
아시아 태평양(멜버른) 16.50.161.128/27
아시아 태평양(말레이시아) 43.216.58.0/27

IP 주소 차단 해제에 대한 자세한 내용은 Amazon Redshift 시작 가이드클러스터에 대한 액세스 권한 부여 단계를 참조하세요.

퍼블릭 OpenSearch 서비스 대상에 대한 Firehose 액세스 권한 부여

OpenSearch 서비스 대상을 사용하는 경우 Amazon Data Firehose는 OpenSearch Service 클러스터에 데이터를 전송하고 실패한 문서 또는 모든 문서를 S3 버킷에 동시에 백업합니다. 오류 로깅이 활성화된 경우 Amazon Data Firehose는 로그 그룹 및 스트림으로 CloudWatch 데이터 전송 오류도 전송합니다. Amazon Data Firehose는 IAM 역할을 사용하여 지정된 OpenSearch 서비스 도메인, S3 버킷, AWS KMS 키, CloudWatch 로그 그룹 및 스트림에 액세스합니다. Firehose 스트림을 생성할 때 IAM 역할이 있어야 합니다.

다음 액세스 정책을 사용하여 Amazon Data Firehose가 S3 버킷, OpenSearch 서비스 도메인 및 AWS KMS 키에 액세스할 수 있도록 합니다. S3 버킷을 소유하지 않은 경우, Amazon S3 작업 목록에 s3:PutObjectAcl을 추가합니다. 이렇게 하면 Amazon Data Firehose에서 전송한 객체에 대한 모든 액세스 권한을 버킷 소유자에게 부여합니다. 이 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "es:DescribeDomain", "es:DescribeDomains", "es:DescribeDomainConfig", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name", "arn:aws:es:region:account-id:domain/domain-name/*" ] }, { "Effect": "Allow", "Action": [ "es:ESHttpGet" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name/_all/_settings", "arn:aws:es:region:account-id:domain/domain-name/_cluster/stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_mapping/type-name", "arn:aws:es:region:account-id:domain/domain-name/_nodes", "arn:aws:es:region:account-id:domain/domain-name/_nodes/stats", "arn:aws:es:region:account-id:domain/domain-name/_nodes/*/stats", "arn:aws:es:region:account-id:domain/domain-name/_stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_stats", "arn:aws:es:region:account-id:domain/domain-name/" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

다른 AWS 서비스가 리소스에 액세스하도록 허용하는 방법에 대한 자세한 내용은 IAM 사용 설명서AWS 서비스에 권한을 위임할 역할 생성을 참조하세요 AWS .

Amazon Data Firehose에 다른 계정의 OpenSearch 서비스 클러스터에 대한 액세스 권한을 부여하는 방법을 알아보려면 섹션을 참조하세요 OpenSearch 서비스 대상으로 교차 계정 전송.

Firehose에의 OpenSearch 서비스 대상에 대한 액세스 권한 부여 VPC

OpenSearch 서비스 도메인이에 있는 경우 이전 섹션에 설명된 권한을 Amazon Data Firehose에 부여해야 VPC합니다. 또한 OpenSearch 서비스 도메인의에 액세스할 수 있도록 Amazon Data Firehose에 다음 권한을 부여해야 합니다VPC.

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

중요

Firehose 스트림을 생성한 후에는 해당 권한을 취소하지 마세요. 이러한 권한을 취소하면 서비스가를 쿼리하거나 업데이트하려고 할 때마다 Firehose 스트림이 저하되거나 OpenSearch 서비스 도메인으로의 데이터 전송이 중지됩니다ENIs.

중요

프라이빗의 대상으로 데이터를 전송하기 위해 서브넷을 지정할 때는 선택한 서브넷에 충분한 수의 사용 가능한 IP 주소가 있는지 VPC확인합니다. 지정된 서브넷에 사용 가능한 무료 IP 주소가 없는 경우 Firehose는 프라이빗에서 데이터 전송을 ENIs 위해를 생성하거나 추가할 수 없으며 전송VPC이 저하되거나 실패합니다.

Firehose 스트림을 생성하거나 업데이트할 때 OpenSearch 서비스 도메인으로 데이터를 전송할 때 Firehose가 사용할 보안 그룹을 지정합니다. OpenSearch 서비스 도메인이 사용하는 것과 동일한 보안 그룹 또는 다른 보안 그룹을 사용할 수 있습니다. 다른 보안 그룹을 지정하는 경우 서비스 도메인의 보안 그룹에 대한 OpenSearch 아웃바운드 HTTPS 트래픽을 허용하는지 확인합니다. 또한 OpenSearch 서비스 도메인의 보안 그룹이 Firehose 스트림을 구성할 때 지정한 보안 그룹의 HTTPS 트래픽을 허용하는지 확인합니다. Firehose 스트림과 OpenSearch 서비스 도메인 모두에 동일한 보안 그룹을 사용하는 경우 보안 그룹 인바운드 규칙이 HTTPS 트래픽을 허용하는지 확인합니다. 보안 그룹 규칙에 대한 자세한 내용은 Amazon VPC 설명서의 보안 그룹 규칙을 참조하세요.

퍼블릭 OpenSearch Serverless 대상에 대한 Firehose 액세스 권한 부여

OpenSearch Serverless 대상을 사용하는 경우 Amazon Data Firehose는 OpenSearch Serverless 컬렉션에 데이터를 전송하고 실패한 문서 또는 모든 문서를 S3 버킷에 동시에 백업합니다. 오류 로깅이 활성화된 경우 Amazon Data Firehose는 CloudWatch 로그 그룹 및 스트림으로 데이터 전송 오류도 전송합니다. Amazon Data Firehose는 IAM 역할을 사용하여 지정된 OpenSearch Serverless 컬렉션, S3 버킷, AWS KMS 키, CloudWatch 로그 그룹 및 스트림에 액세스합니다. Firehose 스트림을 생성할 때 IAM 역할이 있어야 합니다.

다음 액세스 정책을 사용하여 Amazon Data Firehose가 S3 버킷, OpenSearch 서버리스 도메인 및 AWS KMS 키에 액세스할 수 있도록 합니다. S3 버킷을 소유하지 않은 경우, Amazon S3 작업 목록에 s3:PutObjectAcl을 추가합니다. 이렇게 하면 Amazon Data Firehose에서 전송한 객체에 대한 모든 액세스 권한을 버킷 소유자에게 부여합니다. 이 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] }, { "Effect": "Allow", "Action": "aoss:APIAccessAll", "Resource": "arn:aws:aoss:region:account-id:collection/collection-id" } ] }

위의 정책과 함께, 다음과 같은 최소한의 권한이 데이터 액세스 정책에 할당되도록 Amazon Data Firehose를 구성해야 합니다.

[ { "Rules":[ { "ResourceType":"index", "Resource":[ "index/target-collection/target-index" ], "Permission":[ "aoss:WriteDocument", "aoss:UpdateIndex", "aoss:CreateIndex" ] } ], "Principal":[ "arn:aws:sts::account-id:assumed-role/firehose-delivery-role-name/*" ] } ]

다른 AWS 서비스가 리소스에 액세스하도록 허용하는 방법에 대한 자세한 내용은 IAM 사용 설명서AWS 서비스에 권한을 위임할 역할 생성을 참조하세요 AWS .

Firehose에의 OpenSearch 서버리스 대상에 대한 액세스 권한 부여 VPC

OpenSearch 서버리스 컬렉션이에 있는 경우 이전 섹션에 설명된 권한을 Amazon Data Firehose에 부여해야 VPC합니다. 또한 Amazon Data Firehose가 OpenSearch Serverless 컬렉션의에 액세스할 수 있도록 하려면 다음 권한을 부여해야 합니다VPC.

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

중요

Firehose 스트림을 생성한 후에는 해당 권한을 취소하지 마세요. 이러한 권한을 취소하면 서비스가를 쿼리하거나 업데이트하려고 할 때마다 Firehose 스트림이 저하되거나 OpenSearch 서비스 도메인으로의 데이터 전송이 중지됩니다ENIs.

중요

프라이빗의 대상으로 데이터를 전송하기 위해 서브넷을 지정할 때는 선택한 서브넷에 충분한 수의 사용 가능한 IP 주소가 있는지 VPC확인합니다. 지정된 서브넷에 사용 가능한 무료 IP 주소가 없는 경우 Firehose는 프라이빗에서 데이터 전송을 ENIs 위해를 생성하거나 추가할 수 없으며 전송VPC이 저하되거나 실패합니다.

Firehose 스트림을 생성하거나 업데이트할 때 OpenSearch Serverless 컬렉션으로 데이터를 전송할 때 Firehose가 사용할 보안 그룹을 지정합니다. OpenSearch Serverless 컬렉션에서 사용하는 것과 동일한 보안 그룹 또는 다른 보안 그룹을 사용할 수 있습니다. 다른 보안 그룹을 지정하는 경우 OpenSearch Serverless 컬렉션의 보안 그룹으로의 아웃바운드 HTTPS 트래픽을 허용하는지 확인합니다. 또한 Serverless 컬렉션의 보안 그룹이 Firehose 스트림을 OpenSearch 구성할 때 지정한 보안 그룹의 HTTPS 트래픽을 허용하는지 확인합니다. Firehose 스트림과 OpenSearch Serverless 컬렉션 모두에 동일한 보안 그룹을 사용하는 경우 보안 그룹 인바운드 규칙이 HTTPS 트래픽을 허용하는지 확인합니다. 보안 그룹 규칙에 대한 자세한 내용은 Amazon VPC 설명서의 보안 그룹 규칙을 참조하세요.

Firehose에 Splunk 대상에 대한 액세스 권한 부여

Splunk 대상을 사용하는 경우 Amazon Data Firehose는 Splunk HTTP Event Collector(HEC) 엔드포인트로 데이터를 전송합니다. 또한 사용자가 지정한 Amazon S3 버킷에 해당 데이터를 백업하며, 선택적으로 Amazon S3 서버 측 암호화에 소유한 AWS KMS 키를 사용할 수 있습니다. 오류 로깅이 활성화된 경우 Firehose는 로그 스트림으로 CloudWatch 데이터 전송 오류를 전송합니다. 를 데이터 변환 AWS Lambda 에 사용할 수도 있습니다.

AWS 로드 밸런서를 사용하는 경우 Classic Load Balancer 또는 Application Load Balancer인지 확인합니다. 또한 Classic Load Balancer의 경우 쿠키 만료를 비활성화한 기간 기반 스티키 세션을 사용 설정하고, Application Load Balancer의 경우 만료 기간을 최댓값(7일)으로 설정해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 정보는 Classic Load Balancer 또는 Application Load Balancer의 기간 기반 세션 고정을 참조하세요.

Firehose 스트림을 생성할 때 IAM 역할이 있어야 합니다. Firehose는 해당 IAM 역할을 수임하고 지정된 버킷, 키, CloudWatch 로그 그룹 및 스트림에 대한 액세스 권한을 얻습니다.

다음 액세스 정책을 이용해 Amazon Data Firehose가 S3 버킷에 액세스할 수 있도록 합니다. S3 버킷을 소유하지 않은 경우, Amazon S3 작업 목록에 s3:PutObjectAcl을 추가하여, Amazon Data Firehose에서 전송한 객체에 대한 모든 액세스 권한을 버킷 소유자에게 부여합니다. 또한이 정책은 오류 로깅을 CloudWatch 위해에 액세스하고 데이터 변환을 위해에 대한 액세스 권한을 Amazon Data Firehose AWS Lambda 에 부여합니다. 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다. Amazon Data Firehose는 Splunk에 액세스하는 IAM 데를 사용하지 않습니다. Splunk에 액세스하려면 HEC 토큰을 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

다른 AWS 서비스가 리소스에 액세스하도록 허용하는 방법에 대한 자세한 내용은 IAM 사용 설명서AWS 서비스에 권한을 위임할 역할 생성을 참조하세요 AWS .

에서 Splunk 액세스 VPC

Splunk 플랫폼이에 있는 경우 퍼블릭 IP 주소로 공개적으로 액세스할 수 있어야 VPC합니다. 또한 Amazon Data Firehose IP 주소를 차단 해제하여 Splunk 플랫폼에 대한 액세스 권한을 Amazon Data Firehose에 부여하세요. Amazon Data Firehose는 현재 다음 CIDR 블록을 사용합니다.

리전 CIDR 블록
미국 동부(오하이오)

18.216.68.160/27, 18.216.170.64/27, 18.216.170.96/27\

미국 동부(버지니아 북부) 34.238.188.128/26, 34.238.188.192/26, 34.238.195.0/26
미국 서부(캘리포니아 북부) 13.57.180.0/26
미국 서부(오레곤) 34.216.24.32/27, 34.216.24.192/27, 34.216.24.224/27
AWS GovCloud (미국 동부) 18.253.138.192/26
AWS GovCloud (미국 서부) 52.61.204.192/26
아시아 태평양(홍콩) 18.162.221.64/26
아시아 태평양(뭄바이) 13.232.67.64/26
아시아 태평양(서울) 13.209.71.0/26
아시아 태평양(싱가포르) 13.229.187.128/26
아시아 태평양(시드니) 13.211.12.0/26
아시아 태평양(도쿄) 13.230.21.0/27, 13.230.21.32/27
캐나다(중부) 35.183.92.64/26
캐나다 서부(캘거리) 40.176.98.128/26
유럽(프랑크푸르트) 18.194.95.192/27, 18.194.95.224/27, 18.195.48.0/27
유럽(아일랜드) 34.241.197.32/27, 34.241.197.64/27, 34.241.197.96/27
유럽(런던) 18.130.91.0/26
유럽(파리) 35.180.112.0/26
유럽(스페인) 18.100.194.0/26
유럽(스톡홀름) 13.53.191.0/26
중동(바레인) 15.185.91.64/26
남아메리카(상파울루) 18.228.1.192/26
유럽(밀라노) 15.161.135.192/26
아프리카(케이프타운) 13.244.165.128/26
아시아 태평양(오사카) 13.208.217.0/26
중국(베이징) 52.81.151.64/26
중국(닝샤) 161.189.23.128/26
아시아 태평양(자카르타) 108.136.221.128/26
중동(UAE) 3.28.159.64/26
이스라엘(텔아비브) 51.16.102.64/26
유럽(취리히) 16.62.183.64/26
아시아 태평양(하이데라바드) 18.60.192.192/26
아시아 태평양(멜버른) 16.50.161.192/26
아시아 태평양(말레이시아) 43.216.44.192/26

Amazon Data Firehose를 사용하여 Splunk에 VPC 흐름 로그 수집

VPC 흐름 로그 구독을 생성하고 Firehose에 게시하고 지원되는 대상으로 VPC 흐름 로그를 전송하는 방법에 대한 자세한 내용은 Amazon Data Firehose를 사용하여 Splunk에 VPC 흐름 로그 수집을 참조하세요.

Snowflake 또는 HTTP 엔드포인트 액세스

대상이 HTTP 엔드포인트 또는 Snowflake 퍼블릭 클러스터인 경우 Amazon Data Firehose와 관련된 AWS IP 주소 범위의 하위 집합은 없습니다.

퍼블릭 Snowflake 클러스터의 허용 목록 또는 퍼블릭 HTTP 또는 HTTPS 엔드포인트에 Firehose를 추가하려면 수신 규칙에 현재 AWS IP 주소 범위를 모두 추가합니다.

참고

알림이 항상 연결된 주제와 동일한 AWS 리전의 IP 주소에서 소싱되는 것은 아닙니다. 모든 리전의 AWS IP 주소 범위를 포함해야 합니다.

Firehose에 Snowflake 대상에 대한 액세스 권한 부여

Snowflake를 대상으로 사용하는 경우 Firehose는 Snowflake 계정을 사용하여 Snowflake 계정에 데이터를 전송합니다URL. 또한 사용자가 지정한 Amazon Simple Storage Service 버킷에 오류 데이터를 백업하며, 선택적으로 Amazon S3 서버 측 암호화에 소유한 AWS Key Management Service 키를 사용할 수 있습니다. 오류 로깅이 활성화된 경우 Firehose는 CloudWatch 로그 스트림으로 데이터 전송 오류를 전송합니다.

Firehose 스트림을 생성하기 전에 IAM 역할이 있어야 합니다. Firehose는 해당 IAM 역할을 수임하고 지정된 버킷, 키, CloudWatch 로그 그룹 및 스트림에 대한 액세스 권한을 얻습니다. 다음 액세스 정책을 이용해 Firehose가 S3 버킷에 액세스하도록 합니다. S3 버킷을 소유하지 않은 경우, Amazon Simple Storage Service 작업 목록에 s3:PutObjectAcl을 추가하여 Firehose가 전송한 객체에 대한 모든 액세스 권한을 버킷 소유자에게 부여하세요. 또한이 정책은 오류 로깅을 CloudWatch 위해 Firehose에에 대한 액세스 권한을 부여합니다. 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다. Firehose는를 사용하여 SnowflakeIAM에 액세스하지 않습니다. Snowflake에 액세스하기 위해 프라이빗 클러스터의 경우 Snowflake 계정 Url 및 PrivateLink Vpce Id를 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] } ] }

다른 AWS 서비스가 AWS 리소스에 액세스하도록 허용하는 방법에 대한 자세한 내용은 IAM 사용 설명서AWS 서비스에 권한을 위임할 역할 생성을 참조하세요.

에서 Snowflake에 액세스 VPC

Snowflake 클러스터가 프라이빗 링크가 활성화된 경우 Firehose는 프라이빗 링크 생성 시 다음 VPC 엔드포인트 중 하나를 사용하여 퍼블릭 인터넷을 통하지 않고 프라이빗 클러스터로 데이터를 전송합니다. 이를 위해 클러스터가 있는 다음에서 수신할 AwsVpceIds AWS 리전 수 있도록 Snowflake 네트워크 규칙을 생성합니다. 자세한 내용은 Snowflake 사용 설명서네트워크 규칙 생성을 참조하세요.

VPC 클러스터가 있는 리전을 기반으로 사용할 엔드포인트 ID
AWS 리전 VPCE IDs
미국 동부(오하이오)

vpce-0d96cafcd96a50aeb

vpce-0cec34343d48f537b

미국 동부(버지니아 북부)

vpce-0b4d7e8478e141ba8

vpce-0b75cd681fb507352

vpce-01c03e63820ec00d8

vpce-0c2cfc51dc2882422

vpce-06ca862f019e4e056

vpce-020cda0cfa63f8d1c

vpce-0b80504a1a783cd70

vpce-0289b9ff0b5259a96

vpce-0d7add8628bd69a12

vpce-02bfb5966cc59b2af

vpce-09e707674af878bf2

vpce-049b52e96cc1a2165

vpce-0bb6c7b7a8a86cdbb

vpce-03b22d599f51e80f3

vpce-01d60dc60fc106fe1

vpce-0186d20a4b24ecbef

vpce-0533906401a36e416

vpce-05111fb13d396710e

vpce-0694613f4fbd6f514

vpce-09b21cb25fe4cc4f4

vpce-06029c3550e4d2399

vpce-00961862a21b033da

vpce-01620b9ae33273587

vpce-078cf4ec226880ac9

vpce-0d711bf076ce56381

vpce-066b7e13cbfca6f6e

vpce-0674541252d9ccc26

vpce-03540b88dedb4b000

vpce-0b1828e79ad394b95

vpce-0dc0e6f001fb1a60d

vpce-0d8f82e71a244098a

vpce-00e374d9e3f1af5ce

vpce-0c1e3d6631ddb442f

미국 서부(오레곤)

vpce-0f60f72da4cd1e4e7

vpce-0c60d21eb8b1669fd

vpce-01c4e3e29afdafbef

vpce-0cc6bf2a88da139de

vpce-0797e08e169e50662

vpce-033cbe480381b5c0e

vpce-00debbdd8f9eb10a5

vpce-08ec2f386c809e889

vpce-0856d14310857b545

유럽(프랑크푸르트)

vpce-068dbb7d71c9460fb

vpce-0a7a7f095942d4ec9

유럽(아일랜드)

vpce-06857e59c005a6276

vpce-04390f4f8778b75f2

vpce-011fd2b1f0aa172fd

아시아 태평양(도쿄)

vpce-06369e5258144e68a

vpce-0f2363cdb8926fbe8

아시아 태평양(싱가포르)

vpce-049cd46cce7a12d52

vpce-0e8965a1a4bdb8941

아시아 태평양(서울)

vpce-0aa444d9001e1faa1

vpce-04a49d4dcfd02b884

아시아 태평양(시드니)

vpce-048a60a182c52be63

vpce-03c19949787fd1859

아시아 태평양(뭄바이)

vpce-0d68cb822f6f0db68

vpce-0517d32692ffcbde2

유럽(런던)

vpce-0fd1874a0ba3b9374

vpce-08091b1a85e206029

남아메리카(상파울루)

vpce-065169b8144e4f12e

vpce-0493699f0e5762d63

캐나다(중부)

vpce-07e6ed81689d5271f

vpce-0f53239730541394c

유럽(파리)

vpce-09419680077e6488a

vpce-0ea81ba2c08140c14

아시아 태평양(오사카)

vpce-0a9f003e6a7e38c05

vpce-02886510b897b1c5a

유럽(스톡홀름)

vpce-0d96410833219025a

vpce-060a32f9a75ba969f

아시아 태평양(자카르타)

vpce-00add4b9a25e5c649

vpce-004ae2de34338a856

HTTP 엔드포인트 대상에 대한 Firehose 액세스 권한 부여

Amazon Data Firehose를 사용하여 모든 HTTP 엔드포인트 대상으로 데이터를 전송할 수 있습니다. 또한 Amazon Data Firehose는 해당 데이터를 사용자가 지정한 Amazon Simple Storage Service 버킷에 백업하며, 원하는 경우 Amazon S3 서버 측 암호화를 위해 사용자가 소유한 AWS KMS 키를 사용할 수 있습니다. 오류 로깅이 활성화된 경우 Amazon Data Firehose는 CloudWatch 로그 스트림으로 데이터 전송 오류를 전송합니다. 를 데이터 변환 AWS Lambda 에 사용할 수도 있습니다.

Firehose 스트림을 생성할 때 IAM 역할이 있어야 합니다. Amazon Data Firehose는 해당 IAM 역할을 수임하고 지정된 버킷, 키, CloudWatch 로그 그룹 및 스트림에 액세스할 수 있습니다.

다음 액세스 정책을 이용해 Amazon Data Firehose이 데이터 백업용으로 지정된 S3 버킷에 액세스할 수 있도록 합니다. S3 버킷을 소유하지 않은 경우, Amazon S3 작업 목록에 s3:PutObjectAcl을 추가하여, Amazon Data Firehose에서 전송한 객체에 대한 모든 액세스 권한을 버킷 소유자에게 부여합니다. 또한이 정책은 오류 로깅을 CloudWatch 위해에 액세스하고 데이터 변환을 위해에 대한 액세스 권한을 Amazon Data Firehose AWS Lambda 에 부여합니다. 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다.

중요

Amazon Data Firehose는 Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk 또는 Sumo Logic 등 지원되는 타사 서비스 공급자가 소유한 HTTP 엔드포인트 대상에 액세스하는 IAM 데를 사용하지 않습니다. 지원되는 타사 서비스 공급자가 소유한 지정된 HTTP 엔드포인트 대상에 액세스하려면 해당 서비스 공급자에게 문의하여 Amazon Data Firehose에서 해당 서비스로 데이터를 전송하는 데 필요한 API 키 또는 액세스 키를 얻습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

다른 AWS 서비스가 리소스에 액세스하도록 허용하는 방법에 대한 자세한 내용은 IAM 사용 설명서AWS 서비스에 권한을 위임할 역할 생성을 참조하세요 AWS .

중요

현재 Amazon Data Firehose는의 HTTP 엔드포인트로 데이터 전송을 NOT 지원합니다VPC.

Amazon에서 교차 계정 전송 MSK

Firehose 계정(예: 계정 B)에서 Firehose 스트림을 생성하고 소스가 다른 AWS 계정(계정 A)의 MSK 클러스터인 경우 다음 구성이 있어야 합니다.

계정 A:

  1. Amazon MSK 콘솔에서 프로비저닝된 클러스터를 선택한 다음 속성을 선택합니다.

  2. 네트워크 설정에서 편집을 선택하고 다중VPC 연결을 켭니다.

  3. 보안 설정에서 클러스터 정책 편집을 선택합니다.

    1. 클러스터에 아직 정책이 구성되어 있지 않은 경우 Firehose 서비스 보안 주체 포함Firehose 교차 계정 S3 전송 활성화를 선택합니다. AWS Management Console 는 적절한 권한이 있는 정책을 자동으로 생성합니다.

    2. 클러스터에 이미 구성된 정책이 있는 경우 기존 정책에 다음 권한을 추가하세요.

      { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20" // ARN of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*"//topic of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::233450236687:role/mskaasTestDeliveryRole" }, "Action": "kafka-cluster:DescribeGroup", "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }
  4. AWS 보안 주체에 계정 B의 보안 주체 ID를 입력하세요.

  5. 주제에 Firehose 스트림이 데이터를 수집할 때 사용할 Apache Kafka 주제를 지정하세요. Firehose 스트림이 생성되고 나면 이 주제를 업데이트할 수 없습니다.

  6. 변경 사항 저장(Save changes)을 선택합니다

계정 B:

  1. Firehose 콘솔에서 계정 B를 사용하여 Firehose 스트림 생성을 선택하세요.

  2. 소스에서 Amazon Managed Streaming for Apache Kafka를 선택하세요.

  3. 소스 설정Amazon Managed Streaming for Apache Kafka 클러스터에 계정 A에 Amazon MSK 클러스터ARN의를 입력합니다.

  4. 주제에 Firehose 스트림이 데이터를 수집할 때 사용할 Apache Kafka 주제를 지정하세요. Firehose 스트림이 생성되고 나면 이 주제를 업데이트할 수 없습니다.

  5. 전송 스트림 이름에 Firehose 스트림의 이름을 입력하세요.

Firehose 스트림을 생성할 때 계정 B에는 구성된 주제에 대한 교차 계정 Amazon MSK 클러스터에 대한 '읽기' 액세스 권한을 Firehose 스트림에 부여하는 IAM 역할(를 사용할 때 기본적으로 생성됨 AWS Management Console)이 있어야 합니다.

다음은 AWS Management Console에 의해 구성되는 내용입니다.

{ "Sid": "", "Effect": "Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/mskaas_test_topic" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeGroup" ], "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }

그 다음으로, 레코드 변환 및 레코드 형식 변환을 구성하는 옵션 단계를 완료할 수 있습니다. 자세한 내용은 (선택 사항) 레코드 변환 및 형식 변환 구성 섹션을 참조하세요.

Amazon S3 대상으로 교차 계정 전송

AWS CLI 또는 Amazon Data Firehose를 사용하여 다른 계정의 Amazon S3 대상과 함께 한 AWS 계정에서 Firehose 스트림을 APIs 생성할 수 있습니다. 다음 절차는 계정 A가 소유한 Firehose 스트림에서 계정 B가 소유한 Amazon S3 버킷으로 데이터를 전송하도록 구성하는 예를 보여줍니다.

  1. Amazon S3 대상에 대한 Firehose 액세스 권한 부여에 설명된 단계를 사용하여 계정 A에서 IAM 역할을 생성합니다.

    참고

    이 경우 액세스 정책에 지정된 Amazon S3 버킷은 계정 B가 소유합니다. 액세스 정책에서 Amazon S3 작업 목록에 s3:PutObjectAcl을 추가하여, Amazon Data Firehose에서 전송한 객체에 대한 모든 액세스 권한을 계정 B에 부여합니다. 교차 계정 전송 시 이 권한이 필요합니다. Amazon Data Firehose는 요청의 “x-amz-acl” 헤더를 “bucket-owner-full-control”로 설정합니다.

  2. 이전에 생성한 IAM 역할에서 액세스하도록 허용하려면 계정 B 하에서 S3 버킷 정책을 생성합니다. 다음 코드는 버킷 정책의 예입니다. 자세한 내용은 버킷 정책 및 사용자 정책 사용을 참조하세요.

    { "Version": "2012-10-17", "Id": "PolicyID", "Statement": [ { "Sid": "StmtID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountA-id:role/iam-role-name" }, "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
  3. 1단계에서 생성한 IAM 역할을 사용하여 계정 A에서 Firehose 스트림을 생성합니다.

OpenSearch 서비스 대상으로 교차 계정 전송

AWS CLI 또는 Amazon Data Firehose를 사용하여 다른 계정의 OpenSearch 서비스 대상이 있는 한 AWS 계정에서 Firehose 스트림을 APIs 생성할 수 있습니다. 다음 절차에서는 계정 A에서 Firehose 스트림을 생성하고 계정 B가 소유한 OpenSearch 서비스 대상으로 데이터를 전송하도록 구성하는 방법의 예를 보여줍니다.

  1. 퍼블릭 OpenSearch 서비스 대상에 대한 Firehose 액세스 권한 부여에 설명된 단계를 사용하여 계정 A에서 IAM 역할을 생성합니다.

  2. 이전 단계에서 생성한 IAM 역할에서 액세스를 허용하려면 계정 B에 OpenSearch 서비스 정책을 생성합니다. 다음은 예제JSON입니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-ID:role/firehose_delivery_role " }, "Action": "es:ESHttpGet", "Resource": [ "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_all/_settings", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_cluster/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_mapping/roletest", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/*/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/" ] } ] }
  3. 1단계에서 생성한 IAM 역할을 사용하여 계정 A에서 Firehose 스트림을 생성합니다. Firehose 스트림을 생성할 때 AWS CLI 또는 Amazon Data Firehose를 사용하고 DomainARN OpenSearch 서비스 대신 ClusterEndpoint 필드를 APIs 지정합니다.

참고

다른 AWS 계정의 OpenSearch 서비스 대상이 있는 한 계정에서 Firehose 스트림을 생성하려면 AWS CLI 또는 Amazon Data Firehose를 사용해야 합니다APIs. AWS Management Console 를 사용하여 이러한 종류의 교차 계정 구성을 생성할 수 없습니다.

태그를 사용하여 액세스 제어

IAM 정책의 선택적 Condition 요소(또는 Condition 블록)를 사용하여 태그 키 및 값을 기반으로 Amazon Data Firehose 작업에 대한 액세스를 미세 조정할 수 있습니다. 다음 섹션에서는 다양한 Amazon Data Firehose 작업에 대해 이를 수행하는 방법을 설명합니다. Condition 요소 및 요소 내에서 사용할 수 있는 연산자의 사용에 대한 자세한 내용은 IAM JSON 정책 요소: 조건을 참조하세요.

CreateDeliveryStream

CreateDeliveryStream 작업에는 aws:RequestTag 조건 키를 사용하세요. 다음 예에서 MyKeyMyValue는 태그에 대한 키와 그 값을 나타냅니다. 자세한 내용은 태그의 기본 사항 이해 단원을 참조하세요.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "firehose:CreateDeliveryStream", "firehose:TagDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } }] }

TagDeliveryStream

TagDeliveryStream 작업에는 aws:TagKeys 조건 키를 사용하세요. 다음 예에서 MyKey은 태그 키의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:TagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

UntagDeliveryStream

UntagDeliveryStream 작업에는 aws:TagKeys 조건 키를 사용하세요. 다음 예에서 MyKey은 태그 키의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

ListDeliveryStreams

ListDeliveryStreams에는 태그 기반 액세스를 사용할 수 없습니다.

기타 작업

CreateDeliveryStream, TagDeliveryStream, UntagDeliveryStream, ListDeliveryStreams 이외의 모든 Firehose 작업에는 aws:RequestTag 조건 키를 사용합니다. 다음 예에서 MyKeyMyValue는 태그에 대한 키와 그 값을 나타냅니다.

ListDeliveryStreams에서는 firehose:ResourceTag 조건 키를 사용하여 해당 Firehose 스트림의 태그를 기반으로 액세스를 제어합니다.

다음 예에서 MyKeyMyValue는 태그에 대한 키와 그 값을 나타냅니다. 이 정책은 이름이 MyKey이고 값이 MyValue인 태그를 가진 Data Firehose 스트림에만 적용됩니다. 리소스 태그를 기반으로 액세스를 제어하는 방법에 대한 자세한 내용은 IAM 사용 설명서태그를 사용하여 AWS 리소스에 대한 액세스 제어를 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "firehose:ResourceTag/MyKey": "MyValue" } } } ] }