本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 1:建立 Firehose 傳送串流
重要
在完成下列步驟之前,您必須使用存取政策,以便 Firehose 可以存取您的 Amazon S3 儲存貯體。如需詳細資訊,請參閱 Amazon 資料 Firehose 開發人員指南中的控制存取。
必須在日誌資料收件人帳戶中完成本區段 (步驟 1) 中的所有步驟。
在以下範例命令中使用美國東部 (維吉尼亞北部)。請將此區域替換成您部署的正確區域。
若要建立要用作目的地的 Firehose 傳送串流
建立 Amazon S3 儲存貯體:
aws s3api create-bucket --bucket firehose-test-bucket1 --create-bucket-configuration LocationConstraint=us-east-1
建立授與 Firehose 將資料放入值區之權限的IAM角色。
首先,使用文字編輯器在檔案
~/TrustPolicyForFirehose.json
中建立信任政策。{ "Statement": { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId":"222222222222" } } } }
建立IAM角色,指定您剛才建立的信任原則檔案。
aws iam create-role \ --role-name FirehosetoS3Role \ --assume-role-policy-document file://~/TrustPolicyForFirehose.json
此命令的輸出看起來如下:記下角色名稱和角色ARN。
{ "Role": { "Path": "/", "RoleName": "FirehosetoS3Role", "RoleId": "AROAR3BXASEKW7K635M53", "Arn": "arn:aws:iam::222222222222:role/FirehosetoS3Role", "CreateDate": "2021-02-02T07:53:10+00:00", "AssumeRolePolicyDocument": { "Statement": { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "222222222222" } } } } } }
建立權限原則,以定義 Firehose 可在您帳戶中執行的動作。
首先,使用文字編輯器在名為
~/PermissionsForFirehose.json
的檔案中建立下列許可政策。根據您的使用案例,可能需要為此檔案新增更多許可。{ "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::firehose-test-bucket1", "arn:aws:s3:::firehose-test-bucket1/*" ] }] }
輸入下列命令,將您剛建立的權限原則與IAM角色產生關聯。
aws iam put-role-policy --role-name FirehosetoS3Role --policy-name Permissions-Policy-For-Firehose-To-S3 --policy-document file://~/PermissionsForFirehose.json
輸入下列命令以建立 Firehose 傳送串流。Replace (取代)
my-role-arn
以及my-bucket-arn
為您的部署使用正確的值。aws firehose create-delivery-stream \ --delivery-stream-name 'my-delivery-stream' \ --s3-destination-configuration \ '{"RoleARN": "arn:aws:iam::222222222222:role/FirehosetoS3Role", "BucketARN": "arn:aws:s3:::firehose-test-bucket1"}'
輸出格式應類似以下內容:
{ "DeliveryStreamARN": "arn:aws:firehose:us-east-1:222222222222:deliverystream/my-delivery-stream" }