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

Amazon Data Firehose 스트림을 Amazon S3의 Apache Iceberg Table로 전송하는 작업은 미리 보기 중이며 변경될 수 있습니다.

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

Amazon Data Firehose를 통한 액세스 제어

다음 섹션에서는 Amazon Data Firehose 리소스와의 액세스를 제어하는 방법을 다룹니다. 다루는 정보에는 Firehose 스트림으로 데이터를 전송할 수 있도록 애플리케이션에 액세스 권한을 부여하는 방법이 포함됩니다. 또한 Amazon Data Firehose에 Amazon S3) 버킷, Amazon Redshift 클러스터 또는 Amazon 서비스 클러스터에 대한 액세스 권한을 부여하는 방법과 Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk 또는 Sumo Logic을 대상으로 사용하는 경우 필요한 액세스 권한을 부여하는 방법도 설명합니다. OpenSearch 마지막으로, 이 주제에서는 다른 곳에 속한 목적지로 데이터를 전송할 수 있도록 Amazon Data Firehose를 구성하는 방법에 대한 지침을 확인할 수 있습니다. AWS 계정. 이러한 모든 형태의 액세스를 관리하는 기술은 다음과 같습니다. AWS Identity and Access Management (IAM). 에 대한 IAM 자세한 내용은 무엇입니까IAM? 를 참조하십시오. .

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

애플리케이션에 Firehose 스트림에 대한 액세스 권한을 부여하려면 이 예제와 비슷한 정책을 사용하세요. 섹션을 수정하여 액세스 권한을 부여하는 개별 API 작업을 조정하거나 Action 섹션을 수정하여 모든 작업에 대한 액세스 권한을 부여할 수 있습니다. "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가 역할을 맡을 수 있도록 다음 신뢰 정책을 해당 역할에 연결하십시오. 정책을 편집하여 바꾸십시오.account-id 다음과 같이 AWS 계정 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 조건 컨텍스트 키를 사용하여 다음 계정에서 발생하는 Amazon Data Firehose 활동만 확인하도록 합니다. AWS 계정이 이 IAM 역할을 맡을 수 있습니다. IAM역할의 무단 사용을 방지하는 방법에 대한 자세한 내용은 사용 IAM설명서의 혼동되는 대리인 문제를 참조하십시오.

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

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

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

{ "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" }] }

Firehose에 액세스 권한을 부여하십시오. AWS Glue 데이터 형식 변환용

Firehose 스트림이 데이터 형식 변환을 수행하는 경우 Amazon 데이터 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": ["*"] }]

스키마 레지스트리에서 스키마를 가져오기 위한 권장 정책에는 리소스 제한이 없습니다. 자세한 내용은 의 IAM디시리얼라이저 예제를 참조하십시오. AWS Glue 개발자 안내서

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:::bucket-name", "arn:aws:s3:::bucket-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": [ "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:::bucket-name/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 서비스를 통해 다음 항목에 액세스할 수 있습니다. AWS 리소스에 대한 자세한 내용은 권한을 위임하기 위한 역할 생성을 참조하십시오. AWSIAM사용 설명서의 서비스.

Amazon Data Firehose에 다른 계정의 Amazon S3 대상에 대한 액세스 권한을 부여하는 방법을 알아보려면 을 참조하십시오. Amazon S3 목적지로의 교차 계정 전송

Firehose에 아파치 아이스버그 테이블 목적지에 대한 액세스 권한 부여

를 사용하여 Firehose 스트림과 Apache 아이스버그 테이블을 만들려면 먼저 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 로그 그룹 및 스트림에 데이터 전송 오류도 전송합니다. 이를 위해서는 로그 그룹과 로그 스트림 이름을 구성해야 합니다. 로그 그룹 및 로그 스트림 이름은 을 참조하십시오로그를 사용하여 Amazon 데이터 Firehose를 모니터링하십시오 CloudWatch .

  4. 인라인 정책에서 다음을 대체하십시오.DOC-EXAMPLE-BUCKET Amazon S3 버킷 이름 aws-account-id 및 유효한 지역 포함 AWS 계정 리소스의 수 및 지역.

    참고

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

  5. 정책을 생성한 후 IAM콘솔을 열고 다음과 같은 IAM 역할을 생성합니다. AWS 서비스신뢰할 수 있는 엔티티 유형으로.

  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 서버리스 워크그룹으로 로드합니다. 오류 로깅이 활성화된 경우 Amazon Data Firehose는 또한 CloudWatch 로그 그룹 및 스트림에 데이터 전송 오류를 전송합니다. Amazon Data Firehose는 지정된 Amazon Redshift 사용자 이름과 암호를 사용하여 프로비저닝된 클러스터 또는 Amazon Redshift 서버리스 워크그룹에 액세스하고, 역할을 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:::bucket-name", "arn:aws:s3:::bucket-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:::bucket-name/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 서비스를 통해 다음 항목에 액세스할 수 있습니다. AWS 리소스에 대한 자세한 내용은 권한을 위임하기 위한 역할 생성을 참조하십시오. AWSIAM사용 설명서의 서비스.

VPCAmazon Redshift 프로비저닝 클러스터 또는 Amazon Redshift 서버리스 워크그룹에 대한 액세스

Amazon Redshift 프로비저닝 클러스터 또는 Amazon Redshift 서버리스 워크그룹이 가상 프라이빗 클라우드 (VPC) 에 있는 경우 퍼블릭 IP 주소를 사용하여 공개적으로 액세스할 수 있어야 합니다. 또한 Amazon 데이터 파이어호스 IP 주소의 차단을 해제하여 Amazon Redshift 프로비저닝 클러스터 또는 Amazon Redshift 서버리스 워크그룹에 대한 액세스 권한을 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 시작 가이드클러스터에 대한 액세스 권한 부여 단계를 참조하세요.

Firehose에 공용 OpenSearch 서비스 대상에 대한 액세스 권한 부여

OpenSearch 서비스 대상을 사용하는 경우 Amazon Data Firehose는 데이터를 OpenSearch 서비스 클러스터로 전송하고 동시에 실패한 문서 또는 모든 문서를 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:::bucket-name", "arn:aws:s3:::bucket-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:::bucket-name/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 서비스를 통해 다음 항목에 액세스할 수 있습니다. AWS 리소스에 대한 자세한 내용은 권한을 위임하기 위한 역할 생성을 참조하십시오. AWSIAM사용 설명서의 서비스.

Amazon Data Firehose에 다른 계정의 OpenSearch 서비스 클러스터에 대한 액세스 권한을 부여하는 방법을 알아보려면 을 참조하십시오. 서비스 목적지로의 교차 계정 전송 OpenSearch

Firehose에 OpenSearch 서비스 대상에 대한 액세스 권한을 부여하십시오. VPC

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

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

중요

Firehose 스트림을 만든 후에는 이러한 권한을 취소하지 마세요. 이러한 권한을 취소하면 서비스가 쿼리 또는 업데이트를 시도할 때마다 Firehose 스트림의 성능이 저하되거나 OpenSearch 서비스 도메인에 대한 데이터 전송이 중지됩니다. ENIs

중요

VPC비공개로 데이터를 목적지로 전송하기 위한 서브넷을 지정할 때는 선택한 서브넷에 충분한 수의 여유 IP 주소가 있는지 확인하세요. 지정된 서브넷에 사용 가능한 무료 IP 주소가 없는 경우 Firehose는 VPC 사설에서 데이터 전송을 위해 만들거나 ENIs 추가할 수 없으며 전송이 저하되거나 실패합니다.

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

Firehose에 공개 OpenSearch 서버리스 대상에 대한 액세스 권한 부여

OpenSearch 서버리스 대상을 사용하는 경우 Amazon Data Firehose는 서버리스 컬렉션에 데이터를 전송하고 동시에 실패한 문서 또는 모든 문서를 S3 버킷에 백업합니다. OpenSearch 오류 로깅이 활성화된 경우 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:::bucket-name", "arn:aws:s3:::bucket-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:::bucket-name/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 서비스를 통해 다음 항목에 액세스할 수 있습니다. AWS 리소스에 대한 자세한 내용은 권한을 위임하기 위한 역할 생성을 참조하십시오. AWSIAM사용 설명서의 서비스.

Firehose에 OpenSearch 서버리스 대상에 대한 액세스 권한을 부여하십시오. VPC

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

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

중요

Firehose 스트림을 만든 후에는 이러한 권한을 취소하지 마세요. 이러한 권한을 취소하면 서비스가 쿼리 또는 업데이트를 시도할 때마다 Firehose 스트림의 성능이 저하되거나 OpenSearch 서비스 도메인에 대한 데이터 전송이 중지됩니다. ENIs

중요

VPC비공개로 데이터를 목적지로 전송하기 위한 서브넷을 지정할 때는 선택한 서브넷에 충분한 수의 여유 IP 주소가 있는지 확인하세요. 지정된 서브넷에 사용 가능한 무료 IP 주소가 없는 경우 Firehose는 VPC 사설에서 데이터 전송을 위해 만들거나 ENIs 추가할 수 없으며 전송이 저하되거나 실패합니다.

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

Firehose에 스플렁크 대상에 대한 액세스 권한 부여

Splunk 대상을 사용하는 경우 Amazon Data Firehose는 HTTP Splunk 이벤트 수집기 HEC () 엔드포인트로 데이터를 전송합니다. 또한 지정한 Amazon S3 버킷에 해당 데이터를 백업하며, 선택적으로 다음을 사용할 수 있습니다. AWS KMS Amazon S3 서버 측 암호화를 위해 소유하고 있는 키입니다. 오류 로깅이 활성화된 경우 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에서 제공하는 객체에 대한 전체 액세스 권한이 버킷 소유자에게 부여됩니다. 또한 이 정책은 Amazon Data CloudWatch Firehose에 오류 로깅 및 다음을 위한 액세스 권한을 부여합니다. AWS Lambda 데이터 변환용. 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다. Amazon 데이터 Firehose는 IAM Splunk에 액세스하는 데 사용하지 않습니다. 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:::bucket-name", "arn:aws:s3:::bucket-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:::bucket-name/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 서비스를 통해 다음 항목에 액세스할 수 있습니다. AWS 리소스에 대한 자세한 내용은 권한을 위임하기 위한 역할 생성을 참조하십시오. AWSIAM사용 설명서의 서비스.

에서 Splunk에 액세스하기 VPC

Splunk 플랫폼이 a VPC 내에 있는 경우 퍼블릭 IP 주소를 사용하여 공개적으로 액세스할 수 있어야 합니다. 또한 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
유럽(스톡홀름) 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를 사용하여 VPC 플로우 로그를 스플렁크에 수집

흐름 로그를 구독하고, Firehose에 게시하고, 지원되는 대상으로 VPC VPC 흐름 로그를 보내는 방법에 대해 자세히 알아보려면 Amazon Data Firehose를 사용하여 Splunk에 VPC 흐름 로그 수집을 참조하십시오.

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

하위 집합은 없습니다. AWS 대상이 HTTP 엔드포인트 또는 Snowflake 퍼블릭 클러스터인 경우 Amazon Data Firehose에만 적용되는 IP 주소 범위입니다.

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

참고

알림이 항상 같은 IP 주소에서 오는 것은 아닙니다. AWS 지역은 관련 항목입니다. 다음을 포함해야 합니다. AWS 모든 지역의 IP 주소 범위.

Firehose에게 눈송이 목적지 접근 권한 부여

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

Firehose 스트림을 만들려면 먼저 IAM 역할이 있어야 합니다. Firehose는 이 IAM 역할을 맡고 지정된 버킷, 키, CloudWatch 로그 그룹 및 스트림에 대한 액세스 권한을 얻습니다. 다음 액세스 정책을 사용하여 Firehose가 S3 버킷에 액세스할 수 있도록 설정합니다. S3 버킷을 소유하지 않은 경우 Amazon Simple Storage Service 작업 목록에 추가하십시오s3:PutObjectAcl. 그러면 버킷 소유자에게 Firehose에서 제공하는 객체에 대한 전체 액세스 권한이 부여됩니다. 또한 이 정책은 Firehose에 오류 로깅을 CloudWatch 위한 액세스 권한을 부여합니다. 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다. Firehose는 IAM 눈송이에 액세스하는 데 사용하지 않습니다. 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:::bucket-name", "arn:aws:s3:::bucket-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:::bucket-name/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 리소스에 대한 자세한 내용은 권한을 위임하기 위한 역할 생성을 참조하십시오. AWSIAM사용 설명서의 서비스.

에서 스노우플레이크에 접속하기 VPC

Snowflake 클러스터에 비공개 링크가 활성화되어 있는 경우 Firehose는 VPC 엔드포인트를 사용하여 공용 인터넷을 거치지 않고 사설 클러스터에 데이터를 전달합니다. 이를 위해 Snowflake 네트워크 규칙을 만들어 다음과 같은 데이터 수신을 허용하세요. AwsVpceIds AWS 리전 클러스터가 켜져 있습니다. 자세한 내용은 Snowflake 사용 설명서에서 네트워크 규칙 생성을 참조하십시오.

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

vpce-0d96carcd96a50aeb

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-066b7e13cbfca6e

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

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

Amazon Data Firehose를 사용하여 모든 HTTP 엔드포인트 대상으로 데이터를 전송할 수 있습니다. 또한 Amazon Data Firehose는 지정된 Amazon S3 버킷에 해당 데이터를 백업하며, 사용자는 선택적으로 다음을 사용할 수 있습니다. AWS KMS Amazon S3 서버 측 암호화를 위해 소유하고 있는 키입니다. 오류 로깅이 활성화된 경우 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에서 제공하는 객체에 대한 전체 액세스 권한이 버킷 소유자에게 부여됩니다. 또한 이 정책은 Amazon Data CloudWatch Firehose에 오류 로깅 및 다음을 위한 액세스 권한을 부여합니다. AWS Lambda 데이터 변환용. 정책에는 Amazon Kinesis Data Streams에 대한 액세스를 허용하는 명령문도 있습니다. Kinesis Data Streams를 데이터 소스로 사용하지 않는 경우, 그 명령문을 제거할 수 있습니다.

중요

Amazon Data Firehose는 Datadog, Dynatrace, MongoDB, New Relic, Splunk 또는 Sumo Logic 등 지원되는 타사 서비스 공급자가 소유한 HTTP 엔드포인트 대상에 액세스하는 데 사용하지 IAM 않습니다. LogicMonitor 지원되는 타사 서비스 공급자가 소유한 지정된 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:::bucket-name", "arn:aws:s3:::bucket-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:::bucket-name/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 서비스를 통해 다음 항목에 액세스할 수 있습니다. AWS 리소스에 대한 자세한 내용은 권한을 위임하기 위한 역할 생성을 참조하십시오. AWSIAM사용 설명서의 서비스.

중요

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

Amazon에서 계정 간 배송 MSK

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

계정 A:

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

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

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

    1. 클러스터에 아직 정책이 구성되어 있지 않은 경우 Firehose 서비스 보안 주체 포함Firehose 교차 계정 S3 전송 활성화를 선택합니다. The 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. 소스 설정에서 Apache Kafka용 아마존 매니지드 스트리밍 클러스터의 경우 계정 A에 아마존 ARN 클러스터의 MSK 계정을 입력합니다.

  4. 주제 아래에서 Firehose 스트림에서 데이터를 수집하려는 Apache Kafka 주제를 지정합니다. Firehose 스트림이 생성되면 이 주제를 업데이트할 수 없습니다.

  5. 전송 스트림 이름에서 Firehose 스트림의 이름을 지정합니다.

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

다음은 회사에서 구성하는 내용입니다. 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를 사용하여 Firehose APIs 스트림을 하나로 만들 수도 있습니다. AWS 다른 계정에 Amazon S3 목적지가 있는 계정. 다음 절차는 계정 A가 소유한 Firehose 스트림을 계정 B가 소유한 Amazon S3 버킷으로 데이터를 전송하도록 구성하는 예를 보여줍니다.

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

    참고

    이 경우 액세스 정책에 지정된 Amazon S3 버킷은 계정 B가 소유합니다. Amazon Data Firehose에서 제공하는 객체에 대한 전체 액세스 권한을 계정 B에 부여하는 액세스 정책의 Amazon S3 작업 목록에 s3:PutObjectAcl 추가해야 합니다. 교차 계정 전송 시 이 권한이 필요합니다. 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:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
  3. 1단계에서 만든 IAM 역할을 사용하여 계정 A에서 Firehose 스트림을 생성합니다.

서비스 목적지로의 교차 계정 전송 OpenSearch

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

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

  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를 APIs 사용하고 서비스 대신 ClusterEndpoint DomainARN 필드를 지정하십시오. OpenSearch

참고

Firehose 스트림을 하나로 만들려면 AWS 다른 계정에 OpenSearch 서비스 대상이 있는 계정의 경우 다음을 사용해야 합니다. AWS CLI 또는 아마존 데이터 파이어호스APIs. 사용할 수 없습니다. AWS Management Console 이런 종류의 교차 계정 구성을 만들려면

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

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

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 UntagDeliveryStreamListDeliveryStreams, 및 이외의 모든 Firehose 작업에는 aws:RequestTag 조건 키를 사용하십시오. 다음 예에서 MyKeyMyValue는 태그에 대한 키와 그 값을 나타냅니다.

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

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

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

주의 javascript가 브라우저에서 비활성화되거나 사용이 불가합니다.

AWS 설명서를 사용하려면 Javascript가 활성화되어야 합니다. 지침을 보려면 브라우저의 도움말 페이지를 참조하십시오.