

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 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 管理者権限の付与のスタックを作成します。

**Resource Share ARN の招待を受け入れ、統合を有効にするには**

1. CloudFormation テンプレートを使用して新しい CloudFormation スタックを作成します。詳細については、[CloudFormation テンプレートを使用したスタックの作成](#cloud-formation-template)を参照してください。

1. スタックの作成が完了したら、**統合を有効にする** を選択して、Security Lake との Detective 統合を有効にします。

## 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://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. IAM コンソールのナビゲーションペインで、**[ロール]**、**[ロールを作成]** を選択します。

1. **[Select trusted entity]** (信頼されたエンティティの選択) で、**[AWS のサービス]** を選択します。

1. **CloudFormation** を選択してください。その後、**[Next]** を選択します。

1. ロールの名前を入力します。例えば、`CFN-DetectiveSecurityLakeIntegration`。

1. 以下のインラインポリシーをロールにアタッチします。を AWS アカウント ID `<Account 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 サービスロールを使用してスタックを作成するには、次のアクセス権限が必要です。CloudFormation サービスロールを渡すために使用する予定の IAM プリンシパルに、次の 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: の IAM プリンシパルに Amazon S3 バケットポリシーを追加する `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://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソールを開きます。

1. スタックをクリックします。

1. **[リソース]** タブをクリックします。

1. 論理 ID `AthenaResultsBucket` を検索し、その物理 ID をコピーします。