

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 3：接受資源共享 ARN 邀請
<a name="resource-share-arn"></a>

本主題說明使用 AWS CloudFormation 範本接受資源共用 ARN 邀請的步驟，這是啟用 Detective 與 Security Lake 整合之前的必要步驟。

若要從 Security Lake 存取原始資料日誌，您必須接受來自 Security Lake 管理員所建立的 Security Lake 帳戶的資源共享邀請。您還需要設定跨帳戶資料表共享的 AWS Lake Formation 許可。此外，您必須建立 Amazon Simple Storage Service (Amazon S3) 儲存貯體，以接收原始查詢日誌。

在此下一個步驟中，您將使用 AWS CloudFormation 範本建立堆疊：接受資源共享 ARN 邀請、建立必要的 AWS Glue 編目程式 資源，以及授予 AWS Lake Formation 管理員許可。

**接受資源共享 ARN 邀請並啟用整合**

1. 使用 CloudFormation 範本建立新 CloudFormation 堆疊。如需詳細資訊，請參閱[使用 CloudFormation 範本建立堆疊](#cloud-formation-template)。

1. 建立堆疊完成後，請選擇**啟用整合**以啟用 Detective 與 Security Lake 的整合。

## 使用 CloudFormation 範本建立堆疊
<a name="cloud-formation-template"></a>

Detective 提供 CloudFormation 範本，可用來設定為 Security Lake 訂閱者建立和管理查詢存取所需的參數。

**步驟 1：建立 AWS CloudFormation 服務角色**

您必須建立 CloudFormation 服務角色，才能使用 CloudFormation 範本建立堆疊。若您沒有建立服務角色的所需許可，請連絡 Detective 管理員帳戶的管理員。如需 AWS CloudFormation 服務角色的詳細資訊，請參閱 [AWS CloudFormation 服務角色](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html)。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇 **Roles** (角色)，然後選擇 **Create role** (建立角色)。

1. 對於 **Select trusted entity** (選取信任的實體) 區段，選擇 **AWS service** (AWS 服務)。

1. 選擇 **CloudFormation**。然後選擇**下一步**。

1. 輸入角色的名稱。例如 `CFN-DetectiveSecurityLakeIntegration`。

1. 將以下內嵌政策附加到角色。將 取代`<Account ID>`為 AWS 您的帳戶 ID。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CloudFormationPermission",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:aws:transform/*"
            ]
        },
        {
            "Sid": "IamPermissions",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy",
                "iam:UpdateAssumeRolePolicy",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:CreatePolicy",
                "iam:DeletePolicy",
                "iam:PassRole",
                "iam:GetRole",
                "iam:GetRolePolicy"
            ],
            "Resource": [
                 "arn:aws:iam::{{111122223333}}:role/*-ResourceShareAcceptorLamb-*",
                 "arn:aws:iam::{{111122223333}}:role/*-SsmParametersLambdaRole-*",
                 "arn:aws:iam::{{111122223333}}:role/*-GlueDatabaseLambdaRole-*",
                 "arn:aws:iam::{{111122223333}}:role/*-GlueTablesLambdaRole-*",
                 "arn:aws:iam::{{111122223333}}:policy/*"
            ]
        },
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket*",
                "s3:PutBucket*",
                "s3:GetBucket*",
                "s3:GetObject",
                "s3:PutEncryptionConfiguration",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "LambdaPermissions",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction",
                "lambda:TagResource",
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:{{111122223333}}:function:*"
            ]
        },
        {
            "Sid": "CloudwatchPermissions",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:DeleteLogGroup",
                "logs:DescribeLogGroups"
            ],
            "Resource": "arn:aws:logs:*:{{111122223333}}:log-group:*"
        },
        {
            "Sid": "KmsPermission",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
        }
    ]
}
```

------

**步驟 2：將許可新增至您的 IAM 主體**。

您需要以下許可，才能使用您在上述步驟中建立的 CloudFormation 服務角色建立堆疊。將以下 IAM 政策新增至您旨在用來傳遞 CloudFormation 服務角色的 IAM 主體。您將擔任此 IAM 主體以建立堆疊。若您沒有新增 IAM 政策所需的許可，請聯絡 Detective 管理員帳戶的管理員。

**注意**  
在以下政策中，此政策中所使用的 `CFN-DetectiveSecurityLakeIntegration` 是您在上一個 `Creating an AWS CloudFormation` 服務角色步驟中建立的角色。如果不同，請將其變更為您在上一個步驟中輸入的角色名稱。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PassRole",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::{{111122223333}}:role/CFN-DetectiveSecurityLakeIntegration"
        },
        {
            "Sid": "RestrictCloudFormationAccess",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:UpdateStack"
            ],
            "Resource": "arn:aws:cloudformation:*:{{111122223333}}:stack/*",
            "Condition": {
                "StringEquals": {
                    "cloudformation:RoleArn": [
                        "arn:aws:iam::{{111122223333}}:role/CFN-DetectiveSecurityLakeIntegration"
                    ]
                }
            }
        },
        {
            "Sid": "CloudformationDescribeStack",
            "Effect": "Allow",
            "Action": [
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "cloudformation:GetStackPolicy"
            ],
            "Resource": "arn:aws:cloudformation:*:{{111122223333}}:stack/*"
        },
        {
            "Sid": "CloudformationListStacks",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListStacks"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CloudWatchPermissions",
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:logs:*:{{111122223333}}:log-group:*"
        }
    ]
}
```

------

**步驟 3：在 CloudFormation 主控台中指定自訂值**

1. 從 Detective 前往 AWS CloudFormation 主控台。

1. (選用) 輸入**堆疊名稱**。堆疊名稱會自動填入。您可以將堆疊名稱變更為與現有堆疊名稱不衝突的名稱。

1. 輸入以下**參數**：
   + **AthenaResultsBucket**：如果您未輸入值，則此範本會產生 Amazon S3 儲存貯體。如果您想要使用自己的儲存貯體，請輸入儲存貯體名稱來儲存 Athena 查詢結果。若您使用自己的儲存貯體，請確保儲存貯體與資源共享 ARN 位於相同的區域。如果您使用自己的儲存貯體，請確定您選擇的 `LakeFormationPrincipals` 具有將物件寫入儲存貯體和從中讀取物件的許可。如需儲存貯體許可的詳細資訊，請參閱《Amazon Athena 使用者指南》中的[查詢結果和最近查詢](https://docs.aws.amazon.com/athena/latest/ug/querying.html)。
   + **DTRegion**：此欄位已預先填入。請勿變更此欄位中的值。
   + **LakeFormationPrincipals** – 輸入您要授予使用 Security Lake 整合之存取權的 IAM 主體的 ARN （例如 IAM 角色 ARN)，並以逗號分隔。這些可能是使用 Detective 的安全分析師和安全工程師。

     您僅能使用先前在步驟 [`Step 2: Add the required IAM permissions to your account]` 中連接 IAM 許可的 IAM 主體。
   + **ResourceShareARN**：此欄位已預先填入。請勿變更此欄位中的值。

1. **許可**

   **IAM 角色**：選取您在步驟 `Creating an AWS CloudFormation Service Role` 步驟中建立的角色。或者，如果您目前的 IAM 角色在步驟 `Creating an AWS CloudFormation Service Role` 中具有所有必要許可，則可以將其留空。

1. 檢閱並勾選所有**我認可**方塊，然後按一下**建立堆疊**按鈕。如需詳細資訊，請檢閱以下將建立的 IAM 資源。

```
* ResourceShareAcceptorCustomResourceFunction
    - ResourceShareAcceptorLambdaRole
    - ResourceShareAcceptorLogsAccessPolicy
* SsmParametersCustomResourceFunction
    - SsmParametersLambdaRole
    - SsmParametersLogsAccessPolicy
* GlueDatabaseCustomResourceFunction
    - GlueDatabaseLambdaRole
    - GlueDatabaseLogsAccessPolicy
* GlueTablesCustomResourceFunction
    - GlueTablesLambdaRole
    - GlueTablesLogsAccessPolicy
```

**步驟 4：將 Amazon S3 儲存貯體政策新增至 中的 IAM 主體 `LakeFormationPrincipals` **

(選用) 如果您讓此範本為您產生 `AthenaResultsBucket`，則必須將以下政策附加至 `LakeFormationPrincipals` 中的 IAM 主體。

```
{
  "Sid": "S3ObjectPermissions",
  "Effect": "Allow",
  "Action": [
    "s3:GetObject",
    "s3:PutObject"
  ],
  "Resource": [
    "arn:aws:s3:::<athena-results-bucket>",
    "arn:aws:s3:::<athena-results-bucket>/*"
  ]
}
```

以 `AthenaResultsBucket` 名稱取代 `athena-results-bucket`  。`AthenaResultsBucket`您可以在 AWS CloudFormation 主控台上找到 ：

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 按一下堆棧。

1. 按一下**資源**標籤。

1. 搜尋邏輯 ID `AthenaResultsBucket` 並複製其實體 ID。