Konfigurieren Sie Ihre AWS -Anmeldeinformationen und Region Umgebungsvariablen für die Verwendung in anderen Github -Aktionen.
Diese Aktion implementiert die AWS JavaScript SDK -Anmeldeinformations -Lösungskette und die Export -Sitzungsumgebungsvariablen für Ihre anderen Aktionen. Umgebungsvariablenexporte werden sowohl von den AWS SDKs als auch von der AWS CLI für AWS -API -Aufrufe erkannt.
API -Aufrufe bei AWS müssen mit Anmeldeinformationen unterschrieben werden. Wenn Sie also einen der AWS -SDKs oder ein AWS -Tool verwenden, müssen Sie es mit AWS -Anmeldeinformationen und AWS -Regionen zur Verfügung stellen. Eine Möglichkeit, dies in Github -Aktionen zu tun, besteht darin, ein Repository -Geheimnis mit IAM -Anmeldeinformationen zu verwenden. Dies folgt jedoch nicht den AWS -Sicherheitsrichtlinien zur Verwendung langfristiger Anmeldeinformationen. Stattdessen empfehlen wir Ihnen, einen langfristigen Anmeldeinformationen oder JWT zu verwenden, um einen temporären Anmeldeinformationen zu holen und diese mit Ihren Tools zu verwenden. Diese Github -Aktion erleichtert genau das.
AWS SDKs und Tools suchen nach Ihren Anmeldeinformationen in standardisierten Umgebungsvariablen. Im Wesentlichen läuft diese Aktion durch den Standard -Flow für Anmeldeinformationen und exportiert am Ende Umgebungsvariablen, die Sie später verwenden können.
Wir unterstützen fünf Methoden zum Abholen von Anmeldeinformationen von AWS. Wir empfehlen jedoch, den OIDC -Anbieter von Github in Verbindung mit einem konfigurierten AWS -IAM -Identitätsanbieter -Endpunkt zu verwenden.
Weitere Informationen dazu finden Sie weiter.
Ein Teil dieser Dokumentation kann ungenau sein, wenn Sie GHES (GitHub Enterprise Server) verwenden. Beachten Sie bitte die GitHub -Dokumentation, wenn relevant.
Zum Beispiel unterscheidet sich die URL, aus der die OIDC JWT ausgestellt wird, von der üblichen token.actions.githubusercontent.com
und ist für Ihren Enterprise -Server eindeutig. Infolgedessen müssen Sie dies anders konfigurieren, wenn Sie den Identitätsanbieter erstellen.
Wir haben derzeit keine GHES -Testumgebung, um diese Aktion zu validieren. Wenn Sie in Ghes laufen und auf Probleme stoßen, teilen Sie uns dies bitte mit.
Wir empfehlen, Amazon IAM Best Practices für die AWS -Anmeldeinformationen zu befolgen, die in GitHub Action -Workflows verwendet werden, einschließlich:
Es gibt fünf verschiedene unterstützte Möglichkeiten, um Anmeldeinformationen abzurufen:
AssumeRoleWithWebIdentity
)AssumeRole
)AssumeRoleWithWebIdentity
)AssumeRole
)Da wir den AWS JavaScript SDK verwenden, werden wir immer den Anmeldeinformationsauflösungsfluss für Node.js. Abhängig von Ihren Eingängen kann die Aktion Teile dieses Flusses überschreiben.
Wir empfehlen, die erste Option oben zu verwenden: Githubs OIDC -Anbieter. Diese Methode verwendet OIDC, um kurzlebige Anmeldeinformationen für Ihre Aktionen zu erhalten. Weitere Informationen zum Einrichten Ihres AWS -Kontos finden Sie in OIDC, um eine Rolle bei OIDC zu übernehmen.
In der folgenden Tabelle wird beschrieben, mit welcher Methode wir Ihre Anmeldeinformationen auf der Grundlage der Werte für die Aktion erhalten:
Identität verwendet | aws-access-key-id | role-to-assume | web-identity-token-file | role-chaining | id-token Erlaubnis |
---|---|---|---|---|---|
[✅ Empfohlen] übernehmen die Rolle direkt mit dem Github OIDC -Anbieter | ✔ | ✔ | |||
Ich bin Benutzer | ✔ | ||||
Übernehmen Sie die Rolle mit IAM -Benutzer -Anmeldeinformationen | ✔ | ✔ | |||
Übernehmen Sie die Rolle mithilfe von Webidentity Token -Dateianmeldeinformationen | ✔ | ✔ | |||
Übernehmen Sie die Rolle mit vorhandenen Anmeldeinformationen | ✔ | ✔ |
Hinweis: Bei der Verwendung vorhandener role-chaining
ist nicht immer erforderlich. Wenn Sie einen "vom SDK geladenen Anmeldeinformationen nicht übereinstimmen" erhalten, können Sie diese Option aktivieren.
Weitere Details finden Sie in Action.yml.
Option | Beschreibung | Erforderlich |
---|---|---|
AWS-Region | Welche AWS -Region zu verwenden | Ja |
Rolle-to-Assume | Rolle, um Anmeldeinformationen abzurufen. Nur für einige Authentifizierungstypen erforderlich. | NEIN |
aws-access-key-id | AWS -Zugriffstaste für die Verwendung. Nur für einige Authentifizierungstypen erforderlich. | NEIN |
AWS-Secret-Access-Key | AWS Secret Key zu verwenden. Nur für einige Authentifizierungstypen erforderlich. | NEIN |
AWS-Session-Token | AWS Session Token zu verwenden. Wird in ungewöhnlichen Authentifizierungsszenarien verwendet. | NEIN |
Rückmeldung | Verwenden Sie vorhandene Anmeldeinformationen aus der Umgebung, um eine neue Rolle zu übernehmen. | NEIN |
Publikum | Das JWT -Publikum bei Verwendung von OIDC. Wird in AWS-Partitionen ohne Default wie China-Regionen verwendet. | NEIN |
Http-Proxy | Ein HTTP -Proxy für API -Anrufe. | NEIN |
Mask-Aws-Account-ID | AWS -Konto -IDs werden nicht als geheim angesehen. Wenn Sie dies einstellen, werden Konto -IDs ohnehin vor Ausgabe ausgeblendet. | NEIN |
Rollen- Sekunden | Die angenommene Rollendauer in Sekunden, wenn sie eine Rolle übernimmt. Standardeinstellung auf 1 Stunde. | NEIN |
Rollen-External-ID | Die externe ID der Rolle, die man annehmen sollte. Nur benötigt, wenn Ihre Rolle dies erfordert. | NEIN |
Rollensitzname | Standardeinstellungen zu "GitHubactions", können jedoch bei Bedarf geändert werden. | NEIN |
Rollen-Skip-Sitzung | Überschneidet Session -Tagging, wenn festgelegt wird. | NEIN |
Inline-Session-Policy | Sie können die angenommene Rollenrichtlinie weiter einschränken, indem Sie hier eine Inline -Richtlinie definieren. | NEIN |
Verwaltungssitzungspolitik | Sie können die angenommene Rollenrichtlinie weiter einschränken, indem Sie hier eine verwaltete Richtlinie angeben. | NEIN |
Ausgangskredite | Beim Einstellen sind Ausgänge abgerufene Anmeldeinformationen als Aktionsschrittausgabe. Standardmäßig falsch. | NEIN |
Unbekannte Kredite | Wenn Sie festgelegt sind, werden vorhandene Anmeldeinformationen in Ihrem Aktionsläufer verlegt. | NEIN |
Deaktivierungsrie | Deaktivierte Wiederholung/Backoff -Logik für die Annahme von Rollenaufrufen. Standardmäßig sind Wiederholungen aktiviert. | NEIN |
Wiederholung von Maxen | Begrenzt die Anzahl der Wiederholungsversuche, bevor Sie aufgeben. Standardeinstellungen bis 12. | NEIN |
Spezialcharakter-Arbeit | Einige Umgebungen können Sonderfiguren in einem geheimen Schlüssel nicht tolerieren. Mit dieser Option wird das Abrufen von Anmeldeinformationen wiederholt, bis der geheime Zugriffsschlüssel keine Sonderzeichen enthält. Diese Option überschreibt Disable-Retry und Rety-Max-Sattel. | NEIN |
Die Standard -Sitzungsdauer beträgt 1 Stunde .
Wenn Sie dies anpassen möchten, können Sie eine Dauer an role-duration-seconds
übergeben, aber die Dauer darf das Maximum nicht überschreiten, das definiert wurde, wenn die IAM-Rolle erstellt wurde.
Wenn für Ihre Rolle eine externe ID angenommen werden muss, können Sie die externe ID die role-external-id
-Eingabe bereitstellen
Der Standard-Sitzungsname lautet "Githubactions", und Sie können ihn ändern, indem Sie den gewünschten Namen im role-session-name
angeben. Die Sitzung wird mit den folgenden Tags mitgeteilt: (Siehe Dokumentation von GitHub für GITHUB_
-Umgebungsvariablendefinitionen)
Schlüssel | Wert |
---|---|
Github | "Aktionen" |
Repository | Github_repository |
Workflow | Github_workflow |
Aktion | Github_action |
Schauspieler | Github_actor |
Zweig | Github_ref |
Begehen | Github_sha |
Hinweis: Alle Tag -Werte müssen den Tag -Anforderungen entsprechen. Insbesondere wird GITHUB_WORKFLOW
abgeschnitten, wenn es zu lang ist. Wenn GITHUB_ACTOR
oder GITHUB_WORKFLOW
ungültige Zeichen enthalten, werden die Zeichen durch ein '*' ersetzt.
Die Aktion verwendet standardmäßig während der Rollenannahme eine Sitzungsmarkierung, es sei denn, Sie befolgen unsere Empfehlung und übernehmen eine Rolle mit einer Webidentität. Für die Annahme von WebIdentity -Rollen müssen die Sitzungs -Tags in das codierte Webidentity -Token aufgenommen werden. Dies bedeutet, dass Tags nur vom OIDC -Anbieter geliefert werden können und nicht während des API -Aufrufs der Annahme in der Aktion festgelegt werden können. Weitere Informationen finden Sie in #419.
Sie können dieses Sitzungs-Tagging überspringen, indem Sie role-skip-session-tagging
als wahr für die Eingaben der Aktion angeben:
uses : aws-actions/configure-aws-credentials@v4
with :
role-skip-session-tagging : true
Sitzungsrichtlinien sind nicht erforderlich, ermöglichen es Ihnen jedoch, den Umfang der abgerufenen Anmeldeinformationen zu begrenzen, ohne Änderungen an IAM -Rollen vorzunehmen. Sie können Inline -Sitzungsrichtlinien in Ihrer Workflow -Datei angeben oder auf eine vorhandene Richtlinie für verwaltete Sitzungen von der ARN verweisen.
Eine IAM -Richtlinie im String -JSON -Format, das Sie als Inline -Sitzungsrichtlinie verwenden möchten. Abhängig von den Vorlieben könnte der JSON in einer einzigen Zeile wie folgt geschrieben werden:
uses : aws-actions/configure-aws-credentials@v4
with :
inline-session-policy : ' {"Version":"2012-10-17","Statement":[{"Sid":"Stmt1","Effect":"Allow","Action":"s3:List*","Resource":"*"}]} '
Oder wir können auch einen schön formatierten JSON haben:
uses : aws-actions/configure-aws-credentials@v4
with :
inline-session-policy : >-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid":"Stmt1",
"Effect":"Allow",
"Action":"s3:List*",
"Resource":"*"
}
]
}
Die Amazon -Ressourcennamen (ARNs) der IAM verwalteten Richtlinien, die Sie als verwaltete Sitzungsrichtlinien verwenden möchten. Die Richtlinien müssen in demselben Konto wie die Rolle vorhanden sein. Sie können eine einzige verwaltete Richtlinie wie diese verabschieden:
uses : aws-actions/configure-aws-credentials@v4
with :
managed-session-policies : arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
Und wir können mehrere verwaltete Richtlinien wie folgt übergeben:
uses : aws-actions/configure-aws-credentials@v4
with :
managed-session-policies : |
arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
arn:aws:iam::aws:policy/AmazonS3OutpostsReadOnlyAccess
Sie können jetzt die Wiederholungseinstellungen für den Fall des STS -Aufrufs konfigurieren. Standardmäßig machen wir 12
Mal mit exponentiellem Backoff wiederholt. Sie können dieses Verhalten insgesamt deaktivieren, indem Sie die Eingabe disable-retry
auf true
einstellen, oder Sie können die Häufigkeit konfigurieren, mit der es mit den Eingaben von retry-max-attempts
wiederholt.
Ihre Konto -ID wird in Workflow -Protokollen standardmäßig nicht maskiert, da sie nicht als vertrauliche Informationen angesehen werden. Sie können jedoch die Eingabe von mask-aws-account-id
auf true
festlegen, um Ihre Konton-ID bei Bedarf in Workflow-Protokollen zu maskieren.
Manchmal können vorhandene Anmeldeinformationen in Ihrem Läufer dem beabsichtigten Ergebnis im Wege stehen. Sie können die Eingabe unset-current-credentials
auf das true
einstellen, um dieses Problem zu bearbeiten.
Einige Randfälle können einen AWS_SECRET_ACCESS_KEY
nicht richtig analysieren, wenn er Sonderzeichen enthält. Weitere Informationen finden Sie in der AWS CLI -Dokumentation. Wenn Sie die Option special-characters-workaround
festlegen, wird diese Aktion kontinuierlich das Abrufen von Anmeldeinformationen wiederholen, bis wir eine erhalten, die keine Sonderzeichen hat. Diese Option überschreibt die Optionen disable-retry
und retry-max-attempts
. Wir empfehlen, dass Sie diese Option nicht aktivieren, sofern dies nicht erforderlich ist, da die Wiederholung von APIs unendlich, bis sie erfolgreich sind, keine beste Praxis ist.
Wir empfehlen, den OIDC-Anbieter von GitHub zu verwenden, um kurzlebige AWS-Anmeldeinformationen für Ihre Handlungen zu erhalten. Bei der Verwendung von OIDC konfigurieren Sie IAM so, dass Sie JWTs vom OIDC -Endpunkt von Github akzeptieren. Diese Aktion erstellt dann einen JWT, der für den Workflow-Lauf mit dem OIDC-Endpunkt einzigartig ist, und verwendet das JWT, um die angegebene Rolle mit kurzfristigen Anmeldeinformationen zu übernehmen.
Um dies zum Laufen zu bringen
Konfigurieren Sie Ihren Workflow so, dass die id-token: write
verwendet werden.
Konfigurieren Sie bei Bedarf Ihr Publikum.
Konfigurieren Sie in Ihrem AWS -Konto IAM, um Githubs OIDC -Identitätsanbieter zu vertrauen.
Konfigurieren Sie eine IAM -Rolle mit geeigneten Anspruchsgrenzen und Berechtigungsumfang.
Hinweis : Es wurde berichtet, dass die Benennung Ihrer Rolle "Githubactions" nicht funktioniert. Siehe #953.
Geben Sie bei der Einrichtung dieser Aktion die ARN dieser Rolle an.
Damit diese Aktion das JWT erstellt, muss Ihre Workflow-Datei die id-token: write
Genehmigung haben:
permissions :
id-token : write
contents : read
Wenn das JWT erstellt wird, muss ein Publikum angegeben werden. Normalerweise würden Sie sts.amazonaws.com
verwenden, und diese Aktion verwendet dies standardmäßig, wenn Sie keine angeben. Dies funktioniert in den meisten Fällen. Wenn Sie das Standardpublikum ändern, kann bei der Verwendung von AWS-Partitionen ohne Definition erforderlich sein, wie z. B. China-Regionen. Sie können das Publikum über die audience
angeben:
- name : Configure AWS Credentials for China region audience
uses : aws-actions/configure-aws-credentials@v4
with :
audience : sts.amazonaws.com.cn
aws-region : us-east-3
role-to-assume : arn:aws-cn:iam::123456789100:role/my-github-actions-role
Um den OIDC -Anbieter von Github zu verwenden, müssen Sie zuerst die Föderation mit dem Anbieter als IAM IDP einrichten. Der GitHub OIDC -Anbieter muss nur einmal pro Konto erstellt werden (dh mehrere IAM -Rollen, die von der OIDC des Github angenommen werden können, kann einen einzelnen OIDC -Anbieter teilen). Hier finden Sie eine Beispiel -CloudFormation -Vorlage, die dieses Trust für Sie konfiguriert.
Beachten Sie, dass der folgende Thumbprint auf alle Fs gesetzt wurde, weil der Thumbprint bei Authentifizierung token.actions.githubusercontent.com
nicht verwendet wird. Dies ist ein spezieller Fall, der nur verwendet wird, wenn Githubs OIDC IAM authentifiziert . IAM verwendet seine Bibliothek mit vertrauenswürdiger CAS, um sich zu authentifizieren. Der Wert ist immer noch die API, daher muss er angegeben werden.
Sie können die folgende Vorlage kopieren oder sie hier laden: https://d38mtn6aq9zhn6.cloudfront.net/configure-aws-credentials-latest.yml
Parameters :
GitHubOrg :
Description : Name of GitHub organization/user (case sensitive)
Type : String
RepositoryName :
Description : Name of GitHub repository (case sensitive)
Type : String
OIDCProviderArn :
Description : Arn for the GitHub OIDC Provider.
Default : " "
Type : String
OIDCAudience :
Description : Audience supplied to configure-aws-credentials.
Default : " sts.amazonaws.com "
Type : String
Conditions :
CreateOIDCProvider : !Equals
- !Ref OIDCProviderArn
- " "
Resources :
Role :
Type : AWS::IAM::Role
Properties :
AssumeRolePolicyDocument :
Statement :
- Effect : Allow
Action : sts:AssumeRoleWithWebIdentity
Principal :
Federated : !If
- CreateOIDCProvider
- !Ref GithubOidc
- !Ref OIDCProviderArn
Condition :
StringEquals :
token.actions.githubusercontent.com:aud : !Ref OIDCAudience
StringLike :
token.actions.githubusercontent.com:sub : !Sub repo:${GitHubOrg}/${RepositoryName}:*
GithubOidc :
Type : AWS::IAM::OIDCProvider
Condition : CreateOIDCProvider
Properties :
Url : https://token.actions.githubusercontent.com
ClientIdList :
- sts.amazonaws.com
ThumbprintList :
- ffffffffffffffffffffffffffffffffffffffff
Outputs :
Role :
Value : !GetAtt Role.Arn
Um sich mit dem Amazon -IAM -Best -Practice zu entscheiden, um am wenigsten Privilegien zu gewähren, sollte das Annahme -Rollrichtlinien -Dokument eine Condition
enthalten, die ein Thema ( sub
) angibt, die die Rolle übernehmen dürfen. GitHub empfiehlt außerdem, die Filterung für das richtige Publikum ( aud
) zu filtern. Siehe AWS IAM -Dokumentation, welche Ansprüche Sie in Ihren Vertrauensrichtlinien filtern können.
Ohne eine ( sub
) Bedingung könnte ein GitHub -Benutzer oder ein Repository möglicherweise die Rolle übernehmen. Das Subjekt kann in eine Github -Organisation und -repository gescopt werden, wie in der CloudFormation -Vorlage gezeigt. Wenn Sie es jedoch auf Ihre Organisation und Repo senken, kann die Rolle in einigen Fällen eine Rolle spielen. In Beispielsanträgen für spezifische Details zu dem Abhängigkeit von Ihrem Workflow finden Sie unter Beispiel. Sie können auch Ihren Fachanspruch anpassen, wenn Sie die vollständigen Kontrolle über die Informationen möchten, für die Sie in Ihrer Trust -Richtlinie filtern können. Wenn Sie sich nicht sicher sind, wie hoch Ihr Subjekt ( sub
) -Staste ist, können Sie Ihren Workflow die actions-oidc-debugger
Aktion hinzufügen, um den Wert des Subjekts ( sub
) -Kaste sowie andere Behauptungen zu sehen.
Zusätzliche Antragsbedingungen können für eine höhere Spezifität hinzugefügt werden, wie in der GitHub -Dokumentation erläutert. Aufgrund von Implementierungsdetails wird derzeit nicht jeder OIDC -Anspruch von IAM unterstützt.
Weitere Informationen zu OIDC- und GitHub -Aktionen finden Sie unter:
Wenn Sie Ihre Github-Aktionen in einem selbst gehosteten Läufer ausführen, der bereits Zugriff auf AWS-Anmeldeinformationen hat, z. B. eine EC2-Instanz, müssen Sie diese Aktion nicht für die wichtigsten Anmeldeinformationen von IAM-Benutzer zugreifen. Wir werden die Standard -AWS -JavaScript -SDK -Anmeldeinformationsmethoden verwenden, um Ihre Anmeldeinformationen zu finden. Wenn der AWS JS SDK also Ihren Läufer authentifizieren kann, wird diese Aktion auch.
Wenn in den Aktionseingaben keine Zugriffsschlüsselanmeldeinformationen angegeben sind, wird in dieser Aktion Anmeldeinformationen aus der Runner -Umgebung verwendet, indem die Standardmethoden für das AWS SDK für JavaScript verwendet werden.
Sie können diese Aktion verwenden, um einfach die Region und die Konto -ID in der Umgebung zu konfigurieren und dann die Anmeldeinformationen des Läufer für alle AWS -API -Anrufe zu verwenden, die von Ihrem Aktions -Workflow getätigt wurden:
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
In diesem Fall müssen die Anmeldeinformationen Ihres Läufers Berechtigungen haben, um AWS -APIs aufzurufen, die von Ihrem Aktions -Workflow berufen werden.
Oder Sie können diese Aktion verwenden, um eine Rolle zu übernehmen und dann die Rollenanmeldeinformationen für alle AWS -API -Anrufe zu verwenden, die durch Ihren Aktionen Workflow getätigt wurden:
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
role-to-assume : my-github-actions-role
In diesem Fall müssen die Anmeldeinformationen Ihres Läufers Berechtigungen haben, um die Rolle zu übernehmen.
Sie können auch eine Rolle mit einer Web -Identity -Token -Datei übernehmen, z. B. bei der Verwendung von Amazon EKS IRSA. Pods, die in EKS -Worker -Knoten ausgeführt werden, die nicht als Root ausgeführt werden, können diese Datei verwenden, um eine Rolle mit einer Webidentität zu übernehmen.
Wenn Sie einen HTTP -Proxy verwenden müssen, können Sie ihn in der Aktion manuell einstellen.
Zusätzlich wird diese Aktion immer die Umgebungsvariable HTTP_PROXY
berücksichtigen.
Manuell konfigurierter Proxy:
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
role-to-assume : my-github-actions-role
http-proxy : " http://companydomain.com:3128 "
Proxy in der Umgebungsvariablen konfiguriert:
# Your environment configuration
HTTP_PROXY= " http://companydomain.com:3128 "
Dieser Workflow installiert die AWS CLI nicht in Ihre Umgebung. Selbst gehostete Läufer, die vor der Ausführung aws
-Befehlen beabsichtigen, diese Aktion auszuführen, müssen die AWS-CLI installiert, wenn sie nicht bereits vorhanden ist. Die meisten Github -Hosted Runner -Umgebungen sollten standardmäßig die AWS CLI enthalten.
- name : Configure AWS Credentials
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
role-to-assume : arn:aws:iam::123456789100:role/my-github-actions-role
role-session-name : MySessionName
In diesem Beispiel lädt die Aktion das OIDC-Token aus der von Github bereitgestellten Umgebungsvariablen und nimmt die Rolle an, um arn:aws:iam::123456789100:role/my-github-actions-role
mit dem Sitzungsnamen MySessionName
.
- name : Configure AWS Credentials
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
role-to-assume : arn:aws:iam::123456789100:role/my-github-actions-role
role-session-name : MySessionName
- name : Configure other AWS Credentials
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
role-to-assume : arn:aws:iam::987654321000:role/my-second-role
role-session-name : MySessionName
role-chaining : true
In diesem zweistufigen Beispiel wird der erste Schritt OIDC verwenden, um die Rolle arn:aws:iam::123456789100:role/my-github-actions-role
genau wie im vorherigen Beispiel zu übernehmen. Anschließend wird ein zweiter Schritt diese Rolle verwenden, um eine andere Rolle zu übernehmen, arn:aws:iam::987654321000:role/my-second-role
.
- name : Configure AWS Credentials
uses : aws-actions/configure-aws-credentials@v4
with :
aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region : us-east-2
role-to-assume : ${{ secrets.AWS_ROLE_TO_ASSUME }}
role-external-id : ${{ secrets.AWS_ROLE_EXTERNAL_ID }}
role-duration-seconds : 1200
role-session-name : MySessionName
In diesem Beispiel enthält das geheime AWS_ROLE_TO_ASSUME
eine Zeichenfolge wie arn:aws:iam::123456789100:role/my-github-actions-role
. Um eine Rolle in demselben Konto zu übernehmen wie die statischen Anmeldeinformationen, können Sie einfach den Rollennamen wie role-to-assume: my-github-actions-role
angeben.
- name : Configure AWS Credentials 1
id : creds
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
role-to-assume : arn:aws:iam::123456789100:role/my-github-actions-role
output-credentials : true
- name : get caller identity 1
run : |
aws sts get-caller-identity
- name : Configure AWS Credentials 2
uses : aws-actions/configure-aws-credentials@v4
with :
aws-region : us-east-2
aws-access-key-id : ${{ steps.creds.outputs.aws-access-key-id }}
aws-secret-access-key : ${{ steps.creds.outputs.aws-secret-access-key }}
aws-session-token : ${{ steps.creds.outputs.aws-session-token }}
role-to-assume : arn:aws:iam::123456789100:role/my-other-github-actions-role
- name : get caller identity2
run : |
aws sts get-caller-identity
Dieses Beispiel zeigt, dass Sie auf die abgerufenen Anmeldeinformationen als Ausgänge verweisen können, wenn output-credentials
auf true eingestellt sind. Dieses Beispiel zeigt auch, dass Sie den aws-session-token
Eingang in einer Situation verwenden können, in der Sitzungs-Token abgerufen und an diese Aktion übergeben werden.
Dieser Code wird im Rahmen der MIT -Lizenz zur Verfügung gestellt.
Wenn Sie in diesem Projekt ein potenzielles Sicherheitsproblem melden möchten, erstellen Sie bitte kein GitHub -Problem. Befolgen Sie stattdessen die Anweisungen hier oder E -Mail -AWS -Sicherheit direkt.