翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 5: 起動ロールを作成する
このステップでは、エンドユーザーが Terraform HashiCorp 製品を起動するときに Terraform プロビジョニングエンジンと が引き受けAWS Service Catalogることができるアクセス許可を指定する IAM ロール (起動ロール) を作成します。
起動制約としてシンプルな Amazon S3 バケット Terraform 製品に後で割り当てる IAM ロール (起動ロール) には、以下のアクセス許可が必要です。
-
Terraform 製品の基盤となる AWS リソースへのアクセス。このチュートリアルでは、
s3:CreateBucket*
、s3:DeleteBucket*
、s3:Get*
、s3:List*
、およびs3:PutBucketTagging
Amazon S3 オペレーションへのアクセスが含まれます。 -
AWS Service Catalog が所有する Amazon S3 バケット内の Amazon S3 テンプレートへの読み取りアクセス
-
CreateGroup
、ListGroupResources
、DeleteGroup
、およびTag
リソースグループオペレーションへのアクセス。これらの操作により、AWS Service Catalog はリソースグループとタグを管理できます。
AWS Service Catalog 管理者アカウントで起動ロールを作成するには
-
AWS Service Catalog 管理者アカウントにログインした状態で、IAM ユーザーガイドの「JSON タブにある新しいポリシーの作成」の指示に従います。
-
シンプルな Amazon S3 バケット Terraform 製品用のポリシーを作成します。このポリシーは、起動ロールを作成する前に作成する必要があり、以下の権限で構成されます。
-
s3
— Amazon S3 製品の一覧表示、読み取り、書き込み、プロビジョニング、タグ付けを行うための完全な権限を AWS Service Catalog に付与します。 -
s3
— AWS Service Catalog が所有する Amazon S3 バケットへのアクセスを許可します。製品をデプロイするには、AWS Service Catalog はプロビジョニングアーティファクトへのアクセスが必要です。 -
resourcegroups
— AWS Service Catalog は、タグ AWS Resource Groups の作成、一覧表示、削除を行えるようになります。 -
tag
— タグ付けの権限を AWS Service Catalog に付与します。
注記
デプロイする基盤となるリソースによっては、サンプル JSON ポリシーを変更する必要がある場合があります。
以下の JSON ポリシードキュメントを貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/servicecatalog:provisioning": "true" } } }, { "Action": [ "s3:CreateBucket*", "s3:DeleteBucket*", "s3:Get*", "s3:List*", "s3:PutBucketTagging" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Action": [ "resource-groups:CreateGroup", "resource-groups:ListGroupResources", "resource-groups:DeleteGroup", "resource-groups:Tag" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "tag:GetResources", "tag:GetTagKeys", "tag:GetTagValues", "tag:TagResources", "tag:UntagResources" ], "Resource": "*", "Effect": "Allow" } ] }
-
-
-
次へ、タグを選択します。
-
次へ、レビューを選択します。
-
[ポリシーの確認] ページで、[名前] に「
S3ResourceCreationAndArtifactAccessPolicy
」と入力します。 -
[Create policy] を選択します。
-
-
ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。
-
[信頼できるエンティティを選択] で [カスタム信頼ポリシー] を選択し、次の JSON ポリシーを入力します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GivePermissionsToServiceCatalog", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id:root" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::accounti_id:role/TerraformEngine/TerraformExecutionRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogExternalParameterParserRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogTerraformOSParameterParserRole*" ] } } } ] }
-
[次へ] を選択します。
-
「ポリシー」リストで、作成したばかりの
S3ResourceCreationAndArtifactAccessPolicy
を選択します。 -
[次へ] を選択します。
-
[ロール名] には、「
SCLaunch-S3product
」と入力します。重要
起動ロール名は「SCLaunch」で始まり、その後に目的のロール名が続く必要があります。
-
ロールの作成 を選択します。
重要
AWS Service Catalog 管理者アカウントで起動ロールを作成したら、AWS Service Catalog エンドユーザーアカウントでも同じ起動ロールを作成する必要があります。エンドユーザーアカウントのロールは、管理者アカウントのロールと同じ名前で、同じポリシーが含まれている必要があります。
AWS Service Catalog エンドユーザーアカウントに起動ロールを作成するには
-
エンドユーザーアカウントに管理者としてログインし、IAM ユーザーガイドの JSON タブにある新しいポリシーの作成の指示に従います。
-
上記の「AWS Service Catalog 管理者アカウントで起動ロールを作成するには」の手順 2 ~ 10 を繰り返します。
注記
AWS Service Catalog エンドユーザーアカウントで起動ロールを作成するときは、カスタム信頼ポリシーでも同じ管理者 AccountId
を使用するようにしてください。
管理者アカウントとエンドユーザーアカウントの両方で起動ロールを作成したので、製品に起動制約を追加できます。