Skip to content

Commit e9e3c1b

Browse files
committed
move policies
1 parent 8ce4f73 commit e9e3c1b

File tree

2 files changed

+74
-78
lines changed
  • terraform/modules/aws-sagemaker-serverless-hf-pytorch-inference-model-deployment

2 files changed

+74
-78
lines changed

terraform/modules/aws-sagemaker-serverless-hf-pytorch-inference-model-deployment/main.tf

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,10 @@
11
data "aws_caller_identity" "current" {}
22

3-
data "aws_region" "current" {}
4-
53
locals {
6-
account_id = data.aws_caller_identity.current.account_id
74
ecr_image_name = "763104351884.dkr.ecr.${data.aws_region.current.name}.amazonaws.com/huggingface-pytorch-inference"
85
ecr_image_tag = "${var.pytorch_version}-transformers${var.transformers_version}-cpu-${var.python_version}-ubuntu${var.ubuntu_version}"
96
}
107

11-
12-
resource "aws_iam_role" "model_execution_role" {
13-
name = "sagemaker-${var.model_name}-execution-role"
14-
15-
assume_role_policy = jsonencode({
16-
Version = "2012-10-17"
17-
Statement = [
18-
{
19-
Effect = "Allow"
20-
Principal = {
21-
Service = "sagemaker.amazonaws.com"
22-
}
23-
Action = "sts:AssumeRole"
24-
},
25-
]
26-
})
27-
}
28-
29-
resource "aws_iam_policy" "s3_policy" {
30-
name = "sagemaker-${var.model_name}-s3-policy"
31-
32-
policy = jsonencode({
33-
"Version" : "2012-10-17",
34-
"Statement" : [
35-
{
36-
"Effect" : "Allow",
37-
"Action" : [
38-
"s3:GetObject",
39-
"s3:ListBucket",
40-
],
41-
"Resource" : "arn:aws:s3:::${var.model_bucket_name}/*"
42-
}
43-
]
44-
})
45-
}
46-
47-
resource "aws_iam_policy" "ecr_policy" {
48-
name = "sagemaker-${var.model_name}-ecr-policy"
49-
50-
policy = jsonencode({
51-
"Version" : "2012-10-17",
52-
"Statement" : [
53-
{
54-
"Effect" : "Allow",
55-
"Action" : [
56-
"ecr:GetAuthorizationToken",
57-
"ecr:BatchCheckLayerAvailability",
58-
"ecr:GetDownloadUrlForLayer",
59-
"ecr:GetRepositoryPolicy",
60-
"ecr:DescribeRepositories",
61-
"ecr:ListImages",
62-
"ecr:DescribeImages",
63-
"ecr:BatchGetImage",
64-
"ecr:GetLifecyclePolicy",
65-
"ecr:GetLifecyclePolicyPreview",
66-
"ecr:ListTagsForResource",
67-
"ecr:DescribeImageScanFindings",
68-
],
69-
"Resource" : "arn:aws:ecr:${data.aws_region.current.name}:*:repository/*"
70-
}
71-
]
72-
})
73-
}
74-
75-
resource "aws_iam_role_policy_attachment" "s3_policy_attachment" {
76-
policy_arn = aws_iam_policy.s3_policy.arn
77-
role = aws_iam_role.model_execution_role.name
78-
}
79-
80-
resource "aws_iam_role_policy_attachment" "ecr_policy_attachment" {
81-
policy_arn = aws_iam_policy.ecr_policy.arn
82-
role = aws_iam_role.model_execution_role.name
83-
}
84-
85-
868
resource "aws_sagemaker_model" "model" {
879
name = var.model_name
8810
execution_role_arn = aws_iam_role.model_execution_role.arn
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
data "aws_region" "current" {}
2+
3+
resource "aws_iam_role" "model_execution_role" {
4+
name = "sagemaker-${var.model_name}-execution-role"
5+
6+
assume_role_policy = jsonencode({
7+
Version = "2012-10-17"
8+
Statement = [
9+
{
10+
Effect = "Allow"
11+
Principal = {
12+
Service = "sagemaker.amazonaws.com"
13+
}
14+
Action = "sts:AssumeRole"
15+
},
16+
]
17+
})
18+
}
19+
20+
resource "aws_iam_policy" "s3_policy" {
21+
name = "sagemaker-${var.model_name}-s3-policy"
22+
23+
policy = jsonencode({
24+
"Version" : "2012-10-17",
25+
"Statement" : [
26+
{
27+
"Effect" : "Allow",
28+
"Action" : [
29+
"s3:GetObject",
30+
"s3:ListBucket",
31+
],
32+
"Resource" : "arn:aws:s3:::${var.model_bucket_name}/*"
33+
}
34+
]
35+
})
36+
}
37+
38+
resource "aws_iam_policy" "ecr_policy" {
39+
name = "sagemaker-${var.model_name}-ecr-policy"
40+
41+
policy = jsonencode({
42+
"Version" : "2012-10-17",
43+
"Statement" : [
44+
{
45+
"Effect" : "Allow",
46+
"Action" : [
47+
"ecr:GetAuthorizationToken",
48+
"ecr:BatchCheckLayerAvailability",
49+
"ecr:GetDownloadUrlForLayer",
50+
"ecr:GetRepositoryPolicy",
51+
"ecr:DescribeRepositories",
52+
"ecr:ListImages",
53+
"ecr:DescribeImages",
54+
"ecr:BatchGetImage",
55+
"ecr:GetLifecyclePolicy",
56+
"ecr:GetLifecyclePolicyPreview",
57+
"ecr:ListTagsForResource",
58+
"ecr:DescribeImageScanFindings",
59+
],
60+
"Resource" : "arn:aws:ecr:${data.aws_region.current.name}:*:repository/*"
61+
}
62+
]
63+
})
64+
}
65+
66+
resource "aws_iam_role_policy_attachment" "s3_policy_attachment" {
67+
policy_arn = aws_iam_policy.s3_policy.arn
68+
role = aws_iam_role.model_execution_role.name
69+
}
70+
71+
resource "aws_iam_role_policy_attachment" "ecr_policy_attachment" {
72+
policy_arn = aws_iam_policy.ecr_policy.arn
73+
role = aws_iam_role.model_execution_role.name
74+
}

0 commit comments

Comments
 (0)