Jira Automation 用に AWS IAM を設定

AWS ID およびアクセス管理 (IAM) は、権限とリソース アクセスを管理するために AWS が提供するメカニズムです。非常に強力な機能であり、これを使用してどの AWS リソースでもきめ細かなポリシーを作成できます。

Atlassian Automation では、IAM ベースの統合を使用して SNS 以外のあらゆるリソースに接続します。

これを行うには、次の操作を行う必要があります。

  1. Atlassian Automation で使用する新しい AWS IAM ロールを作成します

  2. 信頼ポリシーで、Atlassian Automation AWS アカウントにそのロールへのアクセス権を付与します

  3. 必要なアクションを実行できるように、ロールに必要な権限をセットアップします

  4. IAM ロールに接続します

これによって、Atlassian Automation アカウントに対して、ロールとそのロールでアクセスできるリソースへのアクセス権が付与されます。ロールの権限がルールの実行に必要となる最小限のセットになるよう、適切に制限しましょう。

1. 新しい IAM ロールを作成します

Atlassian Automation では、atlassian-automation- で始まる名前をロールに付ける必要があります。そのため、Atlassian Automation 向けに設定されたロールがまだない場合は、新しいロールを作成する必要があります。

  1. AWS コンソールにサインインします。

  2. ナビゲーション メニューで [ロール] を選択します。

  3. [ロールを作成] を選択します。

  4. [その他の AWS アカウント] を選択します。

  5. Atlassian Automation AWS アカウントの ID (815843069303) を入力します。

  6. [外部 ID を要求 (Require external ID)] を選択して、使用する ID を入力します

    • これは、接続の安全性を高めるために使用され、ベスト プラクティスと見なされています。

    • この ID は秘密ではありませんが、パスワード マネージャーなどを使用して生成することをお勧めします。

    • または、後で自動生成される ID を使用してこれを設定できます。 

  7. [次へ] をクリックします。

  8. 適用すべき権限を把握している場合は、今すぐ設定できます。そうでない場合は [次へ] をクリックします。

  9. [ロール名] と [説明] を入力します。ロール名は atlassian-automation- で始まる必要があります。

  10. 設定を確認してから [ロールを作成] を選択します。

2. Atlassian Automation AWS アカウントにアクセス権を付与する信頼ポリシーを設定します

前のセクションのステップを実行しなかった場合 (たとえば、CloudFormation などでロールを作成する場合) は、Atlassian Automation AWS アカウントがそのロールを使用できるように許可されていることを確認する必要があります。これを行うには、AWS アカウント ID 815843069303sts:AssumeRole を付与する信頼ポリシーを指定します。

信頼ポリシーは次のようになります。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "815843069303" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<<your-external-id>>" } } } ] }

このポリシーは、「ID が 815843069303 の AWS アカウントに対して、<<your-external-id>> と一致する ExternalId が提供された場合にのみ、このロールの AssumeRole (引き受け) を Allow (許可) する」と解釈できます。

このポリシーの最も重要な部分は次のとおりです。

  • EffectAllow です

  • Principal は Atlassian Automation AWS アカウントの ID (815843069303) です

  • Actionsts:AssumeRole です

  • Condition は、sts:ExternalId パラメーターが選択した文字列と等しい必要があることを指定します

3. ルールで使用するアクションに必要な権限を設定します

ロールに必要なリソース権限は、自動化ルールで使用するアクションによって異なります。ただし、一般的なアプローチとしては、インライン リソース ポリシーの形式でロールに権限を追加します。

ここでは、簡単に設定できるインライン ポリシーをお勧めしますが、管理ポリシーをご希望の場合も、同じように簡単に使用できます。

ルールを実行するための最低限の権限セットを定義することが重要です。

SNS トピックにメッセージを送信するために必要な権限

Action: sns:Publish
Resource: SNS トピックの ARN

1 2 3 4 5 6 7 8 9 10 11 { "Version": "2012-10-17", "Statement": [ { "Sid": "allowpublish", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:us-west-1:111111111111:automation-rule-topic" } ] }

SSM ドキュメントを実行するために必要な権限

AWS リージョンを取得するには

1 2 3 4 5 6 7 8 9 10 11 12 13 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:DescribeRegions" ], "Resource": "*" } ] }

SSM ドキュメントを取得して実行するには

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ssm:ListDocuments", "ssm:GetDocument", "ssm:StartAutomationExecution" ], "Resource": "*" } ] }

SSM ドキュメントで手順を実行するには

SSM ドキュメントの設定済み手順をすべて実行するための IAM ロール関連の権限を付与していることを確認してください。たとえば、SSM ドキュメントが AWS-RestartEC2Instance の場合、必要な権限は次のとおりです。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:DescribeInstanceStatus" ], "Resource": "*" } ] }

4. IAM ロールに接続します

正しい権限でロールを設定したら、最後の手順として、自動化ルールでそのロールに接続します。

  1. [自動化] に移動して [ルールを作成] を選択します。

  2. ルールのトリガーを選択します。

  3. AWS のアクションを選択します。

  4. 接続をクリックします。

  5. プロンプトが表示されたら、使用するロールの ARN を入力します。外部 ID を使用する場合は、それも指定する必要があります。 

  6. 保存をクリックします。

その他のヘルプ