

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

# 允許存取外部 Hive 中繼存放區的 Athena 資料連接器
<a name="hive-metastore-iam-access"></a>

本主題中的許可政策範例示範需要允許的動作，以及允許這些動作的資源。將類似的許可政策連接至 IAM 身分之前，請仔細檢查這些政策，並根據您的需求進行修改。
+  [Example Policy to Allow an IAM Principal to Query Data Using Athena Data Connector for External Hive Metastore](#hive-using-iam) 
+  [Example Policy to Allow an IAM Principal to Create an Athena Data Connector for External Hive Metastore](#hive-creating-iam) 

**Example - 允許 IAM 主體使用外部 Hive 中繼存放區的 Athena 資料連接器來查詢資料**  
除了授權完整存取 Athena 動作的 [AWS 受管政策：AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy)，下列政策也會連接至 IAM 委託人。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetLayerVersion",
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:layer:MyAthenaLambdaLayer:*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation"
        }
    ]
}
```


**許可說明**  

| 允許的動作 | 說明 | 
| --- | --- | 
|  <pre>"s3:GetBucketLocation",<br />"s3:GetObject",<br />"s3:ListBucket",<br />"s3:PutObject",<br />"s3:ListMultipartUploadParts",<br />"s3:AbortMultipartUpload"</pre>  |  `s3` 動作允許讀取和寫入指定為 `"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation"` 的資源，其中 *MyLambdaSpillLocation* 會識別一或多個叫用的 Lambda 函數的組態中所指定的溢出儲存貯體。只有在您使用 Lambda 層建立自訂執行時間相依性，以在部署時間減少函數成品規模時，才需要 *arn:aws:lambda:\$1:*MyAWSAcctId*:layer:*MyAthenaLambdaLayer*:\$1* 資源識別碼。最後面的 `*` 是層版本的萬用字元。  | 
|  <pre>"lambda:GetFunction",<br />"lambda:GetLayerVersion",<br />"lambda:InvokeFunction"</pre>  | 允許查詢叫用 Resource區塊中指定的 AWS Lambda 函數。例如，arn:aws:lambda:\$1:MyAWSAcctId:function:MyAthenaLambdaFunction，其中 MyAthenaLambdaFunction 會指定要叫用的 Lambda 函數的名稱。如範例所示，可以指定多個函數。 | 

**Example - 允許 IAM 主體建立外部 Hive 中繼存放區的 Athena 資料連接器**  
除了授權完整存取 Athena 動作的 [AWS 受管政策：AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy)，下列政策也會連接至 IAM 委託人。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:ListFunctions",
                "lambda:GetLayerVersion",
                "lambda:InvokeFunction",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:PublishLayerVersion",
                "lambda:DeleteLayerVersion",
                "lambda:UpdateFunctionConfiguration",
                "lambda:PutFunctionConcurrency",
                "lambda:DeleteFunctionConcurrency"
            ],
            "Resource": "arn:aws:lambda:*:111122223333: function: MyAthenaLambdaFunctionsPrefix*"
        }
    ]
}
```
 **許可說明**   
允許查詢叫用 `Resource` 區塊中指定 AWS Lambda 函數的 AWS Lambda 函數。例如，`arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction`，其中 *MyAthenaLambdaFunction* 會指定要叫用的 Lambda 函數的名稱。如範例所示，可以指定多個函數。