Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Negli esempi di policy di autorizzazione in questo argomento vengono illustrate le operazioni consentite obbligatorie e le risorse per le quali sono consentite. Esamina attentamente queste politiche e modificale in base alle tue esigenze prima di allegare politiche di autorizzazione simili alle IAM identità.
Esempio — Consente a un IAM principale di eseguire e restituire query che contengono un'istruzione Athena UDF
La seguente politica di autorizzazioni basata sull'identità consente le azioni richieste da un utente o da un altro IAM principale per eseguire query che utilizzano istruzioni Athena. UDF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"athena:StartQueryExecution",
"lambda:InvokeFunction",
"athena:GetQueryResults",
"s3:ListMultipartUploadParts",
"athena:GetWorkGroup",
"s3:PutObject",
"s3:GetObject",
"s3:AbortMultipartUpload",
"athena:StopQueryExecution",
"athena:GetQueryExecution",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:athena:*:MyAWSAcctId
:workgroup/MyAthenaWorkGroup
",
"arn:aws:s3:::MyQueryResultsBucket
/*",
"arn:aws:lambda:*:MyAWSAcctId
:function:OneAthenaLambdaFunction
",
"arn:aws:lambda:*:MyAWSAcctId
:function:AnotherAthenaLambdaFunction
"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "athena:ListWorkGroups",
"Resource": "*"
}
]
}
Operazioni consentite | Spiegazione |
---|---|
|
Autorizzazioni Athena richieste per eseguire query nel gruppo di lavoro |
|
|
|
Consente alle query di richiamare le AWS Lambda funzioni specificate nel blocco. Resource Ad esempio, dove arn:aws:lambda:*: MyAthenaLambdaFunction specifica il nome di una funzione Lambda da richiamare. Più funzioni possono essere specificate come mostrato nell'esempio. |
Esempio — Consenti a un IAM preside di creare un'Athena UDF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"lambda:CreateFunction",
"lambda:ListVersionsByFunction",
"iam:CreateRole",
"lambda:GetFunctionConfiguration",
"iam:AttachRolePolicy",
"iam:PutRolePolicy",
"lambda:PutFunctionConcurrency",
"iam:PassRole",
"iam:DetachRolePolicy",
"lambda:ListTags",
"iam:ListAttachedRolePolicies",
"iam:DeleteRolePolicy",
"lambda:DeleteFunction",
"lambda:GetAlias",
"iam:ListRolePolicies",
"iam:GetRole",
"iam:GetPolicy",
"lambda:InvokeFunction",
"lambda:GetFunction",
"lambda:ListAliases",
"lambda:UpdateFunctionConfiguration",
"iam:DeleteRole",
"lambda:UpdateFunctionCode",
"s3:GetObject",
"lambda:AddPermission",
"iam:UpdateRole",
"lambda:DeleteFunctionConcurrency",
"lambda:RemovePermission",
"iam:GetRolePolicy",
"lambda:GetPolicy"
],
"Resource": [
"arn:aws:lambda:*:111122223333
:function:MyAthenaLambdaFunctionsPrefix
*",
"arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m
/*",
"arn:aws:iam::*:role/RoleName
",
"arn:aws:iam::111122223333
:policy/*"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"cloudformation:CreateUploadBucket",
"cloudformation:DescribeStackDriftDetectionStatus",
"cloudformation:ListExports",
"cloudformation:ListStacks",
"cloudformation:ListImports",
"lambda:ListFunctions",
"iam:ListRoles",
"lambda:GetAccountSettings",
"ec2:DescribeSecurityGroups",
"cloudformation:EstimateTemplateCost",
"ec2:DescribeVpcs",
"lambda:ListEventSourceMappings",
"cloudformation:DescribeAccountLimits",
"ec2:DescribeSubnets",
"cloudformation:CreateStackSet",
"cloudformation:ValidateTemplate"
],
"Resource": "*"
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": "cloudformation:*",
"Resource": [
"arn:aws:cloudformation:*:111122223333
:stack/aws-serverless-repository-MyCFStackPrefix
*/*",
"arn:aws:cloudformation:*:111122223333
:stack/serverlessrepo-MyCFStackPrefix
*/*",
"arn:aws:cloudformation:*:*:transform/Serverless-*",
"arn:aws:cloudformation:*:111122223333
:stackset/aws-serverless-repository-MyCFStackPrefix
*:*",
"arn:aws:cloudformation:*:111122223333
:stackset/serverlessrepo-MyCFStackPrefix
*:*"
]
},
{
"Sid": "VisualEditor3",
"Effect": "Allow",
"Action": "serverlessrepo:*",
"Resource": "arn:aws:serverlessrepo:*:*:applications/*"
},
{
"Sid": "ECR",
"Effect": "Allow",
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
],
"Resource": "arn:aws:ecr:*:*:repository/*"
}
]
}
Operazioni consentite | Spiegazione |
---|---|
|
Consente la creazione e la gestione delle funzioni Lambda elencate come risorse. Nell'esempio, viene utilizzato un prefisso di nome nell'identificatore |
|
Consente la lettura di un bucket che AWS Serverless Application Repository richiede quanto specificato dall'identificatore di risorsa. arn:aws:s3:::awsserverlessrepo-changesets- |
|
Consente la creazione e la gestione degli AWS CloudFormation stack specificati dalla risorsa |
|
Consente la ricerca, la visualizzazione, la pubblicazione e l'aggiornamento delle applicazioni nel campo specificato dall' AWS Serverless Application Repository identificatore di risorsa. arn:aws:serverlessrepo:*:*:applications/* |