Jira Automation 用に AWS IAM を設定
AWS ID およびアクセス管理 (IAM) は、権限とリソース アクセスを管理するために AWS が提供するメカニズムです。非常に強力な機能であり、これを使用してどの AWS リソースでもきめ細かなポリシーを作成できます。
Atlassian Automation では、IAM ベースの統合を使用して SNS 以外のあらゆるリソースに接続します。
これを行うには、次の操作を行う必要があります。
Atlassian Automation で使用する新しい AWS IAM ロールを作成します
信頼ポリシーで、Atlassian Automation AWS アカウントにそのロールへのアクセス権を付与します
必要なアクションを実行できるように、ロールに必要な権限をセットアップします
IAM ロールに接続します
これによって、Atlassian Automation アカウントに対して、ロールとそのロールでアクセスできるリソースへのアクセス権が付与されます。ロールの権限がルールの実行に必要となる最小限のセットになるよう、適切に制限しましょう。
1. 新しい IAM ロールを作成します
Atlassian Automation では、atlassian-automation- で始まる名前をロールに付ける必要があります。そのため、Atlassian Automation 向けに設定されたロールがまだない場合は、新しいロールを作成する必要があります。
AWS コンソールにサインインします。
ナビゲーション メニューで [ロール] を選択します。
[ロールを作成] を選択します。
[その他の AWS アカウント] を選択します。
Atlassian Automation AWS アカウントの ID (815843069303) を入力します。
[外部 ID を要求 (Require external ID)] を選択して、使用する ID を入力します
これは、接続の安全性を高めるために使用され、ベスト プラクティスと見なされています。
この ID は、特定の ARN に対してサイト全体で一貫しているため、接続ごとに設定する必要はありません。
この ID は秘密ではありませんが、パスワード マネージャーなどを使用して生成することをお勧めします。
[次へ] をクリックします。
適用すべき権限を把握している場合は、今すぐ設定できます。そうでない場合は [次へ] をクリックします。
[ロール名] と [説明] を入力します。ロール名は atlassian-automation- で始まる必要があります。
設定を確認してから [ロールを作成] を選択します。
2. Atlassian Automation AWS アカウントにアクセス権を付与する信頼ポリシーを設定します
前のセクションのステップを実行しなかった場合 (たとえば、CloudFormation などでロールを作成する場合) は、Atlassian Automation AWS アカウントがそのロールを使用できるように許可されていることを確認する必要があります。これを行うには、AWS アカウント ID 815843069303 に sts: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 (許可) する」と解釈できます。
このポリシーの最も重要な部分は次のとおりです。
Effect は Allow です
Principal は Atlassian Automation AWS アカウントの ID (815843069303) です
Action は sts: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 ロールに接続します
正しい権限でロールを設定したら、最後の手順として、自動化ルールでそのロールに接続します。
[自動化] に移動して [ルールを作成] を選択します。
ルールのトリガーを選択します。
AWS のアクションを選択します。
接続をクリックします。
プロンプトが表示されたら、使用するロールの ARN を入力します。外部 ID を使用する場合は、それも指定する必要があります。
6. [保存] をクリックします。
この内容はお役に立ちましたか?